Skip to content

Commit

Permalink
Merge pull request #188 from ROBOTIS-GIT/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
LeonJung authored May 16, 2018
2 parents d6420db + c55b759 commit 9896375
Show file tree
Hide file tree
Showing 79 changed files with 5,013 additions and 3,283 deletions.
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ so the work was very hard to be carried out so far.

Hence, I will update some GUIDELINES that is very necessary to get your ideas be MERGED.

1. After every release, there is a 'develop' branch. To make your idea be accepted on the next release,
1. After every release, there is a 'develop' branch. To make your idea be accepted on the next release,
YOU SHOULD GET PULL REQUEST BASED ON 'DEVELOP' BRANCH, NOT 'MASTER' BRANCH!!
All pull requests based on 'master' branch will be 'suspended' or 'won't fix', so make sure before the pull request.

2. I'm hoping that many users can list up on the [CONTRIBUTORS](https://github.com/ROBOTIS-GIT/DynamixelSDK/graphs/contributors).
Seriously, I don't want to get your idea as my name but as your name. However, if your idea is left as based on 'develop branch' or idle,
2. I'm hoping that many users can list up on the [CONTRIBUTORS](https://github.com/ROBOTIS-GIT/DynamixelSDK/graphs/contributors).
Seriously, I don't want to get your idea as my name but as your name. However, if your idea is left as based on 'develop branch' or idle,
I can't do anything but upload your idea as my name.

Thank you every time again, and let's make the source better to get many users happy while make Dynamixel applications.

