DETI-Dynamixel Interface  1
dynamixel.h
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