== 软件项目 == 潓美平板软件git仓库主页: https://git.g77k.com/supercatexpert/ampro-new 目前有两个分支,分支old_ui为水素版本软件,master为医疗版本软件;软件的运行环境是ARM 335x,基于qt4.8.6开发,使用BuildRoot构建而成的嵌入式Linux系统 [https://git.g77k.com/yiling.cao/pudge-buildroot/tree/huimei_medic huimei_medic]。 == 软件运行环境 == === 系统内核版本 === ==== 目前平板使用的系统内核版本 ==== * Linux ascleway 3.2.0-novotech_asclepius_new+ #1 Mon Feb 10 12:11:01 CST 2020 armv7l GNU/Linux ==== 更新内核版本 ==== * 系统uImage与mod的最新版本获取地址:http://192.168.8.28:81/ti-linux-sdk-kernel/am335x/asclepius1-mk3/latest/ ::- 根据开机画面需求选择获取MK3结尾的zImage*文件,同时下载modules.tar.gz文件 * 复制zImage-* 到 /boot/uboot/zImage,将modules.tar.gz文件解压到根目录下 ::- 如果从3.2升级内核。请确保更改/etc/fstab,将所有mmcblk0替换为mmcblk1,否则系统将不能正确启动。 === 网络控制 === 基于客户出货需求当前系统启动时默认不打开网络,但由于部分原因需要在特殊情况下打开网络,现做出以下控制网络开关的方法: * 打开网络:[https://git.g77k.com/yiling.cao/pudge-buildroot/blob/3aee5f61a1a840fbe0b7a143642d2b0554fd1ec4/overlay/usr/bin/netdown.sh netup.sh] * 关闭网络:[https://git.g77k.com/yiling.cao/pudge-buildroot/blob/3aee5f61a1a840fbe0b7a143642d2b0554fd1ec4/overlay/usr/bin/netdown.sh netdown.sh] ::- 以上两个脚本需要手动启动 ::- 脚本所在位置:/usr/bin/ === 软件相关目录 === * /AM/arm_bin_debug 为主程序依赖库文件与运行文件所在目录 * /AM/appdata/lang 为主程序语言配置文件所在目录 * /AM/appdata/system 为主程序运行根据不同类型机器配置文件所在目录 * /AM/appdata/wave 为主程序根据实际需求需要播放的语音文件所在目录 * /AM/log 为主程序日志文件所在目录 * /AM/update 为更新包所在文件夹 * /AM/bak 为程序备份文件所在文件夹 * /AM/internalversion 为主程序内部本号 * /AM/VERSION 为主程序UI展示版本号 * /var/lib/medctrl/aspi.dat 为用户信息数据库 * /var/dl 为用户在线下载更新包所在目录 === 软件主要进程 === 主要进程主要包含三个: * medctrlloader:该进程在开机时检测在/AM/update或/var/dl目录下是否有更新包,当没有发现更新包时,判断主程序运行是否正常;当发现更新包存在时解析更新包进行更新主程序与相关文件。(更新包默认名称:app.update) * deamonClient: 该进程为软件主程序的watchdog * medctrl:该进程为软件运行的主程序 == 软件框架 == 软件主要分为三部分:串口通讯部分、UI部分与运行逻辑控制部分 [[File:software_block_diagram.png]] === 串口通讯部分 === 串口外设: * 与stm32通讯:/dev/ttyO1 波特率:9600 * 蓝牙通讯: /dev/ttyO4 波特率:9600 ==== 通讯协议 ==== AM335x与stm32通讯协议:https://w.g77k.com/%E6%BD%93%E7%BE%8E7%E5%AF%B8%E5%B9%B3%E6%9D%BF%E7%94%B5%E8%84%91A8#AM3352.E3.80.81STM32.E9.80.9A.E8.AE.AF.E5.8D.8F.E8.AE.AE === UI部分 === UI主要分为三个模块: * 主窗口 * 虚拟键盘 * 弹窗 === 运行逻辑控制部分 === 运行逻辑部分包括: * 主要运行线程 * 配置文件 == 软件源码解析 == === 串口通讯部分 === [[File:serial_communication.png]] === UI部分 === [[File:UI.png]] === 运行逻辑控制部分 === [[File:run_the_logic.png]]