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