mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 22:03:53 +01:00
Only write export flag to replace_io_file, if the value was set during runtime
This commit is contained in:
@@ -291,8 +291,8 @@ class IOBase(object):
|
||||
|
||||
__slots__ = "__bit_ioctl_off", "__bit_ioctl_on", "_bitaddress", \
|
||||
"_bitshift", "_bitlength", "_byteorder", "_defaultvalue", \
|
||||
"_iotype", "_length", "_name", "_parentdevice", \
|
||||
"_read_only_io", "_signed", "_slc_address", "bmk", "export"
|
||||
"_export", "_iotype", "_length", "_name", "_parentdevice", \
|
||||
"_read_only_io", "_signed", "_slc_address", "bmk"
|
||||
|
||||
def __init__(self, parentdevice, valuelist: list, iotype: int, byteorder: str, signed: bool):
|
||||
"""
|
||||
@@ -325,7 +325,7 @@ class IOBase(object):
|
||||
self._name = valuelist[0]
|
||||
self._signed = signed
|
||||
self.bmk = valuelist[6]
|
||||
self.export = bool(valuelist[4])
|
||||
self._export = int(valuelist[4]) & 1
|
||||
|
||||
int_startaddress = int(valuelist[3])
|
||||
if self._bitshift:
|
||||
@@ -514,6 +514,10 @@ class IOBase(object):
|
||||
"""
|
||||
return self._byteorder
|
||||
|
||||
def _get_export(self) -> bool:
|
||||
"""Return value of export flag."""
|
||||
return bool(self._export & 1)
|
||||
|
||||
def _get_iotype(self) -> int:
|
||||
"""
|
||||
Gibt io type zurueck.
|
||||
@@ -522,6 +526,12 @@ class IOBase(object):
|
||||
"""
|
||||
return self._iotype
|
||||
|
||||
def _set_export(self, value: bool) -> None:
|
||||
"""Set value of export flag and remember this change for export."""
|
||||
if type(value) != bool:
|
||||
raise ValueError("Value must be <class 'bool'>")
|
||||
self._export = 2 + int(value)
|
||||
|
||||
def get_defaultvalue(self):
|
||||
"""
|
||||
Gibt die Defaultvalue von piCtory zurueck.
|
||||
@@ -850,6 +860,7 @@ class IOBase(object):
|
||||
address = property(_get_address)
|
||||
byteorder = property(_get_byteorder)
|
||||
defaultvalue = property(get_defaultvalue)
|
||||
export = property(_get_export, _set_export)
|
||||
length = property(__len__)
|
||||
name = property(__str__)
|
||||
type = property(_get_iotype)
|
||||
@@ -1197,7 +1208,7 @@ class StructIO(IOBase):
|
||||
kwargs.get("defaultvalue", None),
|
||||
bitlength,
|
||||
parentio._slc_address.start,
|
||||
kwargs.get('export', parentio.export),
|
||||
False,
|
||||
str(parentio._slc_address.start).rjust(4, "0"),
|
||||
kwargs.get("bmk", ""),
|
||||
bitaddress
|
||||
@@ -1217,6 +1228,13 @@ class StructIO(IOBase):
|
||||
frm == frm.lower()
|
||||
)
|
||||
self.__frm = bofrm + frm
|
||||
if "export" in kwargs:
|
||||
# Use export property to remember given value for export
|
||||
self.export = kwargs["export"]
|
||||
else:
|
||||
# User could change parent IO settings before replace to force
|
||||
# export, so use parent settings for the new IO
|
||||
self._export = parentio._export
|
||||
|
||||
# Platz für neuen IO prüfen
|
||||
if not (self._slc_address.start >=
|
||||
|
||||
@@ -855,8 +855,8 @@ class RevPiModIO(object):
|
||||
cp[io.name]["defaultvalue"] = str(io.defaultvalue)
|
||||
if io.bmk != "":
|
||||
cp[io.name]["bmk"] = io.bmk
|
||||
if io.export is not None:
|
||||
cp[io.name]["export"] = io.export
|
||||
if io._export & 2:
|
||||
cp[io.name]["export"] = str(io._export & 1)
|
||||
|
||||
try:
|
||||
with open(filename, "w") as fh:
|
||||
|
||||
Reference in New Issue
Block a user