Skip to content

Commit 392a126

Browse files
committed
proc bytes byte, isolate byte
isolate bytes to avoid byte order problem
1 parent 4fcd48b commit 392a126

File tree

2 files changed

+8
-502
lines changed

2 files changed

+8
-502
lines changed

classes/protocol_settings.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -953,15 +953,18 @@ def process_register_bytes(self, registry : dict[int,bytes], entry : registry_ma
953953
# If positive, simply extract the value using the bit mask
954954
value = (register >> bit_index) & bit_mask
955955

956-
elif entry.data_type.value > 200 or entry.data_type == Data_Type.BYTE: #bit types
956+
elif entry.data_type == Data_Type.BYTE: #bit types
957+
value = int.from_bytes(register[:1], byteorder=self.byteorder, signed=False)
958+
elif entry.data_type.value > 200: #bit types
957959
bit_size = Data_Type.getSize(entry.data_type)
958960
bit_mask = (1 << bit_size) - 1 # Create a mask for extracting X bits
959961
bit_index = entry.register_bit
960962

963+
961964
if isinstance(register, bytes):
962-
value = (int.from_bytes(register, byteorder=self.byteorder, signed=False) >> bit_index) & bit_mask
963-
else:
964-
value = (register >> bit_index) & bit_mask
965+
register = int.from_bytes(register, byteorder=self.byteorder)
966+
967+
value = (register >> bit_index) & bit_mask
965968

966969

967970
elif entry.data_type == Data_Type.HEX:

0 commit comments

Comments
 (0)