Esempio n. 1
0
    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')
Esempio n. 2
0
    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]
Esempio n. 3
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')
Esempio n. 4
0
    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