def readstring(self, readlist, size=1): """ Read String from Device. readlist = [function code, address, data type] """ if self.isopened is False: return None try: ret = pymodbus.read_registers(readlist[0:3], size) except BaseException as err: if self.platform == 'linux': led.ioctl(led.IXORA_LED4, led.GREEN, led.LOW) led.ioctl(led.IXORA_LED4, led.RED, led.HIGH) print(err) return None else: if self.platform == 'linux': led.ioctl(led.IXORA_LED4, led.RED, led.LOW) led.ioctl(led.IXORA_LED4, led.GREEN, led.HIGH) else: pass # And each hexadecimal number into ASCII code return ''.join((lambda v: [chr(i) for i in v])(ret)).strip('\x00')
def send(self, led, readlist, length=1): """Send Data to Device.""" msg = 'Code = ' + str(readlist[0]) + ' Addr = %4d' % (readlist[1]) + ' => ' try: ret = pymodbus.read_registers(readlist[0:3], length) msg += str(ret) led.normal() except BaseException as err: led.error() print(err) return -1 return ret[0]
def send(self, readlist, length=1): """Send Data to Device.""" try: ret = pymodbus.read_registers(readlist[0:3], length) except BaseException as err: led.ioctl(led.IXORA_LED4, led.GREEN, led.LOW) led.ioctl(led.IXORA_LED4, led.RED, led.HIGH) print(err) return None else: led.ioctl(led.IXORA_LED4, led.RED, led.LOW) led.ioctl(led.IXORA_LED4, led.GREEN, led.HIGH) finally: pass # When the length is greater than 1, it is a string. # And each hexadecimal number into ASCII code return ret[0] if length == 1 else ''.join( (lambda val: [chr(i) for i in val])(ret)).strip('\x00')
def readregs(self, readlist, size=1): """ Read Data from Device. readlist = [function code, address, data type] """ if self.isopened is False: return None try: retlist = pymodbus.read_registers(readlist[0:3], size) except BaseException as err: if self.platform == 'linux': led.ioctl(led.IXORA_LED4, led.GREEN, led.LOW) led.ioctl(led.IXORA_LED4, led.RED, led.HIGH) print(err) return None else: if self.platform == 'linux': led.ioctl(led.IXORA_LED4, led.RED, led.LOW) led.ioctl(led.IXORA_LED4, led.GREEN, led.HIGH) else: pass return retlist