From e1750e53875a44eca010caed93646b4e046e1e9c Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 8 Jul 2019 16:25:13 +0200 Subject: [PATCH] updateonly handling --- src/CmdServer.py | 28 ++++++++++++++++++++++------ src/RegisterDatapoint.py | 19 +++++++++++++------ src/initialRegisterFile.py | 6 +++--- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/CmdServer.py b/src/CmdServer.py index 1177e06..9f4b2b1 100644 --- a/src/CmdServer.py +++ b/src/CmdServer.py @@ -115,30 +115,37 @@ class CmdInterpreter(cmd.Cmd): def do_add_ir(self, arg): try: - (label, unit, address, count, scanrate, readTopic) = self.splitterRe.split(arg) + (label, unit, address, count, scanrate, updateOnly, readTopic) = self.splitterRe.split(arg) self.__println("Label: {0}".format(label)) self.__println("Unit: {0}".format(unit)) self.__println("Address: {0}".format(address)) self.__println("Count: {0}".format(count)) self.__println("ScanRate: {0}".format(scanrate)) + self.__println("UpdateOnly: {0}".format(updateOnly)) self.__println("ReadTopic: {0}".format(readTopic)) if readTopic == 'None': readTopic = None + if updateOnly in ['true', 'True', 'yes', 'Yes']: + updateOnly = True + elif updateOnly in ['false', 'False', 'no', 'No']: + updateOnly = False + else: + raise CmdInterpreterException('updateOnly must be true or false, yes or no') unit = parseIntArbitraryBase(unit) address = parseIntArbitraryBase(address) count = parseIntArbitraryBase(count) scanrate = float(scanrate) if scanrate == 0.0: raise CmdInterpreterException('scanRate must not be zero') - r = RegisterDatapoint.InputRegisterDatapoint(label, unit, address, count, datetime.timedelta(seconds=scanrate), readTopic) + r = RegisterDatapoint.InputRegisterDatapoint(label, unit, address, count, datetime.timedelta(seconds=scanrate), updateOnly, readTopic) self.registers.append(r) except ValueError as e: self.__println("ERROR: {0!s}, {1!s}".format(e.__class__.__name__, e)) def help_add_ir(self): self.__println("Usage: add