初始化一个 MQTT 客户端,连接到特定主题的 MQTT 代理,对于在该主题上接收到的每条消息,执行一个函数调用以检查消息中属性的长度是否大于 200,如果是,则查找陀螺仪读数: GyroX & 保存到文件确保文件大小保持小于 400MB,否则打开一个新文件并开始写入。
我想写入多个文件,即根据大小将传入的 json 消息发布到不同的文件,而不仅仅是一个文件。怎么做 ?任何帮助表示赞赏
file_name='/tmp/gyro_256'+"_"+timestr+".csv"
def on_message(client, userdata, message):
y = json.loads(message.payload)
v = (len(y['sec_data']))
p = int(v)
if p >= 200:
d = (y["sec_data"][10]["GyroX"])
with open(file_name,'a+') as f:
f.write(d + "\n")
client = mqttClient.Client("123") #create new instance
client.username_pw_set(user, password=password) #set username and
client.on_connect= on_connect #attach function to
client.on_message= on_message #attach function to
client.connect(broker_address,port,100) #connect
client.subscribe("tes1") #subscribe
client.loop_start() #then keep listening forever
if int(os.path.getsize(file_name)) > 47216840 :
client.loop_stop()
timestr = time.strftime("%Y%m%d%H%M%S")
file_name = '/vol/vol_HDB/data/gyro_256'+"_"+timestr+".csv"
client.loop_start()
幕布斯6054654
相关分类