Khangai Robot Play - Naive  01
THe naive play of the Khangai Robot
sensor.h
Go to the documentation of this file.
1 /*
2  * sensor.h
3  *
4  * Created : 11/29/2018
5  * Author : n-is
6  * email : 073bex422.nischal@pcampus.edu.np
7  */
8 
9 #ifndef _SENSOR_H_
10 #define _SENSOR_H_
11 
12 enum class SensorName
13 {
14  IMU1,
15  Compass1,
16 
17  XEncoder,
18  YEncoder,
19  XLidar,
20  YLidar
21 };
22 
28 template <class T>
29 class Sensor
30 {
31 public:
32  Sensor() = default;
33  Sensor(Sensor &&) = default;
34  Sensor(const Sensor &) = default;
35  Sensor &operator=(Sensor &&) = default;
36  Sensor &operator=(const Sensor &) = default;
37  virtual ~Sensor() { }
38 
39  virtual int init() = 0;
40  SensorName get_Name() { return name_; }
41  virtual T read() = 0;
42  virtual bool available() = 0;
43  virtual void denit() = 0;
44 
45  friend bool operator==(Sensor &sen1, Sensor &sen2) { return (sen1.name_ == sen2.name_); }
46  friend bool operator!=(Sensor &sen1, Sensor &sen2) { return (sen1.name_ != sen2.name_); }
47 
48 protected:
50 };
51 
52 #endif // !_SENSOR_H_
: An abstract class from which all the sensors must implement
Definition: sensor.h:29
SensorName get_Name()
Definition: sensor.h:40
Sensor()=default
virtual int init()=0
friend bool operator!=(Sensor &sen1, Sensor &sen2)
Definition: sensor.h:46
virtual void denit()=0
Sensor & operator=(Sensor &&)=default
SensorName
Definition: sensor.h:12
virtual bool available()=0
friend bool operator==(Sensor &sen1, Sensor &sen2)
Definition: sensor.h:45
virtual T read()=0
SensorName name_
Definition: sensor.h:49
virtual ~Sensor()
Definition: sensor.h:37