logging and updata registers file

This commit is contained in:
2019-07-13 21:08:07 +01:00
parent c6552317db
commit 34766a0d32
4 changed files with 22 additions and 11 deletions

View File

@ -4,7 +4,6 @@ from pymodbus.exceptions import ModbusIOException
import MqttProcessor
import logging
logger = logging.getLogger()
class DatapointException(Exception): pass
@ -44,6 +43,7 @@ class HoldingRegisterDatapoint(AbstractModbusDatapoint):
self.feedbackTopic = feedbackTopic
self.writeRequestValue = None
self.type = 'holding register'
self.logger = logging.getLogger('HoldingRegisterDatapoint')
def __str__(self):
return ("[{0!s}, publishTopic: {1}, subscribeTopic: {2}, feedbackTopic: {3}, "
@ -54,11 +54,11 @@ class HoldingRegisterDatapoint(AbstractModbusDatapoint):
def process(self, client, pubQueue):
if self.writeRequestValue:
# perform write operation
print("Holding register, perform write operation")
self.logger.debug("Holding register, perform write operation")
self.writeRequestValue = None
else:
# perform read operation
print("Holding register, perform read operation")
self.logger.debug("Holding register, perform read operation")
self.processCount += 1
result = client.read_holding_registers(address=self.address,
count=self.count,
@ -66,7 +66,7 @@ class HoldingRegisterDatapoint(AbstractModbusDatapoint):
if type(result) in [ExceptionResponse, ModbusIOException]:
self.errorCount += 1
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)))
self.lastContact = datetime.datetime.now()
@ -92,10 +92,11 @@ class InputRegisterDatapoint(ReadOnlyDatapoint):
def __init__(self, label, unit, address, count, scanRate, updateOnly, publishTopic):
super().__init__(label, unit, address, count, scanRate, updateOnly, publishTopic)
self.type = 'input register'
self.logger = logging.getLogger('InputRegisterDatapoint')
def process(self, client, pubQueue):
# perform read operation
print("Input register, perform read operation")
self.logger.debug("Input register, perform read operation")
self.processCount += 1
result = client.read_input_registers(address=self.address,
count=self.count,
@ -105,7 +106,7 @@ class InputRegisterDatapoint(ReadOnlyDatapoint):
raise DatapointException(result)
if not self.updateOnly or (result.registers != self.lastValue):
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)))
self.lastContact = datetime.datetime.now()
@ -114,10 +115,11 @@ class DiscreteInputDatapoint(ReadOnlyDatapoint):
def __init__(self, label, unit, address, count, scanRate, updateOnly, publishTopic):
super().__init__(label, unit, address, count, scanRate, updateOnly, publishTopic)
self.type = 'discrete input'
self.logger = logging.getLogger('DiscreteInputDatapoint')
def process(self, client, pubQueue):
# perform read operation
print("Discrete input, perform read operation")
self.logger.debug("Discrete input, perform read operation")
self.processCount += 1
result = client.read_discrete_inputs(address=self.address,
count=self.count,
@ -127,7 +129,7 @@ class DiscreteInputDatapoint(ReadOnlyDatapoint):
raise DatapointException(result)
if not self.updateOnly or (result.bits != self.lastValue):
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)))
self.lastContact = datetime.datetime.now()
@ -141,7 +143,7 @@ def checkRegisterList(registers, reset=False):
r.errorCount = 0
r.processCount = 0
r.enqueued = False
logger.debug("Datapoint loaded: {0!s}".format(r))
logging.getLogger('checkRegisterList').debug("Datapoint loaded: {0!s}".format(r))

View File

@ -17,7 +17,7 @@ import logging
if __name__ == "__main__":
config = Config.Config()
logger = logging.getLogger(config.appName)
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler(config.logFile)
fh.setLevel(logging.DEBUG)
@ -57,4 +57,4 @@ if __name__ == "__main__":
cs = CmdServer.CmdServer(config, nf, datapoints)
cs.start()
logger.debug('CmdServer started')
logger.debug('CmdServer started')

Binary file not shown.

View File

@ -0,0 +1,9 @@
import datetime
import RegisterDatapoint
import pickle
with open('registers.pkl', 'rb') as f:
datapoints = pickle.load(f)