diff --git a/POCloud/direct/poc.py b/POCloud/direct/poc.py index 7013d38..c033a36 100644 --- a/POCloud/direct/poc.py +++ b/POCloud/direct/poc.py @@ -1,16 +1,16 @@ #!/usr/bin/python -import types -import traceback -import binascii +# import types +# import traceback +# import binascii import threading import time -import thread -import os -import struct -import sys -import serial -import minimalmodbus +# import thread +# import os +# import struct +# import sys +# import serial +# import minimalmodbus import pickle from device_base import deviceBase # from datetime import datetime @@ -190,6 +190,7 @@ class Card(): def readCard(self): self.card_id = readTag(plc_ip, "Card_Past[1].ID")[0] self.num_points = int(readTag(plc_ip, "Card_Past[1].Num_Points")[0]) + print("reading {} from card ID {}".format(self.num_points, self.card_id)) for i in range(0, self.num_points): self.sc.append([round(float(readTag(plc_ip, 'Card_Past[1].Surface_Position[{}]'.format(i))[0]), 3), round(float(readTag(plc_ip, 'Card_Past[1].Surface_Load[{}]'.format(i))[0]), 3)]) self.dc.append([round(float(readTag(plc_ip, 'Card_Past[1].Downhole_Position[{}]'.format(i))[0]), 3), round(float(readTag(plc_ip, 'Card_Past[1].Downhole_Load[{}]'.format(i))[0]), 3)]) @@ -257,7 +258,8 @@ class start(threading.Thread, deviceBase): def channelCheck(self, c, force): if c.read(force): - self.sendtodbJSON(c.mesh_name, c.value, 0) + self.sendtodbJSON(c.mesh_name, c.value, time.time()) + c.last_send_time = time.time() def run(self): self.runLoopStatus = "" @@ -301,6 +303,16 @@ class start(threading.Thread, deviceBase): cstr = c.stringify() self.sendtodbJSON("sc", cstr[0], c.read_time) self.sendtodbJSON("dc", cstr[1], c.read_time) + else: + current_time = time.time() + current_card = Card(current_time) + self.sendtodbJSON("card_history", current_card.card_id, current_time) + if (current_card.read_time - self.last_card_sent_time) > self.cardLoopTimer or self.forceSend: + cards = current_card.stringify() + self.sendtodbJSON("sc", cards[0], current_time) + self.sendtodbJSON("dc", cards[1], current_time) + current_card.sent = True + self.card_storage.appendleft(current_card) runLoopStatus = "Complete" time.sleep(3) self.forceSend = False