From 9b7fa31a2d1e61612b8053db8c910a02c086a015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Jena?= Date: Wed, 9 Jun 2021 15:40:44 +0200 Subject: [PATCH 1/3] Check writeable for SDO upload --- canopen/sdo/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/canopen/sdo/server.py b/canopen/sdo/server.py index 894f48ef..f6d02dad 100644 --- a/canopen/sdo/server.py +++ b/canopen/sdo/server.py @@ -210,4 +210,4 @@ def download(self, index, subindex, data, force_segment=False): :raises canopen.SdoAbortedError: When node responds with an error. """ - return self._node.set_data(index, subindex, data) + return self._node.set_data(index, subindex, data, check_writable=True) From 47051d5877eed773db2b019e560205979ded65f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Jena?= Date: Wed, 9 Jun 2021 21:35:23 +0200 Subject: [PATCH 2/3] implement feedback from Christian --- canopen/sdo/server.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/canopen/sdo/server.py b/canopen/sdo/server.py index f6d02dad..be4d934e 100644 --- a/canopen/sdo/server.py +++ b/canopen/sdo/server.py @@ -123,7 +123,6 @@ def block_download(self, data): self.abort(0x05040001) def init_download(self, request): - # TODO: Check if writable command, index, subindex = SDO_STRUCT.unpack_from(request) self._index = index self._subindex = subindex @@ -136,7 +135,7 @@ def init_download(self, request): size = 4 - ((command >> 2) & 0x3) else: size = 4 - self.download(index, subindex, request[4:4 + size]) + self._node.set_data(index, subindex, request[4:4 + size], check_writable=True) else: logger.info("Initiating segmented download for 0x%X:%d", index, subindex) if command & SIZE_SPECIFIED: @@ -210,4 +209,4 @@ def download(self, index, subindex, data, force_segment=False): :raises canopen.SdoAbortedError: When node responds with an error. """ - return self._node.set_data(index, subindex, data, check_writable=True) + return self._node.set_data(index, subindex, data) From d2276b20b6aa6e5c07e3ee766e9ecc3b653320b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Jena?= Date: Wed, 9 Jun 2021 22:02:01 +0200 Subject: [PATCH 3/3] insert TODO comment --- canopen/sdo/server.py | 1 + 1 file changed, 1 insertion(+) diff --git a/canopen/sdo/server.py b/canopen/sdo/server.py index be4d934e..746f43a3 100644 --- a/canopen/sdo/server.py +++ b/canopen/sdo/server.py @@ -123,6 +123,7 @@ def block_download(self, data): self.abort(0x05040001) def init_download(self, request): + # TODO: Check if writable (now would fail on end of segmented downloads) command, index, subindex = SDO_STRUCT.unpack_from(request) self._index = index self._subindex = subindex