logging and updata registers file
This commit is contained in:
@ -4,7 +4,6 @@ from pymodbus.exceptions import ModbusIOException
|
|||||||
import MqttProcessor
|
import MqttProcessor
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
logger = logging.getLogger()
|
|
||||||
|
|
||||||
class DatapointException(Exception): pass
|
class DatapointException(Exception): pass
|
||||||
|
|
||||||
@ -44,6 +43,7 @@ class HoldingRegisterDatapoint(AbstractModbusDatapoint):
|
|||||||
self.feedbackTopic = feedbackTopic
|
self.feedbackTopic = feedbackTopic
|
||||||
self.writeRequestValue = None
|
self.writeRequestValue = None
|
||||||
self.type = 'holding register'
|
self.type = 'holding register'
|
||||||
|
self.logger = logging.getLogger('HoldingRegisterDatapoint')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return ("[{0!s}, publishTopic: {1}, subscribeTopic: {2}, feedbackTopic: {3}, "
|
return ("[{0!s}, publishTopic: {1}, subscribeTopic: {2}, feedbackTopic: {3}, "
|
||||||
@ -54,11 +54,11 @@ class HoldingRegisterDatapoint(AbstractModbusDatapoint):
|
|||||||
def process(self, client, pubQueue):
|
def process(self, client, pubQueue):
|
||||||
if self.writeRequestValue:
|
if self.writeRequestValue:
|
||||||
# perform write operation
|
# perform write operation
|
||||||
print("Holding register, perform write operation")
|
self.logger.debug("Holding register, perform write operation")
|
||||||
self.writeRequestValue = None
|
self.writeRequestValue = None
|
||||||
else:
|
else:
|
||||||
# perform read operation
|
# perform read operation
|
||||||
print("Holding register, perform read operation")
|
self.logger.debug("Holding register, perform read operation")
|
||||||
self.processCount += 1
|
self.processCount += 1
|
||||||
result = client.read_holding_registers(address=self.address,
|
result = client.read_holding_registers(address=self.address,
|
||||||
count=self.count,
|
count=self.count,
|
||||||
@ -66,7 +66,7 @@ class HoldingRegisterDatapoint(AbstractModbusDatapoint):
|
|||||||
if type(result) in [ExceptionResponse, ModbusIOException]:
|
if type(result) in [ExceptionResponse, ModbusIOException]:
|
||||||
self.errorCount += 1
|
self.errorCount += 1
|
||||||
raise DatapointException(result)
|
raise DatapointException(result)
|
||||||
print("{0}: {1!s}".format(self.label, result.registers))
|
self.logger.debug("{0}: {1!s}".format(self.label, result.registers))
|
||||||
pubQueue.put(MqttProcessor.PublishItem(self.publishTopic, str(result.registers)))
|
pubQueue.put(MqttProcessor.PublishItem(self.publishTopic, str(result.registers)))
|
||||||
self.lastContact = datetime.datetime.now()
|
self.lastContact = datetime.datetime.now()
|
||||||
|
|
||||||
@ -92,10 +92,11 @@ class InputRegisterDatapoint(ReadOnlyDatapoint):
|
|||||||
def __init__(self, label, unit, address, count, scanRate, updateOnly, publishTopic):
|
def __init__(self, label, unit, address, count, scanRate, updateOnly, publishTopic):
|
||||||
super().__init__(label, unit, address, count, scanRate, updateOnly, publishTopic)
|
super().__init__(label, unit, address, count, scanRate, updateOnly, publishTopic)
|
||||||
self.type = 'input register'
|
self.type = 'input register'
|
||||||
|
self.logger = logging.getLogger('InputRegisterDatapoint')
|
||||||
|
|
||||||
def process(self, client, pubQueue):
|
def process(self, client, pubQueue):
|
||||||
# perform read operation
|
# perform read operation
|
||||||
print("Input register, perform read operation")
|
self.logger.debug("Input register, perform read operation")
|
||||||
self.processCount += 1
|
self.processCount += 1
|
||||||
result = client.read_input_registers(address=self.address,
|
result = client.read_input_registers(address=self.address,
|
||||||
count=self.count,
|
count=self.count,
|
||||||
@ -105,7 +106,7 @@ class InputRegisterDatapoint(ReadOnlyDatapoint):
|
|||||||
raise DatapointException(result)
|
raise DatapointException(result)
|
||||||
if not self.updateOnly or (result.registers != self.lastValue):
|
if not self.updateOnly or (result.registers != self.lastValue):
|
||||||
self.lastValue = result.registers
|
self.lastValue = result.registers
|
||||||
print("{0}: {1!s}".format(self.label, result.registers))
|
self.logger.debug("{0}: {1!s}".format(self.label, result.registers))
|
||||||
pubQueue.put(MqttProcessor.PublishItem(self.publishTopic, str(result.registers)))
|
pubQueue.put(MqttProcessor.PublishItem(self.publishTopic, str(result.registers)))
|
||||||
self.lastContact = datetime.datetime.now()
|
self.lastContact = datetime.datetime.now()
|
||||||
|
|
||||||
@ -114,10 +115,11 @@ class DiscreteInputDatapoint(ReadOnlyDatapoint):
|
|||||||
def __init__(self, label, unit, address, count, scanRate, updateOnly, publishTopic):
|
def __init__(self, label, unit, address, count, scanRate, updateOnly, publishTopic):
|
||||||
super().__init__(label, unit, address, count, scanRate, updateOnly, publishTopic)
|
super().__init__(label, unit, address, count, scanRate, updateOnly, publishTopic)
|
||||||
self.type = 'discrete input'
|
self.type = 'discrete input'
|
||||||
|
self.logger = logging.getLogger('DiscreteInputDatapoint')
|
||||||
|
|
||||||
def process(self, client, pubQueue):
|
def process(self, client, pubQueue):
|
||||||
# perform read operation
|
# perform read operation
|
||||||
print("Discrete input, perform read operation")
|
self.logger.debug("Discrete input, perform read operation")
|
||||||
self.processCount += 1
|
self.processCount += 1
|
||||||
result = client.read_discrete_inputs(address=self.address,
|
result = client.read_discrete_inputs(address=self.address,
|
||||||
count=self.count,
|
count=self.count,
|
||||||
@ -127,7 +129,7 @@ class DiscreteInputDatapoint(ReadOnlyDatapoint):
|
|||||||
raise DatapointException(result)
|
raise DatapointException(result)
|
||||||
if not self.updateOnly or (result.bits != self.lastValue):
|
if not self.updateOnly or (result.bits != self.lastValue):
|
||||||
self.lastValue = result.bits
|
self.lastValue = result.bits
|
||||||
print("{0}: {1!s}".format(self.label, result.bits))
|
self.logger.debug("{0}: {1!s}".format(self.label, result.bits))
|
||||||
pubQueue.put(MqttProcessor.PublishItem(self.publishTopic, str(result.bits)))
|
pubQueue.put(MqttProcessor.PublishItem(self.publishTopic, str(result.bits)))
|
||||||
self.lastContact = datetime.datetime.now()
|
self.lastContact = datetime.datetime.now()
|
||||||
|
|
||||||
@ -141,7 +143,7 @@ def checkRegisterList(registers, reset=False):
|
|||||||
r.errorCount = 0
|
r.errorCount = 0
|
||||||
r.processCount = 0
|
r.processCount = 0
|
||||||
r.enqueued = False
|
r.enqueued = False
|
||||||
logger.debug("Datapoint loaded: {0!s}".format(r))
|
logging.getLogger('checkRegisterList').debug("Datapoint loaded: {0!s}".format(r))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ import logging
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
config = Config.Config()
|
config = Config.Config()
|
||||||
|
|
||||||
logger = logging.getLogger(config.appName)
|
logger = logging.getLogger()
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
fh = logging.FileHandler(config.logFile)
|
fh = logging.FileHandler(config.logFile)
|
||||||
fh.setLevel(logging.DEBUG)
|
fh.setLevel(logging.DEBUG)
|
||||||
|
Binary file not shown.
9
src/updateRegisterFile.py
Normal file
9
src/updateRegisterFile.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import datetime
|
||||||
|
import RegisterDatapoint
|
||||||
|
import pickle
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
with open('registers.pkl', 'rb') as f:
|
||||||
|
datapoints = pickle.load(f)
|
||||||
|
|
Reference in New Issue
Block a user