From 3024cadb5d0ac67a310d4934857158edb92f55e0 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 8 Jul 2019 16:07:26 +0200 Subject: [PATCH] discrete input --- src/CmdServer.py | 36 +++++++++++++++++++++++++++++++ src/RegisterDatapoint.py | 44 ++++++++++++++++++++++++++++++++++++-- src/initialRegisterFile.py | 1 + 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/src/CmdServer.py b/src/CmdServer.py index 5b3b647..1177e06 100644 --- a/src/CmdServer.py +++ b/src/CmdServer.py @@ -149,6 +149,42 @@ class CmdInterpreter(cmd.Cmd): self.__println(" Scanrate in seconds (float)") self.__println(" Topic to publish read data") + def do_add_di(self, arg): + try: + (label, unit, address, count, scanrate, 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("ReadTopic: {0}".format(readTopic)) + + if readTopic == 'None': + readTopic = None + 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.DiscreteInputDatapoint(label, unit, address, count, datetime.timedelta(seconds=scanrate), readTopic) + self.registers.append(r) + except ValueError as e: + self.__println("ERROR: {0!s}, {1!s}".format(e.__class__.__name__, e)) + + def help_add_di(self): + self.__println("Usage: add