tests actually working
This commit is contained in:
parent
4b65df2949
commit
9ae239bc18
2 changed files with 6 additions and 10 deletions
|
@ -41,7 +41,7 @@ class DataType(Enum):
|
||||||
elif (self == DataType.Int32) or (self == DataType.UInt32) or (self == DataType.Float32):
|
elif (self == DataType.Int32) or (self == DataType.UInt32) or (self == DataType.Float32):
|
||||||
return int(2)
|
return int(2)
|
||||||
|
|
||||||
def decode(self, value):
|
def decode_from_register(self, value):
|
||||||
decoder = BinaryPayloadDecoder.fromRegisters(value.registers, byteorder=Endian.BIG, wordorder=Endian.BIG)
|
decoder = BinaryPayloadDecoder.fromRegisters(value.registers, byteorder=Endian.BIG, wordorder=Endian.BIG)
|
||||||
|
|
||||||
if (self == DataType.String8) or (self == DataType.String16) or (self == DataType.String32):
|
if (self == DataType.String8) or (self == DataType.String16) or (self == DataType.String32):
|
||||||
|
@ -65,7 +65,7 @@ class DataType(Enum):
|
||||||
else:
|
else:
|
||||||
return str(decoder.decode_bits())
|
return str(decoder.decode_bits())
|
||||||
|
|
||||||
def encode(self, value):
|
def encode_to_buffer(self, value):
|
||||||
encoder = BinaryPayloadBuilder(byteorder=Endian.BIG, wordorder=Endian.BIG)
|
encoder = BinaryPayloadBuilder(byteorder=Endian.BIG, wordorder=Endian.BIG)
|
||||||
|
|
||||||
if (self == DataType.String8) or (self == DataType.String16) or (self == DataType.String32):
|
if (self == DataType.String8) or (self == DataType.String16) or (self == DataType.String32):
|
||||||
|
@ -129,11 +129,11 @@ class FroniusReg:
|
||||||
raise registerReadError("Unable to read from Fronius Register: %d, %s" % (self.id, self.description))
|
raise registerReadError("Unable to read from Fronius Register: %d, %s" % (self.id, self.description))
|
||||||
if(modbusValue is None):
|
if(modbusValue is None):
|
||||||
raise registerReadError("It's NONE!")
|
raise registerReadError("It's NONE!")
|
||||||
return self.datatype.decode(modbusValue)
|
return self.datatype.decode_from_register(modbusValue)
|
||||||
|
|
||||||
def __setRegisterValue(self, modbusClient, value):
|
def __setRegisterValue(self, modbusClient, value):
|
||||||
modbusValue = modbusClient.write_registers(self.address-1,
|
modbusValue = modbusClient.write_registers(self.address-1,
|
||||||
self.datatype.encode(value),
|
self.datatype.encode_to_buffer(value),
|
||||||
count=self.datatype.getRegisterLength(),
|
count=self.datatype.getRegisterLength(),
|
||||||
slave=self.unit,
|
slave=self.unit,
|
||||||
skip_encode=True)
|
skip_encode=True)
|
||||||
|
|
|
@ -3,15 +3,11 @@ import unittest
|
||||||
|
|
||||||
import pyfroniusreg.froniusreg as froniusreg
|
import pyfroniusreg.froniusreg as froniusreg
|
||||||
|
|
||||||
class RegisterValue():
|
|
||||||
def __init__(self, value):
|
|
||||||
self.registers = value
|
|
||||||
|
|
||||||
class TestDataTypes(unittest.TestCase):
|
class TestDataTypes(unittest.TestCase):
|
||||||
|
|
||||||
def test_int16(self):
|
def test_int16(self):
|
||||||
value = RegisterValue(froniusreg.int16.encode(1024)[0])
|
int16_buffer = froniusreg.int16.encode_to_buffer(1024)
|
||||||
assert froniusreg.int16.decode(value) == 1024
|
assert int16_buffer == [b'\x04\x00']
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in a new issue