3
私は、RFIDリーダからのメッセージを追跡するための「最初に見た」および「最後に見た」方法を実装したいと考えています。Pythonでリアルタイムトラッキングメカニズムを実装する方法は?
次のコードは、各ユニークなメッセージを追跡し、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.: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.: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.: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
お時間をありがとうございます@Vince! print_all = when - testlist [rfid_input] .last_print> time_interval // TypeError: - : 'str'と 'str'のサポートされていないオペランドの型です。データ型を扱う良い方法はありますか? –
'when'を' datetime.datetime'オブジェクトとして維持する方が良いと思います。柔軟性を提供するtho。 –
はい、あなたはそれについて完全に正しいです。それは今より良いはずです。 – Vince