gpt4 book ai didi

python - 如何在Python中实现实时跟踪机制?

转载 作者:行者123 更新时间:2023-11-28 18:31:38 25 4
gpt4 key购买 nike

我想实现一种“第一次看到”和“最后一次看到”的方式来跟踪来自 RFID 阅读器的消息。

以下代码设法跟踪每条唯一消息并每 5 分钟更新一次。

import paho.mqtt.client as mqtt
import json
import datetime as dt

time_interval = dt.timedelta(minutes=5)

dic1 = {}
update = []

def on_message(client, userdata, msg):
payloadjson = json.loads(msg.payload.decode('utf-8'))
line = payloadjson["value"].split(',')
epc = line[1]
rfid_input = "EPC_NO.: " + epc[11:35]
when = dt.datetime.strptime(datetime, '%Y-%m-%d %H:%M:%S')


if rfid_input not in dic1 or (when - dic1[rfid_input] > time_interval):
dic1[rfid_input] = when
update.append(dic1)
for key, value in update[-1].items():
print (key, value)
print ()

如何记录“第一次看到”的日期和时间并将其打印出来?

类似于:

# At the very beginning
EPC_NO.: 012345 FIRST SEEN AT 2016-04-18 08:59:33 LAST SEEN AT 2016-04-18 08:59:33
EPC_NO.: 056789 FIRST SEEN AT 2016-04-18 09:00:23 LAST SEEN AT 2016-04-18 09:00:23

# 5 mins later
EPC_NO.: 012345 FIRST SEEN AT 2016-04-18 08:59:33 LAST SEEN AT 2016-04-18 09:04:33
EPC_NO.: 056789 FIRST SEEN AT 2016-04-18 09:00:23 LAST SEEN AT 2016-04-18 09:05:23

# 10 mins later **(EPC_NO.: 056789 is not read)
EPC_NO.: 012345 FIRST SEEN AT 2016-04-18 08:59:33 LAST SEEN AT 2016-04-18 09:09:33
EPC_NO.: 056789 FIRST SEEN AT 2016-04-18 09:00:23 LAST SEEN AT 2016-04-18 09:05:23

最佳答案

我会使用一个类来收集您需要的所有信息:

import paho.mqtt.client as mqtt
import json
import datetime as dt

time_interval = dt.timedelta(minutes=5)

dic1 = {}


class EPC():
def __init__(self,when):
self.first_seen = when
self.last_print = when
self.last_seen = when

def on_message(client, userdata, msg):
payloadjson = json.loads(msg.payload.decode('utf-8'))
line = payloadjson["value"].split(',')
epc = line[1]
rfid_input = "EPC_NO.: " + epc[11:35]
when = dt.datetime.today()

if rfid_input not in dic1:
dic1[rfid_input] = EPC(when)
print_all = True

else:
dic1[rfid_input].last_seen = when
print_all = when-dic1[rfid_input].last_print > time_interval

if print_all:
for (key, value) in dic1.items():
first_str = "%04d-%02d-%02d %02d:%02d:%02d"%(value.first_seen.year,value.first_seen.month,value.first_seen.day,value.first_seen.hour,value.first_seen.minute,value.first_seen.second)
last_str = "%04d-%02d-%02d %02d:%02d:%02d"%(value.last_seen.year,value.last_seen.month,value.last_seen.day,value.last_seen.hour,value.last_seen.minute,value.last_seen.second)

print "EPC_NO.: %06d FIRST SEEN AT %s LAST SEEN AT %s"%(key, first_str,last_str)
value.last_print = when

我无法测试它,如果有问题请告诉我。

关于python - 如何在Python中实现实时跟踪机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com