Пример #1
0
    def readMeasurements(self):
        if self.dataReady():
            
            hr = self.client.read_holding_registers(self.REG_READING,6, unit=self.SLAVE)

            if len(hr.registers) == 6:

                word = hr.registers[0]
                self.data[0] = word >> 8
                self.data[1] = word & 0x00FF
                word = hr.registers[1]
                self.data[2] = word >> 8
                self.data[3] = word & 0x00FF
                self.readings[0] = Converter.bytesToFloat(True, self.data) 

                word = hr.registers[2]
                self.data[0] = word >> 8
                self.data[1] = word & 0x00FF
                word = hr.registers[3]
                self.data[2] = word >> 8
                self.data[3] = word & 0x00FF
                self.readings[1] = Converter.bytesToFloat(True, self.data) 
                
                word = hr.registers[4]
                self.data[0] = word >> 8
                self.data[1] = word & 0x00FF
                word = hr.registers[5]
                self.data[2] = word >> 8
                self.data[3] = word & 0x00FF
                self.readings[2] = Converter.bytesToFloat(True, self.data)                
                
                # print("CO2 : {0:.2f}".format(readings[0]))
                # print("Temperature : {0:.2f}".format(readings[1]))
                # print("R.H. : {0:.2f}".format(readings[2]))
                # print("")

        return self.readings
Пример #2
0
# Convert to little endian byte array - call as static method
data = Converter.floatToBytes(False, f)

print("L.E. bytes : {0:X}{1:X}{2:X}{3:X}".format(data[0], data[1], data[2],
                                                 data[3]))

# 12.34 in big endian format
datain = [0x41, 0x45, 0x70, 0xA4]

print()
print("Hex to Float")
print("------------")
print("B.E. bytes : {0:X}{1:X}{2:X}{3:X}".format(datain[0], datain[1],
                                                 datain[2], datain[3]))

# convert to big endian data to float - call as instance method
f = conv.bytesToFloat(True, datain)

print("B.E. float : {0}".format(f))

# 12.34 in little endian format
datain = [0xA4, 0x70, 0x45, 0x41]

print("L.E. bytes : {0:X}{1:X}{2:X}{3:X}".format(datain[0], datain[1],
                                                 datain[2], datain[3]))

# convert to big endian data to float - call as static method
f = Converter.bytesToFloat(False, datain)

print("L.E. float : {0}".format(f))