error count and error signal

This commit is contained in:
2019-07-10 12:08:31 +02:00
parent 87e2e65ce2
commit a1acf04dbe
2 changed files with 16 additions and 2 deletions

View File

@ -3,6 +3,10 @@ import datetime
import RS485Ext
import RegisterDatapoint
from pymodbus.client.sync import ModbusSerialClient
import wiringpi2
ERROR_PIN = 29
class CommunicationProcessor(threading.Thread):
def __init__(self, config, queue, pubQueue):
@ -10,6 +14,8 @@ class CommunicationProcessor(threading.Thread):
self.config = config
self.queue = queue
self.pubQueue = pubQueue
wiringpi2.wiringPiSetup()
wiringpi2.pinMode(ERROR_PIN, wiringpi2.OUTPUT)
self.daemon = True
def __getSerial(self):
@ -25,10 +31,12 @@ class CommunicationProcessor(threading.Thread):
while True:
r = self.queue.get()
try:
wiringpi2.digitalWrite(ERROR_PIN, wiringpi2.LOW)
print("Dequeued: {0!s}".format(r))
r.enqueued = False
r.process(client, self.pubQueue)
except RegisterDatapoint.DatapointException as e:
wiringpi2.digitalWrite(ERROR_PIN, wiringpi2.HIGH)
print("ERROR when processing '{0}': {1!s}".format(r.label, e))
if client.socket is None:
print("renew socket")