Edit on GitHub

API Reference

C

C PacketHandler

Base functions for packet construction.

   
packetHandler Initializes members of packet data pointer struct
printTxRxResult Shows communication result
printRxPacketError Shows hardware error
getLastTxRxResult Gets last communication result
getLastRxPacketError Gets last hardware error
setDataWrite Gets last communication result
getDataRead Gets last hardware error
txPacket Transmits the packet
rxPacket Receives the packet
txRxPacket Transmits and receives the packet
ping ping a Dynamixel
pingGetModelNum Ping a Dynamixel and get its model number
broadcastPing ping all connected Dynamixels
getBroadcastPingResult Get IDs of Dynamixels responded by BroadcastPing2
action Commands ‘Run’ the Regwritten
regWrite Writes the packets and wait for the ‘Action’ command
reboot Reboots Dynamixel
factoryReset Resets all Dynamixel settings
readTx Transmits N byte read instruction packet
readRx Receives N byte read status packet
readTxRx Transmits and receives N byte packet
read1ByteTx Transmits 1 byte read instruction packet
read1ByteRx Receives 1 byte read status packet
read1ByteTxRx Transmits and receives 1 byte packet
read2ByteTx Transmits 2 byte read instruction packet
read2ByteRx Receives 2 byte read status packet
read2ByteTxRx Transmits and receives 2 byte packet
read4ByteTx Transmits 4 byte read instruction packet
read4ByteRx Receives 4 byte read status packet
read4ByteTxRx Transmits and receives 4 byte packet
writeTxOnly Transmits N byte write instruction packet
writeTxRx Transmits and receives N byte packet
write1ByteTxOnly Transmits 1 byte write instruction packet
write1ByteTxRx Transmits and receives 1 byte packet
write2ByteTxOnly Transmits 2 byte write instruction packet
write2ByteTxRx Transmits and receives 2 byte packet
write4ByteTxOnly Transmits 4 byte write instruction packet
write4ByteTxRx Transmits and receives 4 byte packet
regWriteTxOnly Transmits register write instruction packet
regWriteTxRx Transmits and receives register write packet
syncReadTx Transmits N byte sync read Instruction packet
syncWriteTxOnly Transmits N byte sync write Instruction packet
bulkReadTx Transmits N byte bulk read Instruction packet
bulkWriteTxOnly Transmits N byte bulk write Instruction packet
   
DXL_MAKEWORD(a, b) makes value from a and b to word type
DXL_MAKEDWORD(a, b) makes value from a and b to dword type
DXL_LOWORD(l) gets lower word type value from l
DXL_HIWORD(l) gets higher word type value from l
DXL_LOBYTE(w) gets lower byte type value from w
DXL_HIBYTE(w) gets higher byte type value from w
BROADCAST_ID := 0xFE Broadcast ID
MAX_ID := 0xFC Maximum ID value
INST_PING := 1 Instruction value of ping
INST_READ := 2 Instruction value of Read
INST_WRITE := 3 Instruction value of Write
INST_REG_WRITE := 4 Instruction value of Register Write
INST_ACTION := 5 Instruction value of Action
INST_FACTORY_RESET := 6 Instruction value of Factory Reset
INST_SYNC_WRITE := 131 Instruction value of Sync Write
INST_BULK_READ := 146 Instruction value of Bulk Read
INST_REBOOT := 8 Instruction value of Reboot
INST_STATUS := 85 Instruction value of Status
INST_SYNC_READ := 130 Instruction value of Sync Read
INST_BULK_WRITE := 147 Instruction value of Bulk Write
COMM_SUCCESS := 0 Status of Communication Success
COMM_PORT_BUSY := -1000 Status of Port in use
COMM_TX_FAIL := -1001 Status of Transmit packet failed
COMM_RX_FAIL := -1002 Status of Receive packet failed
COMM_TX_ERROR := -2000 Status of Transmit packet error
COMM_RX_WAITING := -3000 Status of Receive packet waiting
COMM_RX_TIMEOUT := -3001 Status of Receive packet timeout
COMM_RX_CORRUPT := -3002 Status of Receive packet corrupt
COMM_NOT_AVAILABLE := -9000 Status of Unavailable in protocol 1.0

