All Classes Namespaces Files Functions Variables Enumerations Enumerator
libs/range_sensor/c/urg_ctrl.h
Go to the documentation of this file.
00001 #ifndef QRK_C_URG_CTRL_H
00002 #define QRK_C_URG_CTRL_H
00003 
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018 
00019 #include "urg_t.h"
00020 
00021 
00025 enum {
00026   UrgLineWidth = 64 + 1 + 1,    
00027   UrgInfinityTimes = 0,         
00028 };
00029 
00030 
00034 typedef enum {
00035   URG_GD,                       
00036   URG_GD_INTENSITY,             
00037   URG_GS,                       
00038   URG_MD,                       
00039   URG_MD_INTENSITY,             
00040   URG_MS,                       
00041 } urg_request_type;
00042 
00043 
00047 enum {
00048   URG_FIRST = -1, 
00049   URG_LAST = -1, 
00051   UrgInvalidTimestamp = -1,     
00052 };
00053 
00054 
00055 extern void urg_initialize(urg_t *urg);
00056 
00057 
00084 extern int urg_connect(urg_t *urg, const char *device, long baudrate);
00085 
00086 
00095 extern void urg_disconnect(urg_t *urg);
00096 
00097 
00116 extern int urg_isConnected(const urg_t *urg);
00117 
00118 
00129 extern const char *urg_error(const urg_t *urg);
00130 
00131 
00146 extern int urg_versionLines(urg_t *urg, char* lines[], int lines_max);
00147 
00148 
00177 extern int urg_parameters(urg_t *urg, urg_parameter_t* parameters);
00178 
00179 
00190 extern const char* urg_model(const urg_t *urg);
00191 
00192 
00216 extern int urg_dataMax(const urg_t *urg);
00217 
00218 
00233 extern int urg_scanMsec(const urg_t *urg);
00234 
00235 
00263 extern long urg_maxDistance(const urg_t *urg);
00264 
00265 
00276 extern long urg_minDistance(const urg_t *urg);
00277 
00278 
00279 /* ---------------------------------------------------------------------- */
00280 
00281 
00293 extern int urg_setSkipLines(urg_t *urg, int lines);
00294 
00295 
00307 extern int urg_setSkipFrames(urg_t *urg, int frames);
00308 
00309 
00333 extern int urg_setCaptureTimes(urg_t *urg, int times);
00334 
00335 
00345 extern int urg_remainCaptureTimes(const urg_t *urg);
00346 
00347 
00380 extern int urg_requestData(urg_t *urg,
00381                            urg_request_type request_type,
00382                            int first_index,
00383                            int last_index);
00384 
00385 
00398 extern int urg_receiveData(urg_t *urg, long data[], int data_max);
00399 
00400 
00411 extern int urg_receiveDataWithIntensity(urg_t *urg, long data[], int data_max,
00412                                         long intensity[]);
00413 
00414 
00429 extern int urg_receivePartialData(urg_t *urg, long data[], int data_max,
00430                                   int first_index, int last_index);
00431 
00432 
00454 extern long urg_recentTimestamp(const urg_t *urg);
00455 
00456 
00457 /* ---------------------------------------------------------------------- */
00458 
00459 
00488 extern double urg_index2rad(const urg_t *urg, int index);
00489 
00490 
00501 extern int urg_index2deg(const urg_t *urg, int index);
00502 
00503 
00516 extern int urg_rad2index(const urg_t *urg, double radian);
00517 
00518 
00529 extern int urg_deg2index(const urg_t *urg, int degree);
00530 
00531 
00532 /* ---------------------------------------------------------------------- */
00533 
00534 
00545 extern int urg_laserOn(urg_t *urg);
00546 
00547 
00556 extern int urg_laserOff(urg_t *urg);
00557 
00558 
00567 extern int urg_reboot(urg_t *urg);
00568 
00569 
00573 extern int urg_reset(urg_t *urg);
00574 
00575 
00576 /* ---------------------------------------------------------------------- */
00577 
00578 
00587 extern int urg_enableTimestampMode(urg_t *urg);
00588 
00589 
00598 extern int urg_disableTimestampMode(urg_t *urg);
00599 
00600 
00625 extern long urg_currentTimestamp(urg_t *urg);
00626 
00627 #ifdef __cplusplus
00628 }
00629 #endif
00630 
00631 #endif /* !QRK_C_URG_CTRL_H */