From 27da0c8e801d91c8fa8a401c4f8059bac46ed65e Mon Sep 17 00:00:00 2001 From: NaruX Date: Sun, 18 Aug 2019 09:46:10 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCr=20Export=20default-Werte=20festgelegt,?= =?UTF-8?q?=20die=20nicht=20exportiert=20werden=20m=C3=BCssen=20Fehlerbehe?= =?UTF-8?q?bung=20bei=20Import-Fehlermeldungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpimodio2/modio.py | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/revpimodio2/modio.py b/revpimodio2/modio.py index e253807..401b4fc 100644 --- a/revpimodio2/modio.py +++ b/revpimodio2/modio.py @@ -317,8 +317,21 @@ class RevPiModIO(object): # Funktionsaufruf vorbereiten dict_replace = { "frm": creplaceio[io].get("frm"), + "byteorder": creplaceio[io].get("byteorder", "little"), + "bmk": creplaceio[io].get("bmk", ""), } + # Get bitaddress from config file + if "bit" in creplaceio[io]: + try: + dict_replace["bit"] = creplaceio[io].getint("bit") + except Exception: + raise ValueError( + "replace_io_file: could not convert '{0}' " + "bit '{1}' to integer" + "".format(io, creplaceio[io]["bit"]) + ) + # Convert defaultvalue from config file if "defaultvalue" in creplaceio[io]: if dict_replace["frm"] == "?": @@ -329,7 +342,7 @@ class RevPiModIO(object): raise ValueError( "replace_io_file: could not convert '{0}' " "defaultvalue '{1}' to boolean" - "".format(io, creplaceio[io].get("defaultvalue")) + "".format(io, creplaceio[io]["defaultvalue"]) ) else: try: @@ -339,26 +352,9 @@ class RevPiModIO(object): raise ValueError( "replace_io_file: could not convert '{0}' " "defaultvalue '{1}' to integer" - "".format(io, creplaceio[io].get("bit")) + "".format(io, creplaceio[io]["defaultvalue"]) ) - # Get bitaddress from config file - if "bit" in creplaceio[io]: - try: - dict_replace["bit"] = creplaceio[io].getint("bit", 0) - except Exception: - raise ValueError( - "replace_io_file: could not convert '{0}' " - "bit '{1}' to integer" - "".format(io, creplaceio[io].get("bit")) - ) - - # Sonstige Werte laden, wenn vorhanden - if "bmk" in creplaceio[io]: - dict_replace["bmk"] = creplaceio[io].get("bmk") - if "byteorder" in creplaceio[io]: - dict_replace["byteorder"] = creplaceio[io].get("byteorder") - # IO ersetzen try: self.io[parentio].replace_io(name=io, **dict_replace) @@ -710,8 +706,10 @@ class RevPiModIO(object): # Optional values if io._bitaddress >= 0: cp[io.name]["bit"] = str(io._bitaddress) - cp[io.name]["byteorder"] = io._byteorder - cp[io.name]["defaultvalue"] = str(io.defaultvalue) + if io._byteorder != "little": + cp[io.name]["byteorder"] = io._byteorder + if io.defaultvalue != 0: + cp[io.name]["defaultvalue"] = str(io.defaultvalue) if io.bmk != "": cp[io.name]["bmk"] = io.bmk