修改fsucode的生成方式
parent
74519f4c5a
commit
8b8c47f108
|
@ -5,11 +5,14 @@
|
||||||
"username": "hjemq_sim_icm",
|
"username": "hjemq_sim_icm",
|
||||||
"passwd": "Hj57471000",
|
"passwd": "Hj57471000",
|
||||||
"publish_topic": "GateWayPublicTopic_Server",
|
"publish_topic": "GateWayPublicTopic_Server",
|
||||||
"publish_interval": 5000,
|
"publish_interval": 10000,
|
||||||
"max_publish_count": 0,
|
"max_publish_count": 0,
|
||||||
"publish_qos": 0,
|
"publish_qos": 0,
|
||||||
"subscribe_qos": 0,
|
"subscribe_qos": 0,
|
||||||
"subcriber_topic": "ServerPublicTopic_GateWay",
|
"subcriber_topic": "ServerPublicTopic_GateWay",
|
||||||
|
"FsuCodePrefix": "1111111000",
|
||||||
|
"FsuCodeStart": 1,
|
||||||
|
"FsuCodeEnd": 365,
|
||||||
"FsuCodes": ["11111110000001","11111110000002","11111110000003","11111110000004"],
|
"FsuCodes": ["11111110000001","11111110000002","11111110000003","11111110000004"],
|
||||||
"publish_data": {
|
"publish_data": {
|
||||||
"FsuCode": "11010110100999",
|
"FsuCode": "11010110100999",
|
||||||
|
|
|
@ -80,6 +80,9 @@ class MqttConfigure:
|
||||||
self.client_id = f'python-mqtt-{random.randint(0, 1000)}'
|
self.client_id = f'python-mqtt-{random.randint(0, 1000)}'
|
||||||
self.max_publish_count = 0
|
self.max_publish_count = 0
|
||||||
self.fsuCodes = []
|
self.fsuCodes = []
|
||||||
|
self.FsuCodePrefix = 1111111000
|
||||||
|
self.FsuCodeStart = 1
|
||||||
|
self.FsuCodeEnd = 999
|
||||||
|
|
||||||
|
|
||||||
class PublishData:
|
class PublishData:
|
||||||
|
@ -103,7 +106,11 @@ def read_configure(mqtt_conf=None, publish_data=None):
|
||||||
mqtt_conf.subscribe_qos = json_data['subscribe_qos']
|
mqtt_conf.subscribe_qos = json_data['subscribe_qos']
|
||||||
mqtt_conf.subscriber_topic = json_data['subcriber_topic']
|
mqtt_conf.subscriber_topic = json_data['subcriber_topic']
|
||||||
mqtt_conf.client_id = json_data['client_id']
|
mqtt_conf.client_id = json_data['client_id']
|
||||||
# 2025.03.11 增加读取多个FsuCode,用于模拟多个不同的设备
|
|
||||||
|
# 2025.03.27 增加读取多个FsuCode,用于模拟多个不同的设备
|
||||||
|
mqtt_conf.FsuCodePrefix = json_data['FsuCodePrefix']
|
||||||
|
mqtt_conf.FsuCodeStart = json_data['FsuCodeStart']
|
||||||
|
mqtt_conf.FsuCodeEnd = json_data['FsuCodeEnd']
|
||||||
mqtt_conf.fsuCodes = json_data['FsuCodes']
|
mqtt_conf.fsuCodes = json_data['FsuCodes']
|
||||||
publish_data.publish_data = json_data['publish_data']
|
publish_data.publish_data = json_data['publish_data']
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -119,7 +126,7 @@ def pub_connect_mqtt():
|
||||||
|
|
||||||
def on_disconnect(client, userdata, rc):
|
def on_disconnect(client, userdata, rc):
|
||||||
"""断开连接回调"""
|
"""断开连接回调"""
|
||||||
logger.info(f"[{time.ctime()}] 连接断开,原因:{client.error_string(rc)}")
|
logger.info(f"[{time.ctime()}] 连接断开")
|
||||||
if rc != 0:
|
if rc != 0:
|
||||||
logger.info("尝试重新连接...")
|
logger.info("尝试重新连接...")
|
||||||
reconnect()
|
reconnect()
|
||||||
|
@ -174,8 +181,6 @@ def sub_connect_mqtt():
|
||||||
# 2025.03.11 增加函数参数,处理制定的fsucode
|
# 2025.03.11 增加函数参数,处理制定的fsucode
|
||||||
def build_publish_msg(fsu_code=None):
|
def build_publish_msg(fsu_code=None):
|
||||||
pd = publish_data.publish_data
|
pd = publish_data.publish_data
|
||||||
# msg = {"FsuCode": pd["FsuCode"], "type": pd["type"], "IdCodeContent": [],
|
|
||||||
# "TimeStamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}
|
|
||||||
msg = {"FsuCode": fsu_code, "type": pd["type"], "IdCodeContent": [],
|
msg = {"FsuCode": fsu_code, "type": pd["type"], "IdCodeContent": [],
|
||||||
"TimeStamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}
|
"TimeStamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}
|
||||||
for one in pd["IdCodeContent"]:
|
for one in pd["IdCodeContent"]:
|
||||||
|
@ -199,12 +204,17 @@ def build_publish_msg(fsu_code=None):
|
||||||
|
|
||||||
def publish(client):
|
def publish(client):
|
||||||
msg_count = 0
|
msg_count = 0
|
||||||
|
# 2025.03.11 增加循环处理多个FsuCode,用于模拟多个不同的设备
|
||||||
|
fsu_codes_result = []
|
||||||
|
for num in range(mqtt_conf.FsuCodeStart, mqtt_conf.FsuCodeEnd+1):
|
||||||
|
suffix = f"{num:04d}"
|
||||||
|
fsu_codes_result.append(mqtt_conf.FsuCodePrefix + suffix)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
if mqtt_conf.max_publish_count != 0 and msg_count > mqtt_conf.max_publish_count:
|
if mqtt_conf.max_publish_count != 0 and msg_count > mqtt_conf.max_publish_count:
|
||||||
break
|
break
|
||||||
|
# for fsu_code in mqtt_conf.fsuCodes:
|
||||||
# 2025.03.11 增加循环处理多个FsuCode,用于模拟多个不同的设备
|
for fsu_code in fsu_codes_result:
|
||||||
for fsu_code in mqtt_conf.fsuCodes:
|
|
||||||
logger.info("Processing fsuCode: " + fsu_code)
|
logger.info("Processing fsuCode: " + fsu_code)
|
||||||
msg = build_publish_msg(fsu_code)
|
msg = build_publish_msg(fsu_code)
|
||||||
msg_info = client.publish(topic=mqtt_conf.publish_topic, payload=msg, qos=mqtt_conf.publish_qos)
|
msg_info = client.publish(topic=mqtt_conf.publish_topic, payload=msg, qos=mqtt_conf.publish_qos)
|
||||||
|
@ -225,7 +235,8 @@ def publish(client):
|
||||||
|
|
||||||
msg_count += 1
|
msg_count += 1
|
||||||
if status == mqtt_client.MQTT_ERR_SUCCESS:
|
if status == mqtt_client.MQTT_ERR_SUCCESS:
|
||||||
logger.info(f"Send `#{msg_count}` message to topic `{mqtt_conf.publish_topic}`: `{msg}` ")
|
# logger.info(f"Send `#{msg_count}` message to topic `{mqtt_conf.publish_topic}`: `{msg}` ")
|
||||||
|
logger.info(f"Send `#{msg_count}` message to topic `{mqtt_conf.publish_topic}` successfully")
|
||||||
else:
|
else:
|
||||||
logger.error(f"Failed to send `#{msg_count}` message to topic {mqtt_conf.publish_topic}")
|
logger.error(f"Failed to send `#{msg_count}` message to topic {mqtt_conf.publish_topic}")
|
||||||
time.sleep(mqtt_conf.publish_interval/1000)
|
time.sleep(mqtt_conf.publish_interval/1000)
|
||||||
|
|
Loading…
Reference in New Issue