|
AMOR API library
V1.1.44
|
00001 #ifndef AMOR_H 00002 #define AMOR_H 00003 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif // __cplusplus 00020 00021 #ifndef AMOR_EXPORT 00022 #define AMOR_EXPORT 00023 #endif 00024 00030 // TYPE DEFINITIONS 00031 00033 typedef void* AMOR_HANDLE; 00035 typedef int AMOR_RESULT; 00037 typedef double real; 00038 00040 #define AMOR_SUCCESS 0 00041 00042 #define AMOR_FAILED -1 00043 00044 #define AMOR_INVALID_HANDLE 0 00045 00047 #define AMOR_NO_WARNING 0 00048 00049 #define AMOR_WARN_TEMPERATURE 1 00050 00051 #define AMOR_WARN_LOWER_END_SWITCH 2 00052 00053 #define AMOR_WARN_UPPER_END_SWITCH 3 00054 00055 #define AMOR_WARN_BUFFER_EMPTY 5 00056 00058 #define AMOR_NUM_JOINTS 7 00059 00061 #define AMOR_ERROR_NONE 0 00062 00063 #define AMOR_ERROR_UNKNOWN 1 00064 00065 #define AMOR_ERROR_CONNECTION_FAILURE 2 00066 00067 #define AMOR_ERROR_INVALID_ARGUMENT 3 00068 00069 #define AMOR_ERROR_COMMUNICATION 4 00070 00071 #define AMOR_ERROR_CAN_DRIVER 5 00072 00074 typedef struct tagAMOR_JOINT_INFO { 00076 real maxCurrent; 00078 real maxVoltage; 00080 real maxVelocity; 00082 real maxAcceleration; 00084 real lowerJointLimit; 00086 real upperJointLimit; 00087 } AMOR_JOINT_INFO; 00088 00090 typedef struct tagAMOR_JOINT_VERSION { 00092 unsigned char major; 00094 unsigned char minor; 00096 unsigned short revision; 00098 unsigned char parameters_version; 00099 } AMOR_JOINT_VERSION; 00100 00102 typedef real AMOR_VECTOR7[AMOR_NUM_JOINTS]; 00103 00105 typedef struct tagAMOR_MATRIX44 { 00106 union { 00107 struct { 00108 real _11, _12, _13, _14; 00109 real _21, _22, _23, _24; 00110 real _31, _32, _33, _34; 00111 real _41, _42, _43, _44; 00112 }; 00113 real m[4][4]; 00114 }; 00115 } AMOR_MATRIX44; 00116 00118 enum amor_movement_status{ 00120 AMOR_MOVEMENT_STATUS_MOVING, 00122 AMOR_MOVEMENT_STATUS_PENDING, 00124 AMOR_MOVEMENT_STATUS_FINISHED 00125 }; 00126 00136 AMOR_EXPORT void amor_get_library_version(int* major, int* minor, int* build); 00137 00159 AMOR_EXPORT AMOR_HANDLE amor_connect(char* libraryName, int can_port); 00160 00170 AMOR_EXPORT AMOR_RESULT amor_set_currents(AMOR_HANDLE handle, AMOR_VECTOR7 currents); 00171 00180 AMOR_EXPORT AMOR_RESULT amor_get_req_currents(AMOR_HANDLE handle, AMOR_VECTOR7 *currents); 00181 00191 AMOR_EXPORT AMOR_RESULT amor_get_actual_currents(AMOR_HANDLE handle, AMOR_VECTOR7 *currents); 00192 00201 AMOR_EXPORT AMOR_RESULT amor_set_voltages(AMOR_HANDLE handle, AMOR_VECTOR7 voltages); 00202 00211 AMOR_EXPORT AMOR_RESULT amor_get_req_voltages(AMOR_HANDLE handle, AMOR_VECTOR7 *voltages); 00212 00222 AMOR_EXPORT AMOR_RESULT amor_get_actual_voltages(AMOR_HANDLE handle, AMOR_VECTOR7* voltages); 00223 00236 AMOR_EXPORT AMOR_RESULT amor_set_positions(AMOR_HANDLE handle, AMOR_VECTOR7 positions); 00237 00244 AMOR_EXPORT AMOR_RESULT amor_get_req_positions(AMOR_HANDLE handle, AMOR_VECTOR7* positions); 00245 00258 AMOR_EXPORT AMOR_RESULT amor_get_actual_positions(AMOR_HANDLE handle, AMOR_VECTOR7* positions); 00259 00272 AMOR_EXPORT AMOR_RESULT amor_set_velocities(AMOR_HANDLE handle, AMOR_VECTOR7 velocities); 00273 00280 AMOR_EXPORT AMOR_RESULT amor_get_req_velocities(AMOR_HANDLE handle, AMOR_VECTOR7* velocities); 00281 00294 AMOR_EXPORT AMOR_RESULT amor_get_actual_velocities(AMOR_HANDLE handle, AMOR_VECTOR7* velocities); 00295 00317 AMOR_EXPORT AMOR_RESULT amor_emergency_stop(AMOR_HANDLE handle); 00318 00335 AMOR_EXPORT AMOR_RESULT amor_controlled_stop(AMOR_HANDLE handle); 00336 00344 AMOR_EXPORT AMOR_RESULT amor_release(AMOR_HANDLE handle); 00345 00351 AMOR_EXPORT AMOR_RESULT amor_get_status(AMOR_HANDLE handle, int joint, int *status); 00352 00364 AMOR_EXPORT AMOR_RESULT amor_get_joint_info(AMOR_HANDLE handle, int joint, AMOR_JOINT_INFO* parameters); 00365 00376 AMOR_EXPORT AMOR_RESULT amor_get_movement_status(AMOR_HANDLE handle, amor_movement_status* status); 00377 00390 AMOR_EXPORT AMOR_RESULT amor_set_cartesian_velocities(AMOR_HANDLE handle, AMOR_VECTOR7 velocities); 00391 00404 AMOR_EXPORT AMOR_RESULT amor_set_cartesian_positions(AMOR_HANDLE handle, AMOR_VECTOR7 positions); 00405 00415 AMOR_EXPORT AMOR_RESULT amor_get_cartesian_position(AMOR_HANDLE handle, AMOR_VECTOR7 &positions); 00416 00418 AMOR_EXPORT unsigned int amor_errno(); 00419 00421 AMOR_EXPORT const char* amor_error(); 00422 00425 #ifdef __cplusplus 00426 } 00427 #endif /* __cplusplus */ 00428 00429 #endif // AMOR_H
1.8.0