DETI-Dynamixel Interface
1
|
00001 #ifndef _DYNAMIXEL_HEADER 00002 #define _DYNAMIXEL_HEADER 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 #endif 00007 00008 #include "dynamixelDefines.h" 00009 #ifndef true 00010 #define true 1 00011 #endif 00012 #ifndef false 00013 #define false 0 00014 #endif 00015 00017 int dxl_initialize(int deviceIndex, int baudnum ); 00018 void dxl_terminate(); 00019 00020 00022 #define MAXNUM_TXPARAM (150) 00023 #define MAXNUM_RXPARAM (60) 00024 00025 void dxl_set_txpacket_id(int id); 00026 #define BROADCAST_ID (254) 00027 00028 void dxl_set_txpacket_instruction(int instruction); 00029 // #define INST_PING (1) 00030 // #define INST_READ (2) 00031 // #define INST_WRITE (3) 00032 // #define INST_REG_WRITE (4) 00033 // #define INST_ACTION (5) 00034 // #define INST_RESET (6) 00035 // #define INST_SYNC_WRITE (131) 00036 00037 void dxl_set_txpacket_parameter(int index, int value); 00038 void dxl_set_txpacket_length(int length); 00039 00040 int dxl_get_rxpacket_error(int errbit); 00041 #define ERRBIT_VOLTAGE (1) 00042 #define ERRBIT_ANGLE (2) 00043 #define ERRBIT_OVERHEAT (4) 00044 #define ERRBIT_RANGE (8) 00045 #define ERRBIT_CHECKSUM (16) 00046 #define ERRBIT_OVERLOAD (32) 00047 #define ERRBIT_INSTRUCTION (64) 00048 00049 int dxl_get_rxpacket_length(void); 00050 int dxl_get_rxpacket_parameter(int index); 00051 00052 00053 // utility for value 00054 int dxl_makeword(int lowbyte, int highbyte); 00055 int dxl_get_lowbyte(int word); 00056 int dxl_get_highbyte(int word); 00057 00058 00060 void dxl_tx_packet(void); 00061 void dxl_rx_packet(void); 00062 00063 void dxl_txrx_packet(void); 00064 void dxl_txrx_packet_no_wait(void); 00065 00066 00067 int dxl_get_result(void); 00068 #define COMM_TXSUCCESS (0) 00069 #define COMM_RXSUCCESS (1) 00070 #define COMM_TXFAIL (2) 00071 #define COMM_RXFAIL (3) 00072 #define COMM_TXERROR (4) 00073 #define COMM_RXWAITING (5) 00074 #define COMM_RXTIMEOUT (6) 00075 #define COMM_RXCORRUPT (7) 00076 00077 00079 void dxl_ping(int id); 00080 int dxl_read_byte(int id, int address); 00081 void dxl_write_byte(int id, int address, int value); 00082 int dxl_read_word(int id, int address); 00083 void dxl_write_word(int id, int address, int value); 00084 00085 00086 void printPacket(); 00087 00088 #ifdef __cplusplus 00089 } 00090 #endif 00091 00092 #endif