Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
96a6f57e
提交
96a6f57e
authored
4月 22, 2026
作者:
陈泽健
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into develop
上级
2ce1d66e
56c6bf78
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
913 行增加
和
44 行删除
+913
-44
Android_Information .py
...Tool/ReservationSystem_DoorScreen/Android_Information .py
+233
-43
Android_Information.py
..._Tool/ReservationSystem_DoorScreen/Android_Information.py
+412
-0
安卓信息-消息监听.py
..._Universal_Tool/ReservationSystem_DoorScreen/安卓信息-消息监听.py
+1
-1
MQTT安卓上报_100条.csv
...l/TestData/ReservationSystem_DoorScreen/MQTT安卓上报_100条.csv
+0
-0
MQTT设备信息上报_100条.csv
...TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv
+0
-0
README_设备信息上报.md
...ol/TestData/ReservationSystem_DoorScreen/README_设备信息上报.md
+265
-0
Mqtt_Send.py
预定系统/Base/Mqtt_Send.py
+0
-0
__init__.py
预定系统/Base/__init__.py
+1
-0
__init__.py
预定系统/__init__.py
+1
-0
没有找到文件。
Mqtt_Universal_Tool/ReservationSystem_DoorScreen/Android_Information .py
浏览文件 @
96a6f57e
此差异已折叠。
点击以展开。
Mqtt_Universal_Tool/ReservationSystem_DoorScreen/Android_Information.py
0 → 100644
浏览文件 @
96a6f57e
此差异已折叠。
点击以展开。
Mqtt_Universal_Tool/ReservationSystem_DoorScreen/安卓信息-消息监听.py
浏览文件 @
96a6f57e
...
@@ -17,7 +17,7 @@ def on_message(client, userdata, msg):
...
@@ -17,7 +17,7 @@ def on_message(client, userdata, msg):
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
# 5.218测试环境 192.168.5.218 1883
# 5.218测试环境 192.168.5.218 1883
broker_address
=
"192.168.5.
218
"
broker_address
=
"192.168.5.
50
"
username
=
"mqtt@cmdb"
# 你的MQTT用户名
username
=
"mqtt@cmdb"
# 你的MQTT用户名
password
=
"mqtt@webpassw0RD"
# 你的MQTT密码
password
=
"mqtt@webpassw0RD"
# 你的MQTT密码
port
=
1883
port
=
1883
...
...
Mqtt_Universal_Tool/TestData/ReservationSystem_DoorScreen/MQTT安卓上报_100条.csv
deleted
100644 → 0
浏览文件 @
2ce1d66e
此差异已折叠。
点击以展开。
Mqtt_Universal_Tool/TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv
0 → 100644
浏览文件 @
96a6f57e
此差异已折叠。
点击以展开。
Mqtt_Universal_Tool/TestData/ReservationSystem_DoorScreen/README_设备信息上报.md
0 → 100644
浏览文件 @
96a6f57e
# MQTT设备信息上报测试数据说明
## 📋 概述
本目录包含用于模拟Android门口屏设备信息上报的MQTT测试数据,完全基于JavaScript代码
`getDeviceInfoMessage()`
方法的结构生成。
## 📁 文件说明
### 1. CSV数据文件
#### MQTT设备信息上报_100条.csv
-
**用途**
: 包含100条设备信息上报的测试数据
-
**字段**
: 35个字段,涵盖设备所有关键信息
-
**生成方式**
: 通过
`generate_device_info_csv.py`
脚本生成
#### 其他CSV文件
-
`MQTT心跳上报_100条.csv`
: 心跳数据
-
`MQTT信息上报_100条.csv`
: 旧版信息上报数据
### 2. Python脚本
#### generate_device_info_csv.py
-
**功能**
: 生成设备信息上报CSV测试数据
-
**运行方式**
:
```
bash
python generate_device_info_csv.py
```
-
**
输出
**
: 生成100条符合真实设备格式的测试数据
#### test_device_info_message.py
-
**
功能
**
: 验证消息构建是否符合JavaScript代码规范
-
**
运行方式
**
:
```
bash
python test_device_info_message.py
```
-
**
验证内容
**
:
- 外层消息结构(method, clientId, result)
- 内层result对象的所有字段
- 数据类型正确性(布尔值、整数、浮点数、数组等)
- JSON双重序列化格式
#### Android_Information .py
-
**
功能
**
: MQTT消息发送主程序
-
**
配置
**
: 已自动添加
`
MQTT设备信息上报_100条.csv
`
到CSV_FILES列表
-
**
运行方式
**
:
```
bash
python
"Android_Information .py"
```
## 🔧 消息结构
### 外层结构
```
json
{
"method": "/system/readSystemInfo",
"clientId": "设备ID",
"result": "{内层JSON字符串}"
}
```
**注意**: `result`字段是JSON字符串(双重序列化),不是对象。
### 内层结构(result.result)
```
json
{
"result": {
"buildInfo": {
"appToken": "授权码",
"companyNumber": "公司编号",
"cnum": "会议室绑定ID",
"conferenceName": "会议室名称",
"conferenceId": 3,
"defaultQrCodeUrl": null,
"aliasName": "会议室别名",
"serverBaseUrl": "https://192.168.9.86/exapi/",
"localBindTime": "2026-04-22 11:19:55",
"generalField": "{...}" // JSON字符串
},
"faceVersion": "4.2.12021020201.1",
"wgtVersion": "0.2.134",
"deviceModel": "Pad10-Pro",
"abiList":
[
"arm64-v8a", "armeabi-v7a", "armeabi"
]
,
"androidId": "79f18c1a9a3bcfb1",
"appName": "UBAINS",
"appPackageName": "com.ubains.local.gviewer",
"appVersion": 351,
"appVersionName": "1.3.351",
"battery": 0.5,
"bluetoothEnabled": false,
"camerasCount": 1,
"charging": true,
"density": 1,
"freeAndTotalMemory": "698M/1957M",
"internalAvailableSize": 9793269760,
"internalTotalSize": 11075297280,
"ipAddress": "192.168.1.142",
"macAddress": "28:52:F9:1B:99:52",
"networkType": "NETWORK_WIFI",
"processCpuUsage": "28.73%",
"resolution": "1920x1200",
"romName": "yuxian",
"rooted": true,
"sdkVersionCode": 30,
"sdkVersionName": "11",
"sysDate": "Wed Apr 22 11:19:55 GMT+08:00 2026",
"sysDateStr": "2026-04-22 11:19:55",
"sysElapsedRealtime": "83:19:56",
"sysLanguage": "en",
"sysSupportedSensors":
[
"Accelerometer sensor"
]
,
"buildConfig": {
"FLAVOR_APP_TYPE": "rksystem",
"BUILD_TYPE": "release",
"FLAVOR_FEATURE": "doorscreen",
"DEBUG": false,
"FLAVOR": "rksystemDoorscreen"
},
"faceBuildInfo": "arcfacepro4x",
"authCode": "AND-KH4-0011",
"conferenceName": "PGY-TestRoom"
}
}
```
## 📊 CSV字段说明
| 字段名 | 类型 | 说明 | 示例 |
|--------|------|------|------|
| topic | String | MQTT主题 | rebootResponseTopic |
| clientId | String | Android设备唯一标识 | 79f18c1a9a3bcfb1 |
| appToken | String | 授权码 | AND-KH4-0011 |
| companyNumber | String | 公司编号 | CN-KH4-UBAINS |
| cnum | String | 会议室绑定ID | w7k1allc7gqkmk8igrae9qgnliwhxyhy |
| conferenceId | Integer | 会议室ID | 3 |
| conferenceName | String | 会议室名称 | PGY-TestRoom |
| macAddress | String | MAC地址 | 28:52:F9:1B:99:52 |
| ipAddress | String | IP地址 | 192.168.1.142 |
| deviceModel | String | 设备型号 | Pad10-Pro |
| networkType | String | 网络类型 | NETWORK_WIFI |
| battery | Float | 电池电量(0-1) | 0.5 |
| charging | Boolean | 充电状态 | true/false |
| resolution | String | 分辨率 | 1920x1200 |
| romName | String | ROM名称 | yuxian |
| sdkVersionCode | Integer | SDK版本代码 | 30 |
| sdkVersionName | String | SDK版本名称 | 11 |
| appVersion | Integer | 应用版本号 | 351 |
| appVersionName | String | 应用版本名称 | 1.3.351 |
| faceVersion | String | 人脸模块版本 | 4.2.12021020201.1 |
| wgtVersion | String | Widget版本 | 0.2.134 |
| abiList | JSON String | CPU架构列表 | ["arm64-v8a",...] |
| appName | String | 应用名称 | UBAINS |
| appPackageName | String | 应用包名 | com.ubains.local.gviewer |
| bluetoothEnabled | Boolean | 蓝牙启用状态 | true/false |
| camerasCount | Integer | 摄像头数量 | 1 |
| density | Integer | 屏幕密度 | 1 |
| freeAndTotalMemory | String | 内存使用情况 | 698M/1957M |
| internalAvailableSize | Integer | 内部存储可用大小 | 9793269760 |
| internalTotalSize | Integer | 内部存储总大小 | 11075297280 |
| processCpuUsage | String | CPU使用率 | 28.73% |
| rooted | Boolean | 是否Root | true/false |
| sysLanguage | String | 系统语言 | en |
| sysSupportedSensors | JSON String | 支持的传感器列表 | ["Accelerometer sensor"] |
| buildConfig | JSON String | 构建配置 | {...} |
| faceBuildInfo | String | 人脸构建信息 | arcfacepro4x |
## 🚀 使用步骤
### 1. 生成测试数据(可选)
```
bash
cd E:
\u
bains-module-test
\u
bains-module-test
\M
qtt_Universal_Tool
\T
estData
\R
eservationSystem_DoorScreen
python generate_device_info_csv.py
```
### 2. 验证消息格式
```
bash
python test_device_info_message.py
```
### 3. 运行MQTT发送程序
```
bash
cd E:
\u
bains-module-test
\u
bains-module-test
\M
qtt_Universal_Tool
\R
eservationSystem_DoorScreen
python "Android_Information .py"
```
## ⚙️ 配置说明
在`Android_Information .py`中修改以下配置:
```
python
# CSV文件列表
CSV_FILES =
[
'../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv',
]
# MQTT服务器配置
MQTT_CONFIG = {
'broker_address': '192.168.5.50',
'port': 1883,
'username': 'mqtt@cmdb',
'password': 'mqtt@webpassw0RD',
}
# 线程配置
THREAD_CONFIG = {
'max_threads': 100,
'send_interval': 1,
'startup_delay': 0.05,
}
```
## 🔍 验证要点
### 与JavaScript代码的一致性
1.
✅ 外层消息结构完全一致
2.
✅ result字段为JSON字符串(双重序列化)
3.
✅ buildInfo包含完整的会议室绑定信息
4.
✅ 所有字段名称与JavaScript代码一致
5.
✅ 数据类型正确(布尔值、整数、浮点数、数组)
6.
✅ 数组字段保持数组格式(abiList, sysSupportedSensors)
7.
✅ generalField为JSON字符串
### 真实日志对比
参考日志中的关键字段:
-
method:
`/system/readSystemInfo`
-
clientId:
`79f18c1a9a3bcfb1`
-
deviceModel:
`Pad10-Pro`
-
faceVersion:
`4.2.12021020201.1`
-
wgtVersion:
`0.2.134`
-
appVersionName:
`1.3.351`
-
resolution:
`1920x1200`
-
networkType:
`NETWORK_WIFI`
## 📝 注意事项
1.
**双重序列化**
: result字段必须是JSON字符串,不是对象
2.
**布尔值**
: 使用true/false,不是字符串"true"/"false"
3.
**数组字段**
: abiList和sysSupportedSensors必须保持数组格式
4.
**数值类型**
: battery是浮点数,conferenceId是整数
5.
**时间格式**
: sysDateStr使用"YYYY-MM-DD HH:mm:ss"格式
6.
**运行时长**
: sysElapsedRealtime格式为"H:MM:SS"
## 🐛 故障排查
### 问题1: 消息格式不正确
-
运行
`test_device_info_message.py`
验证
-
检查CSV字段名称是否正确
-
确认JSON字符串字段是否正确转义
### 问题2: 数据类型错误
-
检查CSV中的布尔值是否为true/false(不是字符串)
-
确认数值字段没有引号
-
验证JSON字符串字段是否用引号包裹
### 问题3: 模块导入失败
-
确保在项目根目录下运行
-
检查Python路径是否正确设置
-
验证
`预定系统/Base/Mqtt_Send.py`
文件存在
## 📅 更新记录
-
**2026-04-22**
: 初始版本,基于JavaScript getDeviceInfoMessage()方法生成
-
创建CSV生成脚本
-
更新Mqtt_Send.py消息构建逻辑
-
添加测试验证脚本
-
编写本文档
预定系统/Base/Mqtt_Send.py
浏览文件 @
96a6f57e
此差异已折叠。
点击以展开。
预定系统/Base/__init__.py
0 → 100644
浏览文件 @
96a6f57e
# 预定系统 Base 模块初始化文件
预定系统/__init__.py
0 → 100644
浏览文件 @
96a6f57e
# 预定系统模块初始化文件
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论