IRobotI.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef IROBOT_I_H
00039 #define IROBOT_I_H
00040
00041 #include <stdlib.h>
00042 #include <time.h>
00043 #include <unistd.h>
00044 #include <fcntl.h>
00045 #include <sys/types.h>
00046 #include <sys/stat.h>
00047 #include <signal.h>
00048
00049
00050
00051 extern "C" {
00052
00053 #include <captureMjpeg/color.h>
00054 #include <captureMjpeg/v4l2uvc.h>
00055 #include <captureMjpeg/utils.h>
00056 }
00057
00058
00059 #include <IRobot.ice.H>
00060
00061
00062
00063 class IRobotI : public Robots::IRobot
00064 {
00065 public:
00066 IRobotI(int debug = 1);
00067 virtual ~IRobotI();
00068
00069 virtual float getSpeed(const Ice::Current&);
00070 virtual short setSpeed(const float speed, const Ice::Current&);
00071 virtual float getSteering(const Ice::Current&);
00072 virtual short setSteering(const float steeringPos, const Ice::Current&);
00073 virtual ImageIceMod::ImageIce getImageSensor(const short i, const bool useColor, const Ice::Current&);
00074 virtual ImageIceMod::DimsIce getImageSensorDims(const short i, const Ice::Current&);
00075 virtual float getSensorValue(const short i, const Ice::Current&);
00076 virtual void motorsOff(const short i, const Ice::Current&);
00077 virtual void setMotor(const short i, const float val, const Ice::Current&);
00078 virtual short sendRawCmd(const std::string& data, const Ice::Current&);
00079 virtual void playSong(const short song, const Ice::Current&);
00080 virtual void shutdown(const Ice::Current&);
00081 virtual void sendStart(const Ice::Current&);
00082 virtual void setMode(const Robots::IRobotModes demo, const Ice::Current&);
00083 virtual void setDemo(const short demo, const Ice::Current&);
00084 virtual void setLED(const short led, const short color, const short intensity, const Ice::Current&);
00085
00086 virtual bool getSensors(float& xPos, float& yPos, float& ori, const Ice::Current&)
00087 { return false; }
00088 virtual bool getDistanceAngle(float& dist, float& ang, const Ice::Current&);
00089
00090 void sendDriveCommand();
00091
00092
00093 void sendDirectDriveCommand();
00094
00095 private:
00096 float itsCurrentSpeed;
00097 float itsCurrentSteering;
00098 int itsSerialFd;
00099 int itsDebug;
00100 int itsVideoInit;
00101
00102 vdIn* itsVideoIn;
00103
00104
00105
00106 };
00107
00108 #endif