Edit on GitHub

CSharp PacketHandler

Base functions for packet construction.

Methods Description
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
Enumerator Description
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
Parameters Description
protocol_version Protocol version
result Communication result
printRxPacketError
Parameters Description
protocol_version Protocol version
error Hardware error
getLastTxRxResult
Parameters Description
port_num Port number
protocol_version Protocol version
getLastRxPacketError
Parameters Description
port_num Port number
protocol_version Protocol version
setDataWrite
Parameters Description
port_num Port number
protocol_version Protocol version
data_length Data length
data_pos Targeted position of array element
data Data
getDataRead
Parameters Description
port_num Port number
protocol_version Protocol version
data_length Data length
data_pos Targeted position of array element
txPacket
Parameters Description
port_num Port_num
protocol_version Protocol version
rxPacket
Parameters Description
port_num Port number
protocol_version Protocol version
txRxPacket
- Parameters

| Parameters       | Description      |
|:-----------------|:-----------------|
| port_num         | Port number      |
| protocol_version | Protocol version |

- Detailed Description

   This function calls either `txRxPacket1` or `txRxPacket2` function depending on the `protocol_version`. The function stores data for being written into the array for packet transmission and gets data read from rx buffer of #`port_num` port by `txPacket` and `rxPacket` functions. When `txPacket` function succeeds to communicate, it will continue to `rxPacket` 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 `rxPacket` so the function finishes its operation immediately after the 'txPacket2'. Before the `rxPacket`, 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.


##### ping
- Syntax
``` cs
void ping (int port_num, int protocol_version, byte id)

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

| Parameters       | Description      |
|:-----------------|:-----------------|
| 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`. The function constructs the transmission packet for ping, and stats `txRxPacket`. Then, the function tries to get the model number of the Dynamixel by `readTxRx` 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.


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

Parameters Description
port_num Port number
protocol_version Protocol version
getBroadcastPingResult
- Parameters

| Parameters       | Description      |
|:-----------------|:-----------------|
| 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`. The function returns whether #`id` Dynamixel responded by `broadcastPing` function. The function is unavailable in protocol 1.0.


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

| Parameters       | Description      |
|:-----------------|:-----------------|
| 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`. The function constructs the transmission packet for reset Dynamixel, and starts `txRxPacket`. The 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. In protocol 1.0, `option` is selectable with only full-reset mode `0x00`.

##### readTx
- Syntax
``` cs
void readTx(int port_num, int protocol_version, byte id, UInt16 address, UInt16 length)

Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
readRx
Parameters Description
port_num Port number
protocol_version Protocol version
length Packet length
readTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
read1ByteTx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read1ByteRx
Parameters Description
port_num Port number
protocol_version Protocol version
read1ByteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteTx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read2ByteRx
Parameters Description
port_num Port number
protocol_version Protocol version
read2ByteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteTx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
read4ByteRx
Parameters Description
port_num Port number
protocol_version Protocol version
read4ByteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
writeTxOnly
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
writeTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
write1ByteTxOnly
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write1ByteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxOnly
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write2ByteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxOnly
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
data Data for write
write4ByteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
regWriteTxOnly
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
regWriteTxRx
Parameters Description
port_num Port number
protocol_version Protocol version
id Dynamixel ID
address Address on the control table of Dynamixel
length Packet length
syncReadTx
Parameters Description
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
Parameters Description
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
Parameters Description
port_num Port number
protocol_version Protocol version
param_length Parameter length
bulkWriteTxOnly
Parameters Description
port_num Port number
protocol_version Protocol version
param_length Parameter length