00001
00002
00003
00004
00005
00006
00007 #ifndef SENSOR_H_
00008 #define SENSOR_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 Sensor
00024 {
00025 public:
00031 inline S16 get(void) const { return static_cast<S16>(sensor_adc(Sensor::getPort())); }
00032
00033 protected:
00039 inline ePortS getPort(void) const { return mPort; }
00040
00047 explicit Sensor(ePortS port, ePower power=POWER_OFF): mPort(port)
00048 {
00049 AssertDeviceConstructor("Sensor Assert");
00050 nxt_avr_set_input_power(port, power);
00051 }
00052
00058 virtual ~Sensor(void) { nxt_avr_set_input_power(mPort, POWER_OFF); }
00059
00060 private:
00061 ePortS mPort;
00062 };
00063 }
00064
00065 #endif