提交 b755252c authored 作者: 陈泽健's avatar 陈泽健

使用crate_csv_test脚本生成安卓信息上报与心跳上报的csv文件,并使用MQTT脚本模拟两千台设备上报消息至预定系统。

上级 20c15596
......@@ -171,6 +171,7 @@ class Mqtt:
try:
self.client.publish(topic, message)
logging.info(f"{datetime.now()} - 已发布消息到主题: {topic} - 调用者: {self.__class__.__name__}.publish")
logging.info(f"{datetime.now()} - 发送的消息为: {message} - 调用者: {self.__class__.__name__}.publish")
except Exception as e:
logging.error(f"{datetime.now()} - 消息发布失败: {e} - 失败的主题: {topic}, 消息: {message} - 调用者: {self.__class__.__name__}.publish")
raise
......@@ -309,7 +310,7 @@ class Mqtt:
"conferenceId": int(config['conferenceId']),
"defaultQrCodeUrl": "http://192.168.5.218:8888/group1/M00/00/21/wKgFyGNBWZmADtnNAAAwrxR0X8s016.png",
"aliasName": "zt",
"serverBaseUrl": "http://192.168.5.218:8996/",
"serverBaseUrl": "https://192.168.5.218/exapi",
"localBindTime": current_time,
"generalField": "{\"conferencePhone\":\"\",\"chooseTimeType\":1,\"meetingTopicSwitch\":\"1\",\"meetingContentSwitch\":\"1\",\"meetingReverseTypeSwitch\":\"1\",\"seatArrangeSwitch\":\"1\",\"meetingVoteSwitch\":\"1\",\"floorPlanPath\":\"\",\"jumpToPaperless\":2,\"approvalList\":[],\"isLeaderJoin\":false,\"meetingPublishScreenSwitch\":\"1\"}"
},
......@@ -330,7 +331,7 @@ class Mqtt:
"freeAndTotalMemory": "1176M/1997M",
"internalAvailableSize": 4306395136,
"internalTotalSize": 4877451264,
"ipAddress": "192.168.5.129",
"ipAddress": "192.168.5.111",
"macAddress": config['macAddress'],
"networkType": "NETWORK_ETHERNET",
"processCpuUsage": "0.82%",
......
No preview for this file type
......@@ -301,4 +301,6 @@
- 解决展厅桌牌系统定位错误问题,config.json文件增加展厅预定系统后台登录链接,优化桌牌的系统登录跳转。
- 排查展厅门口的中控屏没有巡检截图的问题,排查后发现中控屏的软件包名与类名因为更新程序后不一样了,调整展厅中控屏初始化新的软件包名与类名。1
86. 2025-05-25:
- 增加兰州项目定制自动化处理,调试兰州自动化的JSON数据运行。
\ No newline at end of file
- 增加兰州项目定制自动化处理,调试兰州自动化的JSON数据运行。
87. 2025-05-26:
- 使用crate_csv_test脚本生成安卓信息上报与心跳上报的csv文件,并使用MQTT脚本模拟两千台设备上报消息至预定系统。
\ No newline at end of file
......@@ -8,7 +8,7 @@ logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(
def on_connect(client, userdata, flags, rc):
logging.info("已连接到MQTT服务器")
# 订阅多个主题
topics = ["/androidPanel/", "/uams/android/broadcast", "/material/client/79f18c1a9a3bcfb1/"]
topics = ["/androidPanel/", "/uams/android/broadcast", "/material/client/79f18c1a9a3bcfb1/","rebootResponseTopic"]
for t in topics:
client.subscribe(t)
......@@ -18,7 +18,9 @@ def on_message(client, userdata, msg):
if __name__ == "__main__":
# 5.218测试环境 192.168.5.218 1883
broker_address = "192.168.5.235"
broker_address = "192.168.5.218"
username = "mqtt@cmdb" # 你的MQTT用户名
password = "mqtt@webpassw0RD" # 你的MQTT密码
port = 1883
# 创建 MQTT 客户端实例
......
......@@ -17,7 +17,8 @@ except ModuleNotFoundError as e:
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/MQTT模块/MQTT安卓上报与心跳上报.csv')
csv_file_path = os.path.join(current_dir, '../../测试数据/MQTT模块/MQTT安卓上报_2000条.csv')
# csv_file_path = os.path.join(current_dir, '../../测试数据/MQTT模块/MQTT心跳上报_2000条.csv')
if __name__ == "__main__":
# 读取配置文件
......@@ -26,8 +27,8 @@ if __name__ == "__main__":
username = "mqtt@cmdb" # 你的MQTT用户名
password = "mqtt@webpassw0RD" # 你的MQTT密码
port = 1883
num_repeats = 100 # 重复执行的次数
interval_between_repeats = 0.2 # 每次重复之间的间隔时间(秒)
num_repeats = 200 # 重复执行的次数
interval_between_repeats = 1 # 每次重复之间的间隔时间(秒)
# 创建 MQTT 客户端实例
mqtt_client = Mqtt(broker_address, port)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
topic,clientId,appToken,companyNumber,cnum,conferenceId,macAddress,authCode,clientId,deviceId
rebootResponseTopic,48134e6047a19a01,AND-2IK-0021,CN-2IK-UBAINS,4b521415d42650a0da515114aa36ab88,220,20:59:20:00:28:01,AND-2IK-0021,48134e6047a19a01,aa44e258a4e1e001
rebootResponseTopic,48134e6047a19a02,AND-2IK-0022,CN-2IK-UBAINS,6828f107eddcd6c80537e554f1ba6393,221,20:59:20:00:28:02,AND-2IK-0022,48134e6047a19a02,aa44e258a4e1e002
rebootResponseTopic,48134e6047a19a03,AND-2IK-0023,CN-2IK-UBAINS,694eba1b6f1995d4f7c085c77788ca68,222,20:59:20:00:28:03,AND-2IK-0023,48134e6047a19a03,aa44e258a4e1e003
rebootResponseTopic,48134e6047a19a04,AND-2IK-0024,CN-2IK-UBAINS,acab665450c5bb91e11881e749934b63,223,20:59:20:00:28:04,AND-2IK-0024,48134e6047a19a04,aa44e258a4e1e004
rebootResponseTopic,48134e6047a19a05,AND-2IK-0025,CN-2IK-UBAINS,842380cf2573785aa3e74f61c3921e1b,224,20:59:20:00:28:05,AND-2IK-0025,48134e6047a19a05,aa44e258a4e1e005
rebootResponseTopic,48134e6047a19a06,AND-2IK-0026,CN-2IK-UBAINS,4c02ca0fc3f0947ab2658b6d6b98bbfc,225,20:59:20:00:28:06,AND-2IK-0026,48134e6047a19a06,aa44e258a4e1e006
rebootResponseTopic,48134e6047a19a07,AND-2IK-0027,CN-2IK-UBAINS,24d712de79b9907304874c1ab158cbab,226,20:59:20:00:28:07,AND-2IK-0027,48134e6047a19a07,aa44e258a4e1e007
/uams/android/broadcast,,,,,,,,48134e6047a19a01,aa44e258a4e1e001
/uams/android/broadcast,,,,,,,,48134e6047a19a02,aa44e258a4e1e002
/uams/android/broadcast,,,,,,,,48134e6047a19a03,aa44e258a4e1e003
/uams/android/broadcast,,,,,,,,48134e6047a19a04,aa44e258a4e1e004
/uams/android/broadcast,,,,,,,,48134e6047a19a05,aa44e258a4e1e005
/uams/android/broadcast,,,,,,,,48134e6047a19a06,aa44e258a4e1e006
/uams/android/broadcast,,,,,,,,48134e6047a19a07,aa44e258a4e1e007
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
import csv
def create_AndroidMessageUp_csv():
# 定义基础数据
base_data = {
"topic": "rebootResponseTopic",
"appToken": "AND-2IK-0021",
"companyNumber": "CN-2IK-UBAINS",
"cnum": "",
"conferenceId": "100",
"macAddress": "20:59:20:00:28:01",
}
# 输出文件路径
output_file = "MQTT模块/MQTT安卓上报_2000条.csv"
# 生成2000条数据
with open(output_file, mode="w", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
# 写入表头
writer.writerow([
"topic", "clientId", "appToken", "companyNumber", "cnum",
"conferenceId", "macAddress", "authCode", "clientId", "deviceId"
])
for i in range(1, 2001):
# 格式化编号
index_str = f"{i:04d}"
client_id = f"48134e6047a19a{i:04d}"
device_id = f"aa44e258a4e1e{i:04d}"
app_token = f"AND-2IK-{index_str}"
auth_code = app_token
# 写入一行数据
writer.writerow([
base_data["topic"], client_id, app_token, base_data["companyNumber"],
base_data["cnum"], base_data["conferenceId"], base_data["macAddress"],
auth_code, client_id, device_id
])
print(f"成功生成 {output_file} 文件,包含2000条数据。")
import csv
def create_Androidbroadcast_csv():
# 基础配置
base_topic = "/uams/android/broadcast"
output_file = "MQTT模块/MQTT心跳上报_2000条.csv"
# 生成2000条数据
with open(output_file, mode="w", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
# 写入表头(根据原始CSV结构)
writer.writerow([
"topic", "clientId", "appToken", "companyNumber", "cnum",
"conferenceId", "macAddress", "authCode", "clientId", "deviceId"
])
for i in range(1, 2001):
# 格式化编号为4位数,如0001, 0002...
index_str = f"{i:04d}"
# clientId 和 deviceId 的格式
client_id = f"48134e6047a19a{index_str}"
device_id = f"aa44e258a4e1e{index_str}"
# 按照指定格式写入空字段和动态字段
writer.writerow([
base_topic, "", "", "", "",
"", "", "", client_id, device_id
])
print(f"成功生成 {output_file} 文件,包含2000条数据。")
if __name__ == "__main__":
create_AndroidMessageUp_csv()
create_Androidbroadcast_csv()
\ No newline at end of file
import csv
if __name__ == "__main__":
ddt_cases = []
# 定义CSV文件的列名
fieldnames = ['name', 'account', 'expected']
# 将数据转换为适合写入CSV的格式
rows = []
for case in ddt_cases:
row = [case['name']] + case['para']
rows.append(row)
# 写入CSV文件
with open('textname.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(fieldnames)
writer.writerows(rows)
print("CSV文件已生成")
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论