Method References


packetHandler
printTxRxResult
   
protocol_version Protocol version
result Communication result
printRxPacketError
   
protocol_version Protocol version
error Hardware error
getLastTxRxResult
   
port_num Port number
protocol_version Protocol version
getLastRxPacketError
   
port_num Port number
protocol_version Protocol version
setDataWrite
   
port_num Port number
protocol_version Protocol version
data_length Data length
data_pos Targeted position of array element
data Data
getDataRead
   
port_num Port number
protocol_version Protocol version
data_length Data length
data_pos Targeted position of array element
txPacket
   
port_num Port_num
protocol_version Protocol version
rxPacket
   
port_num Port number
protocol_version Protocol version
txRxPacket
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|protocol_version | Protocol version |

- Detailed Description

   This function calls either `txRxPacket1` or `txRxPacket2` function depending on the `protocol_version`.


##### ping
- Syntax
``` cpp
void ping (int port_num, int protocol_version, uint8_t id)

   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
pingGetModelNum
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|protocol_version | Protocol version |
|id	|Dynamixel ID|

- Detailed Description

   This function calls either `pingGetModelNum1` or `pingGetModelNum2` function depending on the `protocol_version`.


##### broadcastPing
- Syntax
``` cpp
void broadcastPing(int port_num, int protocol_version)

   
port_num Port number
protocol_version Protocol version
getBroadcastPingResult
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|protocol_version | Protocol version |
|id | Dynamixel ID |

- Detailed Description

   This function calls either `getBroadcastPingResult1` or `getBroadcastPingResult2` function depending on the `protocol_version`.


##### action
- Syntax
``` cpp
void action(int port_num, int protocol_version, int id)
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
reboot
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
factoryReset
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|protocol_version | Protocol version |
|id	|Dynamixel ID|
|option |Reset option|

- Detailed Description

   This function calls either `factoryReset1` or `factoryReset2` function depending on the `protocol_version`.

##### readTx
- Syntax
``` cpp
void readTx(int port_num, int protocol_version, uint8_t id, uint16_t address, uint16_t length)

   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
readRx
   
port_num Port number
protocol_version Protocol version
length Packet length
readTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
read1ByteTx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read1ByteRx
   
port_num Port number
protocol_version Protocol version
read1ByteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteTx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteRx
   
port_num Port number
protocol_version Protocol version
read2ByteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteTx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteRx
   
port_num Port number
protocol_version Protocol version
read4ByteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
writeTxOnly
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
writeTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
write1ByteTxOnly
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write1ByteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxOnly
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxOnly
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
regWriteTxOnly
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
regWriteTxRx
   
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
syncReadTx
   
port_num Port number
protocol_version Protocol version
address Address on the control table of Dynamixel
data_length Data length
param_length Parameter length
syncWriteTxOnly
   
port_num Port number
protocol_version Protocol version
start_address Address on the control table of Dynamixel
data_length Data length
param_length Parameter length
bulkReadTx
   
port_num Port number
protocol_version Protocol version
param_length Parameter length
bulkWriteTxOnly
   
port_num Port number
protocol_version Protocol version
param_length Parameter length

C Protocol1PacketHandler

PacketHandler dependent functions for packet construction using Protocol 1.0.

None

None

Method References


printTxRxResult1
   
result Communication result
printRxPacketError1
   
error Hardware error
getLastTxRxResult1
   
port_num Port number
getLastRxPacketError1
   
port_num Port number
setDataWrite1
   
port_num Port number
data_length Data length
data_pos Targeted position of array element
data Data
getDataRead1
   
port_num Port number
data_length Data length
data_pos Targeted position of array element
txPacket1
   
port_num Port_num
rxPacket1
   
port_num Port number
txRxPacket1
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|

- Detailed Description

  This function stores data for being written into the array for packet transmission and gets data read from rx buffer of #`port_num` port by `txPacket1` and `rxPacket1` functions. When `txPacket1` function succeeds to communicate, it will continue to `RxPacket2` and finishes the process if the packet succeeds to be received. In particular, the group handler functions for write, such as SyncWrite, don’t use `RxPacket` so the function finishes its operation immediately after the `txPacket1`. Before the `rxPacket1`, it sets packet timeout if the instruction of received packet is for read. The communication result and the hardware error are available when the function is terminated.