2017.12.01 doc ver 1.0.0
2017.12.01 doc ver 1.0.1
2 changes: 1 addition & 1 deletion Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "DynamixelSDK c++"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 3.5.4
PROJECT_NUMBER = 3.6.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
| Dynamixel SDK Version | 1.X | 2.X | 3.X ([Download](https://github.com/ROBOTIS-GIT/DynamixelSDK/releases)) |
| ------------- | ------------- | ------------- | ------------- |
| Release date | 2010.05.16 | 2015.02.10 | 2016.03.08 |
| Latest version released |||3.5.4|
| |||(2017.12.01)|
| Latest version released |||3.6.0|
| |||(18.03.16)|
| OS | Linux | Windows | Linux + Windows + Mac |
| Available Dynamixel models | All models | All models | All models |
|||||
Expand All @@ -34,11 +34,11 @@
| | | MATLAB| MATLAB |
| | | LabVIEW| LabVIEW |
| | | VB| |
| | | | Python |
| | | | Java |
| (C++ ver. Library binded)¹| C++| | C++|
| | | | ROS |
| | | | Arduino |
| (Python ver. Library binded)| Python| | Python|

##### ¹ C++ ver. Library is not optimized in binding other languages. Please use C ver. Library instead.
---------------------------------------------------------------------------
Expand Down
14 changes: 14 additions & 0 deletions ReleaseNote.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
==============================================
Dynamixel SDK 3.6.0 (Protocol 1.0/2.0)
==============================================

- 03.16.2018

* Replaced : DynamixelSDK Python as a native language (Python 2 and 3 for Windows, Linux, Mac OS X) #93 #122 #147 #181 #182 #185
* Added : CONTRIBUTING.md added
* Changes : ISSUE_TEMPLATE.md modified
* Changes : C++ version - SyncRead / BulkRead - getError functions added
* Changes : Deprecated functions removed
* Fixes : DynamixelSDK MATLAB 2017 - new typedef (int8_t / int16_t / int32_t) applied in robotis_def.h #161 #179
* Fixes : Added missing header file for reset and factory_reset examples #167

==============================================
Dynamixel SDK 3.5.4 (Protocol 1.0/2.0)
==============================================
Expand Down
4 changes: 0 additions & 4 deletions c#/dynamixel_functions_csharp/win32/dynamixel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,9 @@ class dynamixel
[DllImport(dll_path)]
public static extern void packetHandler ();

[DllImport(dll_path)]
public static extern void printTxRxResult (int protocol_version, int result);
[DllImport(dll_path)]
public static extern IntPtr getTxRxResult (int protocol_version, int result);
[DllImport(dll_path)]
public static extern void printRxPacketError (int protocol_version, byte error);
[DllImport(dll_path)]
public static extern IntPtr getRxPacketError (int protocol_version, byte error);

[DllImport(dll_path)]
Expand Down
4 changes: 0 additions & 4 deletions c#/dynamixel_functions_csharp/win64/dynamixel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,9 @@ class dynamixel
[DllImport(dll_path)]
public static extern void packetHandler ();

[DllImport(dll_path)]
public static extern void printTxRxResult (int protocol_version, int result);
[DllImport(dll_path)]
public static extern IntPtr getTxRxResult (int protocol_version, int result);
[DllImport(dll_path)]
public static extern void printRxPacketError (int protocol_version, byte error);
[DllImport(dll_path)]
public static extern IntPtr getRxPacketError (int protocol_version, byte error);

[DllImport(dll_path)]
Expand Down
11 changes: 11 additions & 0 deletions c++/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@
Changelog for package dynamixel_sdk
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

3.6.0 (2018-03-16)
-----------
* Replaced : DynamixelSDK Python as a native language (Python 2 and 3 for Windows, Linux, Mac OS X) #93 #122 #147 #181 #182 #185
* Added : CONTRIBUTING.md added
* Changes : ISSUE_TEMPLATE.md modified
* Changes : C++ version - SyncRead / BulkRead - getError functions added
* Changes : Deprecated functions removed
* Fixes : DynamixelSDK MATLAB 2017 - new typedef (int8_t / int16_t / int32_t) applied in robotis_def.h #161 #179
* Fixes : Added missing header file for reset and factory_reset examples #167
* Contributors: Leon

3.5.4 (2017-12-01)
-----------
* Added : Deprecated is now being shown by attributes #67 #107
Expand Down
13 changes: 12 additions & 1 deletion c++/example/protocol1.0/bulk_read/bulk_read.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,18 @@ int main()
{
// Bulkread present position and moving status
dxl_comm_result = groupBulkRead.txRxPacket();
if (dxl_comm_result != COMM_SUCCESS) printf("%s\n", packetHandler->getTxRxResult(dxl_comm_result));
if (dxl_comm_result != COMM_SUCCESS)
{
printf("%s\n", packetHandler->getTxRxResult(dxl_comm_result));
}
else if (groupBulkRead.getError(DXL1_ID, &dxl_error))
{
printf("[ID:%03d] %s\n", DXL1_ID, packetHandler->getRxPacketError(dxl_error));
}
else if (groupBulkRead.getError(DXL2_ID, &dxl_error))
{
printf("[ID:%03d] %s\n", DXL2_ID, packetHandler->getRxPacketError(dxl_error));
}

dxl_getdata_result = groupBulkRead.isAvailable(DXL1_ID, ADDR_MX_PRESENT_POSITION, LEN_MX_PRESENT_POSITION);
if (dxl_getdata_result != true)
Expand Down
1 change: 1 addition & 0 deletions c++/example/protocol1.0/reset/reset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#if defined(__linux__) || defined(__APPLE__)
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#define STDIN_FILENO 0
#elif defined(_WIN32) || defined(_WIN64)
#include <conio.h>
Expand Down
13 changes: 12 additions & 1 deletion c++/example/protocol2.0/bulk_read_write/bulk_read_write.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,18 @@ int main()
{
// Bulkread present position and LED status
dxl_comm_result = groupBulkRead.txRxPacket();
if (dxl_comm_result != COMM_SUCCESS) printf("%s\n", packetHandler->getTxRxResult(dxl_comm_result));
if (dxl_comm_result != COMM_SUCCESS)
{
printf("%s\n", packetHandler->getTxRxResult(dxl_comm_result));
}
else if (groupBulkRead.getError(DXL1_ID, &dxl_error))
{
printf("[ID:%03d] %s\n", DXL1_ID, packetHandler->getRxPacketError(dxl_error));
}
else if (groupBulkRead.getError(DXL2_ID, &dxl_error))
{
printf("[ID:%03d] %s\n", DXL2_ID, packetHandler->getRxPacketError(dxl_error));
}

// Check if groupbulkread data of Dynamixel#1 is available
dxl_getdata_result = groupBulkRead.isAvailable(DXL1_ID, ADDR_PRO_PRESENT_POSITION, LEN_PRO_PRESENT_POSITION);
Expand Down
1 change: 1 addition & 0 deletions c++/example/protocol2.0/factory_reset/factory_reset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#if defined(__linux__) || defined(__APPLE__)
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#define STDIN_FILENO 0
#elif defined(_WIN32) || defined(_WIN64)
#include <conio.h>
Expand Down
13 changes: 12 additions & 1 deletion c++/example/protocol2.0/sync_read_write/sync_read_write.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,18 @@ int main()
{
// Syncread present position
dxl_comm_result = groupSyncRead.txRxPacket();
if (dxl_comm_result != COMM_SUCCESS) printf("%s\n", packetHandler->getTxRxResult(dxl_comm_result));
if (dxl_comm_result != COMM_SUCCESS)
{
printf("%s\n", packetHandler->getTxRxResult(dxl_comm_result));
}
else if (groupSyncRead.getError(DXL1_ID, &dxl_error))
{
printf("[ID:%03d] %s\n", DXL1_ID, packetHandler->getRxPacketError(dxl_error));
}
else if (groupSyncRead.getError(DXL2_ID, &dxl_error))
{
printf("[ID:%03d] %s\n", DXL2_ID, packetHandler->getRxPacketError(dxl_error));
}

// Check if groupsyncread data of Dynamixel#1 is available
dxl_getdata_result = groupSyncRead.isAvailable(DXL1_ID, ADDR_PRO_PRESENT_POSITION, LEN_PRO_PRESENT_POSITION);
Expand Down
11 changes: 11 additions & 0 deletions c++/include/dynamixel_sdk/group_bulk_read.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class WINDECLSPEC GroupBulkRead
std::map<uint8_t, uint16_t> address_list_; // <id, start_address>
std::map<uint8_t, uint16_t> length_list_; // <id, data_length>
std::map<uint8_t, uint8_t *> data_list_; // <id, data>
std::map<uint8_t, uint8_t *> error_list_; // <id, error>

bool last_result_;
bool is_param_changed_;
Expand Down Expand Up @@ -148,6 +149,16 @@ class WINDECLSPEC GroupBulkRead
/// @return data value
////////////////////////////////////////////////////////////////////////////////
uint32_t getData (uint8_t id, uint16_t address, uint16_t data_length);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that gets the error which might be received by GroupBulkRead::rxPacket or GroupBulkRead::txRxPacket
/// @param id Dynamixel ID
/// @error error of Dynamixel
/// @return true
/// @return when Dynamixel returned specific error byte
/// @return or false
////////////////////////////////////////////////////////////////////////////////
bool getError (uint8_t id, uint8_t* error);
};

}
Expand Down
13 changes: 12 additions & 1 deletion c++/include/dynamixel_sdk/group_sync_read.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ class WINDECLSPEC GroupSyncRead
PacketHandler *ph_;

std::vector<uint8_t> id_list_;
std::map<uint8_t, uint8_t* > data_list_; // <id, data>
std::map<uint8_t, uint8_t *> data_list_; // <id, data>
std::map<uint8_t, uint8_t *> error_list_; // <id, error>

bool last_result_;
bool is_param_changed_;
Expand Down Expand Up @@ -152,6 +153,16 @@ class WINDECLSPEC GroupSyncRead
/// @return data value
////////////////////////////////////////////////////////////////////////////////
uint32_t getData (uint8_t id, uint16_t address, uint16_t data_length);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that gets the error which might be received by GroupSyncRead::rxPacket or GroupSyncRead::txRxPacket
/// @param id Dynamixel ID
/// @error error of Dynamixel
/// @return true
/// @return when Dynamixel returned specific error byte
/// @return or false
////////////////////////////////////////////////////////////////////////////////
bool getError (uint8_t id, uint8_t* error);
};

}
Expand Down
14 changes: 0 additions & 14 deletions c++/include/dynamixel_sdk/packet_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,27 +100,13 @@ class WINDECLSPEC PacketHandler
////////////////////////////////////////////////////////////////////////////////
virtual const char *getTxRxResult (int result) = 0;

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that prints out description of communication result
/// @param result Communication result which might be gotten by the tx rx functions
/// @todo This function is deprecated (removed in DynamixelSDK ver. 3.6.1)
////////////////////////////////////////////////////////////////////////////////
DEPRECATED virtual void printTxRxResult (int result) = 0;

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that gets description of hardware error
/// @param error Dynamixel hardware error which might be gotten by the tx rx functions
/// @return description of hardware error in const char* (string)
////////////////////////////////////////////////////////////////////////////////
virtual const char *getRxPacketError (uint8_t error) = 0;

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that prints out description of hardware error
/// @param error Dynamixel hardware error which might be gotten by the tx rx functions
/// @todo This function is deprecated (removed in DynamixelSDK ver. 3.6.1)
////////////////////////////////////////////////////////////////////////////////
DEPRECATED virtual void printRxPacketError (uint8_t error) = 0;

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that transmits the instruction packet txpacket via PortHandler port.
/// @description The function clears the port buffer by PortHandler::clearPort() function,
Expand Down
14 changes: 0 additions & 14 deletions c++/include/dynamixel_sdk/protocol1_packet_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,27 +60,13 @@ class WINDECLSPEC Protocol1PacketHandler : public PacketHandler
////////////////////////////////////////////////////////////////////////////////
const char *getTxRxResult (int result);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that prints out description of communication result
/// @param result Communication result which might be gotten by the tx rx functions
/// @todo This function is deprecated (removed in DynamixelSDK ver. 3.6.1)
////////////////////////////////////////////////////////////////////////////////
DEPRECATED void printTxRxResult (int result);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that gets description of hardware error
/// @param error Dynamixel hardware error which might be gotten by the tx rx functions
/// @return description of hardware error in const char* (string)
////////////////////////////////////////////////////////////////////////////////
const char *getRxPacketError (uint8_t error);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that prints out description of hardware error
/// @param error Dynamixel hardware error which might be gotten by the tx rx functions
/// @todo This function is deprecated (removed in DynamixelSDK ver. 3.6.1)
////////////////////////////////////////////////////////////////////////////////
DEPRECATED void printRxPacketError (uint8_t error);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that transmits the instruction packet txpacket via PortHandler port.
/// @description The function clears the port buffer by PortHandler::clearPort() function,
Expand Down
14 changes: 0 additions & 14 deletions c++/include/dynamixel_sdk/protocol2_packet_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,27 +64,13 @@ class WINDECLSPEC Protocol2PacketHandler : public PacketHandler
////////////////////////////////////////////////////////////////////////////////
const char *getTxRxResult (int result);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that prints out description of communication result
/// @param result Communication result which might be gotten by the tx rx functions
/// @todo This function is deprecated (removed in DynamixelSDK ver. 3.6.1)
////////////////////////////////////////////////////////////////////////////////
DEPRECATED void printTxRxResult (int result);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that gets description of hardware error
/// @param error Dynamixel hardware error which might be gotten by the tx rx functions
/// @return description of hardware error in const char* (string)
////////////////////////////////////////////////////////////////////////////////
const char *getRxPacketError (uint8_t error);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that prints out description of hardware error
/// @param error Dynamixel hardware error which might be gotten by the tx rx functions
/// @todo This function is deprecated (removed in DynamixelSDK ver. 3.6.1)
////////////////////////////////////////////////////////////////////////////////
DEPRECATED void printRxPacketError (uint8_t error);

////////////////////////////////////////////////////////////////////////////////
/// @brief The function that transmits the instruction packet txpacket via PortHandler port.
/// @description The function clears the port buffer by PortHandler::clearPort() function,
Expand Down
2 changes: 1 addition & 1 deletion c++/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=DynamixelSDK
version=3.5.4
version=3.6.0
author=ROBOTIS
maintainer=ROBOTIS
sentence=DynamixelSDK for Arduino
Expand Down
2 changes: 1 addition & 1 deletion c++/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<package>
<name>dynamixel_sdk</name>
<version>3.5.4</version>
<version>3.6.0</version>
<description>This package is wrapping version of ROBOTIS Dynamxel SDK for ROS. The ROBOTIS Dynamixel SDK, or SDK, is a software development library that provides Dynamixel control functions for packet communication. The API is designed for Dynamixel actuators and Dynamixel-based platforms.</description>
<license>Apache-2.0</license>
<author email="[email protected]">Zerom</author>
Expand Down
Loading

0 comments on commit 9896375

Please sign in to comment.