cleanup msg_get_time handler

This commit is contained in:
Stefan Allius
2024-06-09 11:41:01 +02:00
parent d6093e6b11
commit 53f6a5447d

View File

@@ -41,7 +41,7 @@ class Talent(Message):
self.id_str = id_str self.id_str = id_str
self.contact_name = b'' self.contact_name = b''
self.contact_mail = b'' self.contact_mail = b''
self.ts_offset = 0 self.ts_offset = 0 # time offset between tsun cloud and local
self.db = InfosG3() self.db = InfosG3()
self.switch = { self.switch = {
0x00: self.msg_contact_info, 0x00: self.msg_contact_info,
@@ -142,8 +142,8 @@ class Talent(Message):
def send_modbus_cb(self, modbus_pdu: bytearray, log_lvl: int, state: str): def send_modbus_cb(self, modbus_pdu: bytearray, log_lvl: int, state: str):
if self.state != self.STATE_UP: if self.state != self.STATE_UP:
logger.warn(f'[{self.node_id}] ignore MODBUS cmd,' logger.warning(f'[{self.node_id}] ignore MODBUS cmd,'
' cause the state is not UP anymore') ' cause the state is not UP anymore')
return return
self.__build_header(0x70, 0x77) self.__build_header(0x70, 0x77)
@@ -324,7 +324,6 @@ class Talent(Message):
return True return True
def msg_get_time(self): def msg_get_time(self):
tsun = Config.get('tsun')
if self.ctrl.is_ind(): if self.ctrl.is_ind():
if self.data_len == 0: if self.data_len == 0:
ts = self._timestamp() ts = self._timestamp()
@@ -332,22 +331,22 @@ class Talent(Message):
self.__build_header(0x91) self.__build_header(0x91)
self._send_buffer += struct.pack('!q', ts) self._send_buffer += struct.pack('!q', ts)
self.__finish_send_msg() self.__finish_send_msg()
if tsun['enabled']:
if self.data_len == 0: elif self.data_len >= 8:
self.forward(self._recv_buffer, self.header_len + ts = self._timestamp()
self.data_len) result = struct.unpack_from('!q', self._recv_buffer,
if self.data_len >= 8: self.header_len)
ts = self._timestamp() self.ts_offset = result[0]-ts
result = struct.unpack_from('!q', self._recv_buffer, logger.debug(f'tsun-time: {int(result[0]):08x}'
self.header_len) f' proxy-time: {ts:08x}'
self.ts_offset = result[0]-ts f' offset: {self.ts_offset}')
logger.debug(f'tsun-time: {result[0]:08x}' return # ignore received response
f' proxy-time: {ts:08x}',
f' offset: {self.ts_offset}')
else: else:
logger.warning('Unknown Ctrl') logger.warning('Unknown Ctrl')
self.inc_counter('Unknown_Ctrl') self.inc_counter('Unknown_Ctrl')
self.forward(self._recv_buffer, self.header_len+self.data_len)
def parse_msg_header(self): def parse_msg_header(self):
result = struct.unpack_from('!lB', self._recv_buffer, self.header_len) result = struct.unpack_from('!lB', self._recv_buffer, self.header_len)