00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <stdint.h>
00023
00024 #include <libplayercore/playercore.h>
00025
00026 #include "acpGarcia.h"
00027
00029
00030 class GarciaDriver : public ThreadedDriver
00031 {
00032 public:
00033
00034
00035 GarciaDriver(ConfigFile* cf, int section);
00036
00037 virtual ~GarciaDriver();
00038
00039
00040 int MainSetup();
00041 void MainQuit();
00042
00043 virtual void Main();
00044
00045
00046 virtual int ProcessMessage(QueuePointer & resp_queue,
00047 player_msghdr * hdr,
00048 void * data);
00049
00050 void ProcessPos2dPosCmd(player_msghdr_t* hdr, player_position2d_cmd_pos_t &data);
00051 void ProcessPos2dVelCmd(player_msghdr_t* hdr, player_position2d_cmd_vel_t &data);
00052 void ProcessSpeechCommand(player_msghdr_t* hdr, player_speech_cmd_t &data);
00053 void ProcessDioCommand(player_msghdr_t* hdr, player_dio_cmd_t &data);
00054
00055 void ProcessPos2dGeomReq(player_msghdr_t* hdr);
00056 void ProcessIrPoseReq(player_msghdr_t* hdr);
00057
00058 void RefreshData();
00059
00060 private:
00061
00062
00063 player_devaddr_t mPos2dAddr;
00064 player_position2d_data_t mPos2dData;
00065 player_position2d_cmd_pos_t mPos2dPosCmd;
00066 player_position2d_cmd_vel_t mPos2dVelCmd;
00067
00068
00069 player_devaddr_t mIrAddr;
00070 player_ir_data_t mIrData;
00071
00072
00073 player_devaddr_t mSpeechAddr;
00074 player_speech_cmd_t mSpeechCmd;
00075
00076
00077 player_devaddr_t mDioAddr;
00078 player_dio_data_t mDioData;
00079 player_dio_cmd_t mDioCmd;
00080
00081
00082 player_devaddr_t mPowerAddr;
00083 player_power_data_t mPowerData;
00084
00085 int32_t mSleep;
00086
00087 double mLength;
00088 double mWidth;
00089 double mWheelBase;
00090 double mWheelRadius;
00091
00092 acpValue mSpeed;
00093 acpValue mPitch;
00094 acpValue mVolume;
00095
00096 acpGarcia* mGarcia;
00097 };