diff --git a/src/CmdServer.py b/src/CmdServer.py index 89c49b2..34d3ce2 100644 --- a/src/CmdServer.py +++ b/src/CmdServer.py @@ -210,10 +210,20 @@ class CmdInterpreter(cmd.Cmd): self.__println("-----------") self.__println("List the configured datapoints") + def do_reset(self, arg): + for r in self.registers: + r.errorCount = 0 + r.processCount = 0 + + def help_reset(self): + self.__println("Usage: reset") + self.__println("-----------") + self.__println("Resets the statistics of configured datapoints") + def do_stats(self, arg): for i, r in enumerate(self.registers): if r.processCount == 0: - ratio = None + ratio = -1 else: ratio = float(r.errorCount) / float(r.processCount) self.__println("#{0:2d}: {1:15s} ({2:2d}, {3:5d}), pc: {4:7d}, ec: {5:7d}, q: {6:1.4f}" diff --git a/src/CommunicationProcessor.py b/src/CommunicationProcessor.py index ba70c2f..f2a03dc 100644 --- a/src/CommunicationProcessor.py +++ b/src/CommunicationProcessor.py @@ -5,6 +5,7 @@ import RegisterDatapoint from pymodbus.client.sync import ModbusSerialClient import wiringpi import MyRS485 +import time ERROR_PIN = 29 @@ -44,6 +45,9 @@ class CommunicationProcessor(threading.Thread): if client.socket is None: print("renew socket") client.socket = self.__getSerial() + finally: + time.sleep(self.config.interCommDelay) + diff --git a/src/Config.py b/src/Config.py index 89cd369..2a9abf6 100644 --- a/src/Config.py +++ b/src/Config.py @@ -10,4 +10,4 @@ class Config(object): self.registerFile = 'registers.pkl' self.serialPort = '/dev/ttyAMA0' self.serialBaudRate = 9600 - + self.interCommDelay = 0.025 diff --git a/src/registers.pkl b/src/registers.pkl index 5fb85c4..ff7ea93 100644 Binary files a/src/registers.pkl and b/src/registers.pkl differ