ECRobot C++ API for LEGO MINDSTORMS NXT
1.0.10
|
00001 // 00002 // NxtColorSensor.h 00003 // 00004 // Copyright 2009 by Takashi Chikamasa, Jon C. Martin, Robert W. Kramer, Marcel Hein and Benjamin Bode 00005 // 00006 00007 #ifndef NXTCOLORSENSOR_H_ 00008 #define NXTCOLORSENSOR_H_ 00009 00010 #include "Port.h" 00011 00012 extern "C" 00013 { 00014 #include "ecrobot_interface.h" 00015 #include "rtoscalls.h" 00016 }; 00017 00018 namespace ecrobot 00019 { 00023 class NxtColorSensor 00024 { 00025 public: 00029 enum eSensorMode 00030 { 00031 _COLORSENSOR = 0, 00032 _LIGHTSENSOR_RED, 00033 _LIGHTSENSOR_GREEN, 00034 _LIGHTSENSOR_BLUE, 00035 _LIGHTSENSOR_WHITE, 00036 _LIGHTSENSOR_NONE, 00037 _DEACTIVATE 00038 }; 00039 00043 enum eColorNumber 00044 { 00045 _BLACK = 0, 00046 _BLUE, 00047 _GREEN, 00048 _YELLOW, 00049 _ORANGE, 00050 _RED, 00051 _WHITE, 00052 _UNKNOWN = 99 00053 }; 00054 00065 explicit NxtColorSensor(ePortS port, eSensorMode mode=_COLORSENSOR); 00066 00072 virtual ~NxtColorSensor(void); 00073 00080 void processBackground(void); 00081 00087 void setSensorMode(eSensorMode mode); 00088 00094 inline eSensorMode getSensorMode(void) const { return mSensorMode; } 00095 00101 S16 get(void) const; 00102 00108 S16 getBrightness(void) const; 00109 00116 eColorNumber getColorNumber(void) const; 00117 00125 void getRawColor(S16 rgb[3]) const; 00126 00127 private: 00128 ePortS mPort; 00129 eSensorMode mSensorMode; 00130 }; 00131 } 00132 00133 #endif