From 8ced47646e83a4c43fa23e8e89907a0dbe6f9780 Mon Sep 17 00:00:00 2001 From: Sander Huijsen Date: Tue, 24 Sep 2019 15:46:38 +0800 Subject: [PATCH 1/3] Show bit fields of Variables that are added to a Map. --- canopen/pdo/base.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/canopen/pdo/base.py b/canopen/pdo/base.py index 25da57dd..6044b07d 100644 --- a/canopen/pdo/base.py +++ b/canopen/pdo/base.py @@ -415,8 +415,13 @@ def add_variable(self, index, subindex=0, length=None): if length is not None: # Custom bit length var.length = length - logger.info("Adding %s (0x%X:%d, %d bits) to PDO map", - var.name, var.index, var.subindex, var.length) + # We want to see the bit fields within the PDO + offset = var.offset + byte_offset, bit_offset = divmod(offset, 8) + sb = byte_offset * 8 + bit_offset + eb = sb + var.length - 1 + logger.info("Adding %s (0x%X:%d, %d bits, %d:%d) to PDO map", + var.name, var.index, var.subindex, var.length, sb, eb) self.map.append(var) self.length += var.length except KeyError as exc: From 32f974b9de46ed17251150cd04e5d2ea34892d83 Mon Sep 17 00:00:00 2001 From: Sander Huijsen Date: Tue, 24 Sep 2019 19:41:31 +0800 Subject: [PATCH 2/3] Removed redundant calculations. Removed length in favour of start_bit:end_bit within the PDO. --- canopen/pdo/base.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/canopen/pdo/base.py b/canopen/pdo/base.py index 6044b07d..d3941cb9 100644 --- a/canopen/pdo/base.py +++ b/canopen/pdo/base.py @@ -416,12 +416,9 @@ def add_variable(self, index, subindex=0, length=None): # Custom bit length var.length = length # We want to see the bit fields within the PDO - offset = var.offset - byte_offset, bit_offset = divmod(offset, 8) - sb = byte_offset * 8 + bit_offset - eb = sb + var.length - 1 - logger.info("Adding %s (0x%X:%d, %d bits, %d:%d) to PDO map", - var.name, var.index, var.subindex, var.length, sb, eb) + start_bit = var.offset + end_bit = start_bit + var.length - 1 + logger.info("Adding %s (0x%X:%d, %d:%d) to PDO map", var.name, var.index, var.subindex, start_bit, end_bit) self.map.append(var) self.length += var.length except KeyError as exc: From e33077f3d703797fd8955e98b259e5a86a7bb791 Mon Sep 17 00:00:00 2001 From: Sander Huijsen Date: Tue, 24 Sep 2019 20:09:28 +0800 Subject: [PATCH 3/3] Slightly changed the log message for better readability. --- canopen/pdo/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/canopen/pdo/base.py b/canopen/pdo/base.py index d3941cb9..74363ed9 100644 --- a/canopen/pdo/base.py +++ b/canopen/pdo/base.py @@ -418,7 +418,8 @@ def add_variable(self, index, subindex=0, length=None): # We want to see the bit fields within the PDO start_bit = var.offset end_bit = start_bit + var.length - 1 - logger.info("Adding %s (0x%X:%d, %d:%d) to PDO map", var.name, var.index, var.subindex, start_bit, end_bit) + logger.info("Adding %s (0x%X:%d) at bits %d - %d to PDO map", + var.name, var.index, var.subindex, start_bit, end_bit) self.map.append(var) self.length += var.length except KeyError as exc: