Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions evok/modbus_slave.py
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,7 @@ def parse_feature_register(self, max_count, m_feature):
else:
_reg = Register("%s_%d" % (self.circuit, board_val_reg + counter), self, counter,
board_val_reg + counter, major_group=self.major_group, legacy_mode=self.legacy_mode)
self.__register_eventable_device(_reg)
Devices.register_device(REGISTER, _reg)
counter+=1

Expand Down Expand Up @@ -1186,6 +1187,12 @@ def __init__(self, circuit, arm, post, reg, reg_type="holding", major_group=0, l
self.legacy_mode = legacy_mode
self.valreg = reg
self.reg_type = reg_type
self._cached_value = None

async def check_new_data(self):
old_value = self._cached_value
self._cached_value = self.regvalue()
return old_value != self._cached_value

def regvalue(self):
try:
Expand All @@ -1212,6 +1219,8 @@ def simple(self):

@property
def value(self):
if self._cached_value is not None:
return self._cached_value
try:
if self.regvalue():
return self.regvalue()
Expand Down