##### ping1
- Syntax
``` cpp
void ping1 (int port_num, uint8_t id)

   
port_num Port number
id Dynamixel ID
pingGetModelNum1
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|id	|Dynamixel ID|

- Detailed Description

  This function constructs the transmission packet for ping, and stats `txRxPacket1`. Then, the function tries to get the model number of the Dynamixel by `readTxRx1` function. When it succeeds to receive the packet, it returns the model number. The communication result and the hardware error are available when the function is terminated.


##### broadcastPing1
- Syntax
``` cpp
void broadcastPing1(int port_num)

   
port_num Port number
getBroadcastPingResult1
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|

- Detailed Description

  This function is not available with the Dynamixel Protocol 1.0. The function returns false.

##### action1
- Syntax
``` cpp
void action1(int port_num, int id)
   
port_num Port number
id Dynamixel ID
reboot1
   
port_num Port number
id Dynamixel ID
factoryReset1
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|id	|Dynamixel ID|
|option |Reset option|

- Detailed Description

  This function constructs the transmission packet for reset Dynamixel, and starts `txRxPacket1`. This resets targeted Dynamixel's settings to the factory default settings. The `option` is not available in Dynamixel Protocol 1.0. The communication result and the hardware error are available when the function is terminated.


##### readTx1
- Syntax
``` cpp
void readTx1(int port_num, uint8_t id, uint16_t address, uint16_t length)

   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
readRx1
   
port_num Port number
length Packet length
readTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
read1ByteTx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read1ByteRx1
   
port_num Port number
read1ByteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteTx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteRx1
   
port_num Port number
read2ByteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteTx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteRx1
   
port_num Port number
read4ByteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
writeTxOnly1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
writeTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
write1ByteTxOnly1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write1ByteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxOnly1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxOnly1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
regWriteTxOnly1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
regWriteTxRx1
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
syncReadTx1
   
port_num Port number
address Address on the control table of Dynamixel
data_length Data length
param_length Parameter length
syncWriteTxOnly1
   
port_num Port number
start_address Address on the control table of Dynamixel
data_length Data length
param_length Parameter length
bulkReadTx1
   
port_num Port number
param_length Parameter length
bulkWriteTxOnly1
   
port_num Port number
param_length Parameter length

C Protocol2PacketHandler

   
printTxRxResult2 Shows communication result
printRxPacketError2 Shows hardware error
getLastTxRxResult2 Gets last communication result
getLastRxPacketError2 Gets last hardware error
setDataWrite2 Gets last communication result
getDataRead2 Gets last hardware error
txPacket2 Transmits the packet
rxPacket2 Receives the packet
txRxPacket2 Transmits and receives the packet
ping2 Ping a Dynamixel
pingGetModelNum2 Ping a Dynamixel and get its model number
broadcastPing2 Ping all connected Dynamixels
getBroadcastPingResult2 Get IDs of Dynamixels responded by broadcastPing2
action2 Commands ‘Run’ the Regwritten
regWrite2 Writes the packets and wait for the ‘Action’ command
reboot2 Reboots Dynamixel
factoryReset2 Resets all Dynamixel settings
readTx2 Transmits N byte read instruction packet
readRx2 Receives N byte read status packet
readTxRx2 Transmits and receives N byte packet
read1ByteTx2 Transmits 1 byte read instruction packet
read1ByteRx2 Receives 1 byte read status packet
read1ByteTxRx2 Transmits and receives 1 byte packet
read2ByteTx2 Transmits 2 byte read instruction packet
read2ByteRx2 Receives 2 byte read status packet
read2ByteTxRx2 Transmits and receives 2 byte packet
read4ByteTx2 Transmits 4 byte read instruction packet
read4ByteRx2 Receives 4 byte read status packet
read4ByteTxRx2 Transmits and receives 4 byte packet
writeTxOnly2 Transmits N byte write instruction packet
writeTxRx2 Transmits and receives N byte packet
write1ByteTxOnly2 Transmits 1 byte write instruction packet
write1ByteTxRx2 Transmits and receives 1 byte packet
write2ByteTxOnly2 Transmits 2 byte write instruction packet
write2ByteTxRx2 Transmits and receives 2 byte packet
write4ByteTxOnly2 Transmits 4 byte write instruction packet
write4ByteTxRx2 Transmits and receives 4 byte packet
regWriteTxOnly2 Transmits register write instruction packet
regWriteTxRx2 Transmits and receives register write packet
syncReadTx2 Transmits N byte sync read Instruction packet
syncWriteTxOnly2 Transmits N byte sync write Instruction packet
bulkReadTx2 Transmits N byte bulk read Instruction packet
bulkWriteTxOnly2 Transmits N byte bulk write Instruction packet

