diff --git a/docs/Application_guide/zh/media/solutions/poc/Logging.png b/docs/Application_guide/zh/media/solutions/poc/Logging.png index 4d100e9e860be790729266670d872c658f007f6d..a6a99a652c09fe7812adc3f66a9df1c0677b88f5 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/Logging.png and b/docs/Application_guide/zh/media/solutions/poc/Logging.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/MainScreen.png b/docs/Application_guide/zh/media/solutions/poc/MainScreen.png index bbc591f84d5319452058245ec1afa1757cb77f6a..94fcf10980f06853cf1b95a8e550c5ea8df1ba54 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/MainScreen.png and b/docs/Application_guide/zh/media/solutions/poc/MainScreen.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/bord.png b/docs/Application_guide/zh/media/solutions/poc/bord.png index 74c28f6830931738543ad76c1f272d88e2be1e1d..a656e40d5b7d0fe3e279959c45cec925c5230f64 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/bord.png and b/docs/Application_guide/zh/media/solutions/poc/bord.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/comport.png b/docs/Application_guide/zh/media/solutions/poc/comport.png index 66728782024289081ab7266b74cbe612acaa0233..270017b82e7cae2e731cfa8deb67bd6530ed6485 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/comport.png and b/docs/Application_guide/zh/media/solutions/poc/comport.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/get_imei.png b/docs/Application_guide/zh/media/solutions/poc/get_imei.png new file mode 100644 index 0000000000000000000000000000000000000000..26db7f5e97cc0b759cbe5eea95b4744d0b7b409c Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/poc/get_imei.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/group.png b/docs/Application_guide/zh/media/solutions/poc/group.png new file mode 100644 index 0000000000000000000000000000000000000000..46f8714bccd99e53af37d323b1c77665111c0ad9 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/poc/group.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/member.png b/docs/Application_guide/zh/media/solutions/poc/member.png new file mode 100644 index 0000000000000000000000000000000000000000..66d97359f43f759e5b63a9bd1ad62f97570db383 Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/poc/member.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/no_sim_card.png b/docs/Application_guide/zh/media/solutions/poc/no_sim_card.png index 4b9cccf5938049c52ab0587560b8c51c21f6ac3a..5bed31217449da5468b76c41573cab4daa4fba45 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/no_sim_card.png and b/docs/Application_guide/zh/media/solutions/poc/no_sim_card.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/services.png b/docs/Application_guide/zh/media/solutions/poc/services.png index bdd83f7385f4fec4a131209085977906004ed676..ddb0a5a59cfd3adeef44dbf642ffe6454ee184e0 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/services.png and b/docs/Application_guide/zh/media/solutions/poc/services.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/speak.png b/docs/Application_guide/zh/media/solutions/poc/speak.png index c5bdb082b6c9fcb175bb2172ecb2d858cbcf837f..a656e40d5b7d0fe3e279959c45cec925c5230f64 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/speak.png and b/docs/Application_guide/zh/media/solutions/poc/speak.png differ diff --git a/docs/Application_guide/zh/media/solutions/poc/ui_uml.png b/docs/Application_guide/zh/media/solutions/poc/ui_uml.png index 08995e03a6a2790abf9d8f0518a56d8cd3cbcf34..68d018a603e89b5a41d6d6f02d2b2f7c5c919d9d 100644 Binary files a/docs/Application_guide/zh/media/solutions/poc/ui_uml.png and b/docs/Application_guide/zh/media/solutions/poc/ui_uml.png differ diff --git a/docs/Application_guide/zh/solutions/poc/README.md b/docs/Application_guide/zh/solutions/poc/README.md index 7378c652ba31de65387e7d0a85be0efe65218045..2b2600555f78765a20d4d37dd8f4f56fdfccafd0 100644 --- a/docs/Application_guide/zh/solutions/poc/README.md +++ b/docs/Application_guide/zh/solutions/poc/README.md @@ -7,7 +7,7 @@ - 超长待机: 支持超低功耗模式。 - 使用 Python 语言,便于二次开发。 - + --- diff --git a/docs/Application_guide/zh/solutions/poc/dev_resources.md b/docs/Application_guide/zh/solutions/poc/dev_resources.md index 4c787494e5c1f2b6177b3e2d9b2c77122c7589e0..7b67f1ecd1eae021c172afd91e2efaa29979264b 100644 --- a/docs/Application_guide/zh/solutions/poc/dev_resources.md +++ b/docs/Application_guide/zh/solutions/poc/dev_resources.md @@ -13,9 +13,8 @@ ## 模组资料 - 型号:[EC600MCN_LE](https://python.quectel.com/modules-cat/ec600m-series) -- [规格书](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_EC600M-CN_LTE_Standard_模块产品规格书_V1.2.pdf) +- [规格书](https://images.quectel.com/python/2023/04/Quectel_EC600M-CN_LTE_Standard_模块产品规格书_V1.2.pdf) - [驱动下载](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip) - ## 配件资料 - LCD 显示屏 @@ -38,7 +37,7 @@ ## 固件包 -- 版本:EC600MCNLER06A01M08_XBND_OCPU_QPY_BETA0802 +- 版本:EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0117 - 下载[固件](https://github.com/QuecPython/solution-POC/releases/download/v.1.0.0/EC600MCNLER06A01M08_XBND_OCPU_QPY_BETA0802.zip) ## 实验源码 @@ -48,6 +47,5 @@ ```bash git clone https://github.com/QuecPython/solution-POC cd solution-POC - git checkout EC600MCNLE-Demo # 或者 git checkout v2.0.0 ``` - [压缩包下载](https://github.com/QuecPython/solution-POC/archive/refs/tags/v2.0.0.zip) \ No newline at end of file diff --git a/docs/Application_guide/zh/solutions/poc/quick_start.md b/docs/Application_guide/zh/solutions/poc/quick_start.md index 7a1b74cb14ed1be8c7dedb762c1867cc096fe2fd..58e79102f391a9057b54d2afdc075aa30c486bf3 100644 --- a/docs/Application_guide/zh/solutions/poc/quick_start.md +++ b/docs/Application_guide/zh/solutions/poc/quick_start.md @@ -14,18 +14,22 @@ ## 环境搭建 -- 下载并安装 EC600M 系列模组驱动:[QuecPython_USB_Driver_Win10_ASR](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip)。 +- 下载并安装 EC600M 系列模组驱动:[QuecPython_USB_Driver_Win10_ASR](https://images.quectel.com/python/2023/04/Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip)。 -- 下载并安装[VSCode](https://code.visualstudio.com/)。 +- 下载并安装 [VSCode](https://code.visualstudio.com/)。 -- 下载并解压 [QPYCom](https://python.quectel.com/wp-content/uploads/2024/09/QPYcom_V3.6.0.zip) 工具到电脑的合适位置。 +- 下载并解压 [QPYCom](https://images.quectel.com/python/2022/12/QPYcom_V3.6.0.zip) 工具到电脑的合适位置。 - 下载[固件包](https://github.com/QuecPython/solution-POC/releases/download/v.1.0.0/EC600MCNLER06A01M08_XBND_OCPU_QPY_BETA0802.zip)。 - 下载[实验源码](https://github.com/QuecPython/solution-POC/archive/refs/tags/v2.0.0.zip)。 - 申请伯纳德**芯平台**测试账号。 - + + 根据下图所示步骤获取 IMEI 号,将其提供给移远销售人员,即可申请对讲机测试账号。 + + ![](../../media/solutions/poc/get_imei.png) + > 💡 **Tips** > - 非商业测试,请联系移远销售人员( li.bao@quectel.com ),申请伯纳德**芯平台**测试账号。 > - 商业应用请走商务流程。 @@ -34,33 +38,33 @@ 按照下图进行硬件连接: - + -1. 将喇叭连接至图中标识有`SPK+`和`SPK-`的排针上。 +1. 将喇叭连接至图中标识有 `SPK+` 和 `SPK-` 的排针上。 2. 将 LCD 屏连接至标识有 `LCD` 字样的排针上。 3. 在图示位置插入可用的 Nano SIM 卡。 -4. 将天线连接至标识有`LTE`字样的天线连接座上。 +4. 将天线连接至标识有 `LTE` 字样的天线连接座上。 5. 使用 Type-C 数据线连接开发板和电脑。 ## 设备开发 ### 开机 -完成硬件连接的工作后,长按开发板上标识为`PWK`的按键,直到网络灯闪烁,或电脑设备管理器的端口列表中出现包含`Quectel USB` 字样的 COM 口,表示开机成功。 +完成硬件连接的工作后,长按开发板上标识为`PWK`的按键,直到网络灯闪烁,或电脑设备管理器的端口列表中出现包含 `Quectel USB` 字样的 COM 口,表示开机成功。 -![comport.png](./../../media/solutions/poc/comport.png) +![comport.png](./../../media/solutions/poc/comport.png) ### 烧录固件包 -参考[此章节](https://python.quectel.com/doc/Application_guide/zh/dev-tools/QPYcom/qpycom-dw.html#%E4%B8%8B%E8%BD%BD%E5%9B%BA%E4%BB%B6),烧录固件包 [EC600MCNLER06A01M08_XBND_OCPU_QPY_BETA0802.zip](https://github.com/QuecPython/solution-POC/releases/download/v.1.0.0/EC600MCNLER06A01M08_XBND_OCPU_QPY_BETA0802.zip) 至开发板。 +参考[此章节](https://python.quectel.com/doc/Application_guide/zh/dev-tools/QPYcom/qpycom-dw.html#%E4%B8%8B%E8%BD%BD%E5%9B%BA%E4%BB%B6),烧录固件包 [EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0117.zip](https://github.com/QuecPython/solution-POC/releases/download/v.1.0.0/EC600MCNLER06A01M08_XBND_OCPU_QPY_BETA0802.zip) 至开发板。 ### 脚本导入与运行 -1. 参考[此章节](https://python.quectel.com/doc/Getting_started/zh/first_python.html#PC%E4%B8%8E%E6%A8%A1%E7%BB%84%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93),将源码目录下 `code`文件夹中的所有文件导入到模组文件系统,如下图所示: +1. 参考[此章节](https://python.quectel.com/doc/Getting_started/zh/first_python.html#PC%E4%B8%8E%E6%A8%A1%E7%BB%84%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93),将源码目录下 `code` 文件夹中的所有文件导入到模组文件系统,如下图所示: -2. 参考[此章节](https://python.quectel.com/doc/Getting_started/zh/first_python.html#%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6),执行主程序文件`poc_main.py`。 +2. 参考[此章节](https://python.quectel.com/doc/Getting_started/zh/first_python.html#%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6),执行主程序文件 `poc_main.py`。 3. 参考[此章节](https://python.quectel.com/doc/Getting_started/zh/first_python.html#%E5%81%9C%E6%AD%A2%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C),停止程序运行。 ## 业务调试 @@ -69,21 +73,33 @@ 执行 `poc_main.py` 脚本后,程序开始运行,进入到 `WelcomeScreen` 界面,同时获取 SIM 卡状态和当前账号,并通过 TTS 语音播报当前登录用户及其加入的群组信息。 - + > 🚩 **Warning** > 未插入 SIM 卡时不会进入到主界面,插入 SIM 卡并重启设备后即可正常运行。 -> +> ### 主界面 -​主界面包含多个选项列表(用户可参考 [软件设计讲解 - 界面模块](./software_design.html#界面模块) 自行添加、修改),每个选项对应一个新的界面。 +主界面包含多个选项列表(用户可参考 [软件设计讲解 - 界面模块](./software_design.html#界面模块) 自行添加、修改),每个选项对应一个新的界面。 - 单击 `key2` 键,选中框往下滚动。 - 双击 `key2` 键,进入所选中的界面。 - 长按 `key2` 键,返回上一级界面。 -​ + + +### 群组列表 + +进入群组管理界面可以查询到当前账号所加入的群组列表,并且消息提示框会提示当前所在哪个群组,如下图: + + + +### 成员列表 + +进入成员列表界面可以查询到当前所在群组的所有成员,如下图: + + ### 对讲 @@ -93,9 +109,8 @@ - 对方讲话时,菜单栏显示 `听筒` 图标。 **主动呼叫图示:** - - + **对方呼叫图示:** - + diff --git a/docs/Application_guide/zh/solutions/poc/software_design.md b/docs/Application_guide/zh/solutions/poc/software_design.md index 8956cf90947e59eca0e7afbc677221f67728c65a..bca3d80c26de65ed64c8953b41dab8bce2031ecb 100644 --- a/docs/Application_guide/zh/solutions/poc/software_design.md +++ b/docs/Application_guide/zh/solutions/poc/software_design.md @@ -127,10 +127,11 @@ class AbstractLoad(object): `services.py` 定义了多个 `service`,用于提供各种服务。这些 `servies` 继承 `AbstractLoad` 抽象加载基类,便于在加载过程中提供各类服务事项。 -1. `DevInfoService`:提供设备信息服务 -2. `MediaService`:提供音频服务 -3. `NetService`:提供网络服务 -4. `PocService`:提供 Poc 对讲服务 +1. `BatteryManger`:提供电池电量管理 +2. `DevInfoService`:提供设备信息服务 +3. `MediaService`:提供音频服务 +4. `NetService`:提供网络服务 +5. `PocService`:提供 Poc 对讲服务 各 `service` 之间的关系如下图: @@ -188,6 +189,7 @@ class Screen(AbstractLoad): if cur_idx < 0: cur_idx = count - 1 return cur_idx + def next_idx(self, now_idx, count): cur_idx = now_idx + 1 if cur_idx > count - 1: @@ -198,9 +200,9 @@ class Screen(AbstractLoad): 在 `ui.py` 中,还定义了多个 UI 界面,如: 1. `PocUI`:主 UI,提供 `MenuBar`、`PromptBox` 和 `Screen` 的管理以及按键事件的响应处理 -2. `MenuBar`:菜单栏 -3. `PromptBox`:提示框 -4. `Screen`:UI 屏幕,也可以理解为 UI 界面,用于展示给用户看的各种界面。如 `MenuBar`、`WelcomeScreen` 和 `MemberScreen` 等 +2. `MenuBar`:菜单栏(用于显示网络状态、时间、电量以及其他图标,一直显示在屏幕上方,大小为 240×20) +3. `PromptBox`:消息提示框(用于消息提示,显示在当前 UI 界面之上) +4. `Screen`:UI 屏幕,也可以理解为 UI 界面,用于展示给用户看的各种界面。如 `GroupScreen`、`WelcomeScreen` 和 `MemberScreen` 等 各 UI 界面之间的关系如下图: @@ -208,6 +210,21 @@ class Screen(AbstractLoad): > 如用户需添加 `Screen`,可参考已有 `Screen` 样式进行添加,并添加到 `poc_main.py` 中对应的位置即可。 +### 群组管理 + +在 `ui.py` 的 `GroupScreen` 里面实现了群组管理的功能,在页面加载之前通过 `EventMap` 事件管理,向 `Services` 发送对应事件,获取当前账号所加入的所有群组,并通过列表将其显示出来。 + +```python +class GroupScreen(Screen): + def load_before(self): + EventMap.bind("update_group_info", self.__update_group_info) # 更新获取群组信息 + + def load(self): + self.__load_group_list() # 判断是否获取到组群列表 + self.__group_screen_list_create() # 创建群组界面列表 + self.__load_group_cur() +``` + ### APP管理 `poc_main.py` 中使用一个 `APP` 类进行管理,用户添加或修改如按键、消息框和服务等操作,调用相应的函数添加即可。