urg_laser.h
00001 #include <stdio.h>
00002 #include <libplayercore/playercore.h>
00003
00004 #define MAX_READINGS 1128
00005
00006 typedef struct urg_laser_readings
00007 {
00008 unsigned short Readings[MAX_READINGS];
00009 } urg_laser_readings_t;
00010
00011 class urg_laser
00012 {
00013 public:
00014 urg_laser();
00015 ~urg_laser();
00016
00017 int Open(const char * PortName, int use_serial, int baud);
00018 int Close();
00019 int ChangeBaud(int curr_baud, int new_baud, int timeout);
00020 int ReadUntil(int fd, unsigned char *buf, int len, int timeout);
00021
00022 int ReadUntil_nthOccurence(int file, int n, char c);
00023
00024 bool PortOpen();
00025
00026 int GetReadings (urg_laser_readings_t * readings, int min_i, int max_i);
00027 int GetIDInfo ();
00028 float GetMaxRange ();
00029 int GetSensorConfig (player_laser_config_t *cfg);
00030 int GetSCIPVersion() { return(this->SCIP_Version); }
00031 int GetNumRanges() { return(this->num_ranges); }
00032
00033 private:
00034 int QuerySCIPVersion ();
00035 int SCIP_Version;
00036 int num_ranges;
00037 FILE * laser_port;
00038 };