Method References


printTxRxResult2
   
result Communication result
printRxPacketError2
   
error Hardware error
getLastTxRxResult2
   
port_num Port number
getLastRxPacketError2
   
port_num Port number
setDataWrite2
   
port_num Port number
data_length Data length
data_pos Targeted position of array element
data Data
getDataRead2
   
port_num Port number
data_length Data length
data_pos Targeted position of array element
txPacket2
   
port_num Port_num
rxPacket2
   
port_num Port number
txRxPacket2
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|

- Detailed Description

   This function stores data for being written into the array for packet transmission and gets data read from rx buffer of #`port_num` port by `txPacket2` and `rxPacket2` functions. When `txPacket2` function succeeds to communicate, it will continue to `rxPacket2` and finishes the process if the packet succeeds to be received. In particular, the group handler functions for write, such as SyncWrite, and BulkWrite, don’t use `rxPacket2` so the function finishes its operation immediately after the 'txPacket2'. Before the `rxPacket2`, it sets packet timeout if the instruction of received packet is for read. The communication result and the hardware error are available when the function is terminated.


##### ping2
- Syntax
``` cpp
void ping2 (int port_num, uint8_t id)

   
port_num Port number
id Dynamixel ID
pingGetModelNum2
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|id	|Dynamixel ID|

- Detailed Description

   This function constructs the transmission packet for ping, and stats `txRxPacket2`. Then, the function tries to get the model number of the Dynamixel by `readTxRx2` function. When it succeeds to receive the packet, it returns the model number. The communication result and the hardware error are available when the function is terminated.


##### broadcastPing2
- Syntax
``` cpp
void broadcastPing2(int port_num)

   
port_num Port number
getBroadcastPingResult2
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|id | Dynamixel ID |

- Detailed Description

   This function returns whether #`id` Dynamixel responded by `broadcastPing2` function.


##### action2
- Syntax
``` cpp
void action2(int port_num, int id)
   
port_num Port number
id Dynamixel ID
reboot2
   
port_num Port number
id Dynamixel ID
factoryReset2
- Parameters

| | |
| ------------- | ------------- |
|port_num	|Port number|
|id	|Dynamixel ID|
|option |Reset option|

- Detailed Description

   This function constructs the transmission packet for reset Dynamixel, and starts `txRxPacket2`. This resets targeted Dynamixel's settings to the factory default settings. The `option` indicates the range of which items on the control table should be reset: `0xFF` for resetting all values, `0x01` for resetting all values except ID, `0x02` for resetting all values except ID and Baudrate. The communication result and the hardware error are available when the function is terminated.

##### readTx2
- Syntax
``` cpp
void readTx2(int port_num, uint8_t id, uint16_t address, uint16_t length)

   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
readRx2
   
port_num Port number
length Packet length
readTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
read1ByteTx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read1ByteRx2
   
port_num Port number
read1ByteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteTx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteRx2
   
port_num Port number
read2ByteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteTx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteRx2
   
port_num Port number
read4ByteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
writeTxOnly2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
writeTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
write1ByteTxOnly2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write1ByteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxOnly2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxOnly2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
regWriteTxOnly2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
regWriteTxRx2
   
port_num Port number
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
syncReadTx2
   
port_num Port number
address Address on the control table of Dynamixel
data_length Data length
param_length Parameter length
syncWriteTxOnly2
   
port_num Port number
start_address Address on the control table of Dynamixel
data_length Data length
param_length Parameter length
bulkReadTx2
   
port_num Port number
param_length Parameter length
bulkWriteTxOnly2
   
port_num Port number
param_length Parameter length