def write(self,value,params={}): digit = params.get('nb_digit',nb_digit) if not isinstance(digit,int) : # automatic digit case raw_value = modbus.read_holding_register(address_write,value_type_write) float_value = modbus.read_holding_register(address_read,value_type_read) digit = _nb_digit(raw_value,float_value) params['nb_digit'] = digit write_value = value * 10 ** digit return modbus.write_holding_register(address_write,value_type_write,write_value)
def write(self,value): if isinstance(value,str): for k,v in enum_type.iteritems(): if v.lower() == value.lower(): value = k break; else: raise RuntimeError("Value %s is not in enum (%s)",value, enum_type.values()) return modbus.write_holding_register(address,'b',value)
def write(self,value): return modbus.write_holding_register(address,value_type,value)