diff --git a/canopen/lss.py b/canopen/lss.py index d77f528f..475c0bb0 100644 --- a/canopen/lss.py +++ b/canopen/lss.py @@ -62,6 +62,7 @@ CS_INQUIRE_REVISION_NUMBER, CS_INQUIRE_SERIAL_NUMBER, CS_INQUIRE_NODE_ID, + CS_IDENTIFY_REMOTE_SLAVE_SERIAL_NUMBER_HIGH, ] @@ -228,12 +229,21 @@ def send_identify_remote_slave(self, # TODO it should handle the multiple respones from slaves - self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_VENDOR_ID, vendorId) - self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_PRODUCT_CODE, productCode) - self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_REVISION_NUMBER_LOW, revisionNumberLow) - self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_REVISION_NUMBER_HIGH, revisionNumberHigh) - self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_SERIAL_NUMBER_LOW, serialNumberLow) - self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_SERIAL_NUMBER_HIGH, serialNumberHigh) + self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_VENDOR_ID, vendorId, nodelay=True) + self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_PRODUCT_CODE, productCode, nodelay=True) + self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_REVISION_NUMBER_LOW, revisionNumberLow, nodelay=True) + self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_REVISION_NUMBER_HIGH, revisionNumberHigh, nodelay=True) + self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_SERIAL_NUMBER_LOW, serialNumberLow, nodelay=True) + try: + response = self.__send_lss_address(CS_IDENTIFY_REMOTE_SLAVE_SERIAL_NUMBER_HIGH, + serialNumberHigh, + nodelay=True) + except LssError: + return False + cs = struct.unpack_from("