import string import modbus_tk.defines as cst from modbus_tk import modbus_rtu, modbus_tcp, modbus from print_color import * import enum as Enum #所有协议基类 class class_protocol() : def __init__(self, protocol_name) : self.protocol_name = protocol_name self.mode : string = None self.timeout = 5.0 return def set_timeout(self, timeout = 5.0) : self.timeout = timeout def open(self, mode : string) : self.mode = mode print_error_msg("class_protocol派生类未实现open函数") raise NotImplementedError() def close(self) : print_error_msg("class_protocol派生类未实现close函数") raise NotImplementedError() #返回 math.nan 表示读取失败, 否则读取成功 def read_float(self, device_addr : int, comm_str : string, scale : float = 1.0, offset : float = 0.0) -> float: raise NotImplementedError() #返回 False 表示读取失败 #返回 True 表示读取成功 def write_float(self, device_addr : int, comm_str : string, fvalue : float, scale : float = 1.0, offset : float = 0.0) -> bool: raise NotImplementedError() #读取comm_str地址开始的连续地址count个数, 地址连续 #返回 math.nan 表示读取失败, 否则读取成功 def read_float_arr(self, device_addr : int, comm_str : string, count : int) : raise NotImplementedError() #写入comm_str地址开始的连续地址 写入总个数由 len(fvalue_arr)决定 #返回 False 表示读取失败, 否则读取成功 def write_float_arr(self, device_addr : int, comm_str : string, fvalue_arr : list) -> bool: raise NotImplementedError()