From 94cc49a582a8d75a1c535acd2d2c5e2364263c3b Mon Sep 17 00:00:00 2001 From: Honghyun Date: Mon, 5 Aug 2024 09:39:22 +0900 Subject: [PATCH 1/4] update comment --- c++/include/dynamixel_sdk/packet_handler.h | 6 ++++-- c++/include/dynamixel_sdk/protocol2_packet_handler.h | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/c++/include/dynamixel_sdk/packet_handler.h b/c++/include/dynamixel_sdk/packet_handler.h index fdb4a9d6..85252b48 100644 --- a/c++/include/dynamixel_sdk/packet_handler.h +++ b/c++/include/dynamixel_sdk/packet_handler.h @@ -224,10 +224,11 @@ class WINDECLSPEC PacketHandler /// @description transmits the packet with PacketHandler::txRxPacket(), /// @description then Dynamixel reboots. /// @description During reboot, its LED will blink. + /// @description It will take some time to reboot. It will take longer for Y series. /// @param port PortHandler instance /// @param id Dynamixel ID /// @param error Dynamixel hardware error - /// @return COMM_NOT_AVAILABLE + /// @return communication results which come from PacketHandler::txRxPacket() //////////////////////////////////////////////////////////////////////////////// virtual int reboot (PortHandler *port, uint8_t id, uint8_t *error = 0) = 0; @@ -236,7 +237,8 @@ class WINDECLSPEC PacketHandler /// @description The function makes an instruction packet with INST_CLEAR, /// @description transmits the packet with PacketHandler::txRxPacket(). /// @description Applied Products : MX with Protocol 2.0 (Firmware v42 or above), - /// @description Dynamixel X-series (Firmware v42 or above). + /// @description DYNAMIXEL X-series (Firmware v42 or above), DYNAMIXEL Y-series. + /// @description It will take some time to clear. It will take longer for Y series. /// @param port PortHandler instance /// @param id Dynamixel ID /// @param error Dynamixel hardware error diff --git a/c++/include/dynamixel_sdk/protocol2_packet_handler.h b/c++/include/dynamixel_sdk/protocol2_packet_handler.h index 0fffed71..1bb44989 100644 --- a/c++/include/dynamixel_sdk/protocol2_packet_handler.h +++ b/c++/include/dynamixel_sdk/protocol2_packet_handler.h @@ -179,10 +179,11 @@ class WINDECLSPEC Protocol2PacketHandler : public PacketHandler /// @description transmits the packet with Protocol2PacketHandler::txRxPacket(), /// @description then Dynamixel reboots. /// @description During reboot, its LED will blink. + /// @description It will take some time to reboot. It will take longer for Y series. /// @param port PortHandler instance /// @param id Dynamixel ID /// @param error Dynamixel hardware error - /// @return COMM_NOT_AVAILABLE + /// @return communication results which come from PacketHandler::txRxPacket() //////////////////////////////////////////////////////////////////////////////// int reboot (PortHandler *port, uint8_t id, uint8_t *error = 0); @@ -190,8 +191,8 @@ class WINDECLSPEC Protocol2PacketHandler : public PacketHandler /// @brief The function that reset multi-turn revolution information of Dynamixel /// @description The function makes an instruction packet with INST_CLEAR, /// @description transmits the packet with Protocol2PacketHandler::txRxPacket(). - /// @description Applied Products : MX with Protocol 2.0 (Firmware v42 or above), - /// @description Dynamixel X-series (Firmware v42 or above). + /// @description DYNAMIXEL X-series (Firmware v42 or above), DYNAMIXEL Y-series. + /// @description It will take some time to clear. It will take longer for Y series. /// @param port PortHandler instance /// @param id Dynamixel ID /// @param error Dynamixel hardware error From 278dcfa6b219b34f9cfb8e3966a26cada64ebff2 Mon Sep 17 00:00:00 2001 From: Honghyun Date: Mon, 5 Aug 2024 09:44:50 +0900 Subject: [PATCH 2/4] add clearError --- c++/include/dynamixel_sdk/packet_handler.h | 12 ++++++++++ .../dynamixel_sdk/protocol1_packet_handler.h | 9 ++++++++ .../dynamixel_sdk/protocol2_packet_handler.h | 12 ++++++++++ .../protocol1_packet_handler.cpp | 5 +++++ .../protocol2_packet_handler.cpp | 22 +++++++++++++++++++ 5 files changed, 60 insertions(+) diff --git a/c++/include/dynamixel_sdk/packet_handler.h b/c++/include/dynamixel_sdk/packet_handler.h index 85252b48..f3b7e4fb 100644 --- a/c++/include/dynamixel_sdk/packet_handler.h +++ b/c++/include/dynamixel_sdk/packet_handler.h @@ -246,6 +246,18 @@ class WINDECLSPEC PacketHandler //////////////////////////////////////////////////////////////////////////////// virtual int clearMultiTurn (PortHandler *port, uint8_t id, uint8_t *error = 0) = 0; + //////////////////////////////////////////////////////////////////////////////// + /// @brief The function that clear errors that occurred in DYNAMIXEL + /// @description The function makes an instruction packet with INST_CLEAR, + /// @description transmits the packet with PacketHandler::txRxPacket(). + /// @description Applied Products : DYNAMIXEL Y-series. + /// @param port PortHandler instance + /// @param id DYNAMIXEL ID + /// @param error DYNAMIXEL hardware error + /// @return communication results which come from PacketHandler::txRxPacket() + //////////////////////////////////////////////////////////////////////////////// + virtual int clearError (PortHandler *port, uint8_t id, uint8_t *error = 0) = 0; + //////////////////////////////////////////////////////////////////////////////// /// @brief The function that makes Dynamixel reset as it was produced in the factory /// @description The function makes an instruction packet with INST_FACTORY_RESET, diff --git a/c++/include/dynamixel_sdk/protocol1_packet_handler.h b/c++/include/dynamixel_sdk/protocol1_packet_handler.h index 0502b63f..5fb6e997 100644 --- a/c++/include/dynamixel_sdk/protocol1_packet_handler.h +++ b/c++/include/dynamixel_sdk/protocol1_packet_handler.h @@ -187,6 +187,15 @@ class WINDECLSPEC Protocol1PacketHandler : public PacketHandler //////////////////////////////////////////////////////////////////////////////// int clearMultiTurn (PortHandler *port, uint8_t id, uint8_t *error = 0); + //////////////////////////////////////////////////////////////////////////////// + /// @brief (Available only in Protocol 2.0) The function that clear errors that occurred in DYNAMIXEL + /// @param port PortHandler instance + /// @param id DYNAMIXEL ID + /// @param error DYNAMIXEL hardware error + /// @return COMM_NOT_AVAILABLE + //////////////////////////////////////////////////////////////////////////////// + int clearError (PortHandler *port, uint8_t id, uint8_t *error = 0); + //////////////////////////////////////////////////////////////////////////////// /// @brief The function that makes Dynamixel reset as it was produced in the factory /// @description The function makes an instruction packet with INST_FACTORY_RESET, diff --git a/c++/include/dynamixel_sdk/protocol2_packet_handler.h b/c++/include/dynamixel_sdk/protocol2_packet_handler.h index 1bb44989..4827cd9c 100644 --- a/c++/include/dynamixel_sdk/protocol2_packet_handler.h +++ b/c++/include/dynamixel_sdk/protocol2_packet_handler.h @@ -200,6 +200,18 @@ class WINDECLSPEC Protocol2PacketHandler : public PacketHandler //////////////////////////////////////////////////////////////////////////////// int clearMultiTurn (PortHandler *port, uint8_t id, uint8_t *error = 0); + //////////////////////////////////////////////////////////////////////////////// + /// @brief The function that clear errors that occurred in DYNAMIXEL + /// @description The function makes an instruction packet with INST_CLEAR, + /// @description transmits the packet with PacketHandler::txRxPacket(). + /// @description Applied Products : DYNAMIXEL Y-series. + /// @param port PortHandler instance + /// @param id DYNAMIXEL ID + /// @param error DYNAMIXEL hardware error + /// @return communication results which come from PacketHandler::txRxPacket() + //////////////////////////////////////////////////////////////////////////////// + int clearError (PortHandler *port, uint8_t id, uint8_t *error = 0) = 0; + //////////////////////////////////////////////////////////////////////////////// /// @brief The function that makes Dynamixel reset as it was produced in the factory /// @description The function makes an instruction packet with INST_FACTORY_RESET, diff --git a/c++/src/dynamixel_sdk/protocol1_packet_handler.cpp b/c++/src/dynamixel_sdk/protocol1_packet_handler.cpp index 51d765d3..84907584 100644 --- a/c++/src/dynamixel_sdk/protocol1_packet_handler.cpp +++ b/c++/src/dynamixel_sdk/protocol1_packet_handler.cpp @@ -370,6 +370,11 @@ int Protocol1PacketHandler::clearMultiTurn(PortHandler *port, uint8_t id, uint8_ return COMM_NOT_AVAILABLE; } +int Protocol1PacketHandler::clearError(PortHandler *port, uint8_t id, uint8_t *error) +{ + return COMM_NOT_AVAILABLE; +} + int Protocol1PacketHandler::factoryReset(PortHandler *port, uint8_t id, uint8_t option, uint8_t *error) { uint8_t txpacket[6] = {0}; diff --git a/c++/src/dynamixel_sdk/protocol2_packet_handler.cpp b/c++/src/dynamixel_sdk/protocol2_packet_handler.cpp index cc4e6f63..ef48bd18 100644 --- a/c++/src/dynamixel_sdk/protocol2_packet_handler.cpp +++ b/c++/src/dynamixel_sdk/protocol2_packet_handler.cpp @@ -446,6 +446,10 @@ int Protocol2PacketHandler::txRxPacket(PortHandler *port, uint8_t *txpacket, uin { port->setPacketTimeout((uint16_t)(DXL_MAKEWORD(txpacket[PKT_PARAMETER0+2], txpacket[PKT_PARAMETER0+3]) + 11)); } + else if (txpacket[PKT_INSTRUCTION] == INST_CLEAR) + { + port->setPacketTimeout((double)10000); + } else { port->setPacketTimeout((uint16_t)11); @@ -633,6 +637,24 @@ int Protocol2PacketHandler::clearMultiTurn(PortHandler *port, uint8_t id, uint8_ return txRxPacket(port, txpacket, rxpacket, error); } +int Protocol2PacketHandler::clearError(PortHandler *port, uint8_t id, uint8_t *error) +{ + uint8_t txpacket[15] = {0}; + uint8_t rxpacket[11] = {0}; + + txpacket[PKT_ID] = id; + txpacket[PKT_LENGTH_L] = 8; + txpacket[PKT_LENGTH_H] = 0; + txpacket[PKT_INSTRUCTION] = INST_CLEAR; + txpacket[PKT_PARAMETER0] = 0x02; + txpacket[PKT_PARAMETER0+1] = 0x45; + txpacket[PKT_PARAMETER0+2] = 0x52; + txpacket[PKT_PARAMETER0+3] = 0x43; + txpacket[PKT_PARAMETER0+4] = 0x4C; + + return txRxPacket(port, txpacket, rxpacket, error); +} + int Protocol2PacketHandler::factoryReset(PortHandler *port, uint8_t id, uint8_t option, uint8_t *error) { uint8_t txpacket[11] = {0}; From 2de2beb3f0448bd77219638198f50fd0deee38f5 Mon Sep 17 00:00:00 2001 From: Honghyun Date: Tue, 27 Aug 2024 17:36:00 +0900 Subject: [PATCH 3/4] fix error --- c++/include/dynamixel_sdk/protocol2_packet_handler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c++/include/dynamixel_sdk/protocol2_packet_handler.h b/c++/include/dynamixel_sdk/protocol2_packet_handler.h index 4827cd9c..b1e747df 100644 --- a/c++/include/dynamixel_sdk/protocol2_packet_handler.h +++ b/c++/include/dynamixel_sdk/protocol2_packet_handler.h @@ -210,7 +210,7 @@ class WINDECLSPEC Protocol2PacketHandler : public PacketHandler /// @param error DYNAMIXEL hardware error /// @return communication results which come from PacketHandler::txRxPacket() //////////////////////////////////////////////////////////////////////////////// - int clearError (PortHandler *port, uint8_t id, uint8_t *error = 0) = 0; + int clearError (PortHandler *port, uint8_t id, uint8_t *error = 0); //////////////////////////////////////////////////////////////////////////////// /// @brief The function that makes Dynamixel reset as it was produced in the factory From 272e7e701976ac76521c107dfde7a65d1b3aef58 Mon Sep 17 00:00:00 2001 From: Honghyun Date: Tue, 27 Aug 2024 17:36:52 +0900 Subject: [PATCH 4/4] update build for windows --- c++/build/win32/output/dxl_x86_cpp.dll | Bin 67072 -> 67584 bytes c++/build/win32/output/dxl_x86_cpp.lib | Bin 86558 -> 87546 bytes c++/build/win64/output/dxl_x64_cpp.dll | Bin 86528 -> 86528 bytes c++/build/win64/output/dxl_x64_cpp.lib | Bin 88684 -> 89704 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/c++/build/win32/output/dxl_x86_cpp.dll b/c++/build/win32/output/dxl_x86_cpp.dll index 0dd9ab84ea6e924735a08f8eff53c3b76483c6bc..800e57240d52e840c3ee4b78319053acb1395f33 100644 GIT binary patch delta 9460 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 delta 9362 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 VAkI%me9hOL$J_4L>Z4pS{NH*nj9vf$ delta 10569 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 LCwcKzCg6Vo6GpEt diff --git a/c++/build/win64/output/dxl_x64_cpp.dll b/c++/build/win64/output/dxl_x64_cpp.dll index b3b4301bd38bcd17297b06e5e7ab2076511d81ba..baf52443657d95c8a8613d14a9fb5a498b7d5f0d 100644 GIT binary patch delta 17430 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 Sp;?e=OU9P0RWqOB`Tq;WcL0(gmkG$eepxFY~<9 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 Bb}aw^