当前位置:网站首页>TC软件详细设计文档(手机群控)

TC软件详细设计文档(手机群控)

2022-06-21 09:18:00 才鲸嵌入式

TC软件详细设计文档(手机群控)

作者:将狼才鲸

日期:2021-06-27

一、整体框图

1、UI界面

主界面:顶部是LOGO、快捷键、设置,左侧是设备管理列表,中间是手机界面展示,右侧是日志信息(可隐藏)

设置弹出框:设置全局参数(具体选项待调整),并保存到配置文件

2、功能框图


二、业务流程图

1、主流程图

三、模块实现

1、adb模块

adb模块功能

查询所有设备

开启设备触摸

开启反向控制

安装apk

发送并启动server

调用adb的模块

群组列表模块

设备模块

server模块

文件模块

adb依赖的模块

所有连接的手机

adb负责查询所有设备、开启设备触摸、开启反向控制、安装apk、发送并启动server建立tcp连接,后续的工作都交给tcp连接来完成。

需要用到adb的有主界面、设备模块、server模块、文件模块

2、群组列表模块

群组列表模块

json文件读写

json处理:增删改查

设备列表动态显示

设备管理

显示状态

修改设备名

修改组名

增删组

增删设备

设备切换分组

设备连接和断开

设备组指定反向主控

设备组指定脚本

自己被谁调用

主界面

自己要调用哪些模块

快捷键栏模块

设备管理模块

adb模块

设备群组列表模块包含json解析处理模块、列表显示、设备列表管理(显示状态、增加、删除、连接、断开、分组、指定主控)。

3、鼠标键盘系统模块

当UI界面上有键盘按下、鼠标键按下或者鼠标键按下并移动的事件产生时,根据指针所在位置,通知当前位置下UI对应模块的处理函数。

接收键盘键值的界面区域只有主程序、UI上的文本输入框和手机界面显示区域。

接收鼠标事件的区域只有UI上的按钮、文本输入框和手机界面显示区域。

4、设备管理模块

设备管理模块

管理一组设备

连接和断开当前组所有设备

连接和断开单个设备

更新群组键值映射配置

更新群组操作脚本

取消和绑定快捷键操作按钮

设置反向群控主机

映射所有群控从机

自己被谁调用

群组列表模块

自己要调用哪些模块

设备模块

快捷键模块

键值事件

设备管理模块:管理一组设备(一个主控设备,多个被控设备)、连接和断开单个设备、连接和断开当前组所有设备、更新群组键值映射配置、更新群组操作脚本、取消和绑定快捷键操作按钮、设置反向群控主机、映射所有群控从机、响应群控主机的手机操作并发送到其它从机

5、快捷键模块

快捷键模块:根据当前被选中的设备或设备组,向设备管理模块发送以下命令:设置为主控设备、下拉通知栏、显示触摸、息屏、关机、音量大、音量小、切换应用、菜单栏、返回、返回主界面、截屏。

6、设备模块

设备模块的功能:操作一台设备,响应键值操作,响应群控操作,响应发送文件、安装apk操作,adb连接手机,启动TCP传输视频流和消息。

设备模块使用了:键值事件、server模块、视频帧缓存、解码、文件操作、视频流处理、画面显示UI、控制器键值映射、配置。

server子模块:传输和启动设备server,设置反向控制

server子模块使用了:TCP Socket

解码子模块:使用ffmpeg库

videobuffer子模块:处理解码完之后的一帧图片

avframeconvert 子模块:将解码后的原始YUV格式的一帧图片转换成RGB格式,以便用于显示

控制器子模块:使用tcp连接,响应快捷键操作,进行剪切板操作,进行键值映射转换

设备画面UI模块:使用openGL显示、安装快捷键映射、响应键值。

四、参考资料

adb:Android 调试桥 (adb)

ffmpeg:FFmpeg 多媒体处理工具

genymobile(Android server):Scrcpy投屏原理浅析-设备控制篇

TCP socket:基于TCP协议的Socket通信

OpenGL:OpenGL 开放图形技术规范

QT:QT

原网站

版权声明
本文为[才鲸嵌入式]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq582880551/article/details/118270125

随机推荐