Alex Pirciu
/
BFMC
a
include/Examples/Sensors/sensorpublisher.hpp@1:ceee5a608e7c, 2019-03-28 (annotated)
- Committer:
- alexpirciu
- Date:
- Thu Mar 28 07:44:42 2019 +0000
- Revision:
- 1:ceee5a608e7c
assa
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alexpirciu | 1:ceee5a608e7c | 1 | /** |
alexpirciu | 1:ceee5a608e7c | 2 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 3 | * @file SensorPublisher.hpp |
alexpirciu | 1:ceee5a608e7c | 4 | * @author RBRO/PJ-IU |
alexpirciu | 1:ceee5a608e7c | 5 | * @version V1.0.0 |
alexpirciu | 1:ceee5a608e7c | 6 | * @date day-month-year |
alexpirciu | 1:ceee5a608e7c | 7 | * @brief This file contains the class declaration for the sensor publisher |
alexpirciu | 1:ceee5a608e7c | 8 | * functionality. Because template classes are used, the code was |
alexpirciu | 1:ceee5a608e7c | 9 | * placed in a corresponding .inl file and not in a .cpp one. |
alexpirciu | 1:ceee5a608e7c | 10 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 11 | */ |
alexpirciu | 1:ceee5a608e7c | 12 | |
alexpirciu | 1:ceee5a608e7c | 13 | /* Include guard */ |
alexpirciu | 1:ceee5a608e7c | 14 | #ifndef SENSOR_PUBLISHER_HPP |
alexpirciu | 1:ceee5a608e7c | 15 | #define SENSOR_PUBLISHER_HPP |
alexpirciu | 1:ceee5a608e7c | 16 | |
alexpirciu | 1:ceee5a608e7c | 17 | /* The mbed library */ |
alexpirciu | 1:ceee5a608e7c | 18 | #include <mbed.h> |
alexpirciu | 1:ceee5a608e7c | 19 | /* Container that encapsulates fixed size arrays */ |
alexpirciu | 1:ceee5a608e7c | 20 | #include <array> |
alexpirciu | 1:ceee5a608e7c | 21 | /* String types, character traits and a set of converting functions */ |
alexpirciu | 1:ceee5a608e7c | 22 | #include <string> |
alexpirciu | 1:ceee5a608e7c | 23 | #include<TaskManager/taskmanager.hpp> |
alexpirciu | 1:ceee5a608e7c | 24 | |
alexpirciu | 1:ceee5a608e7c | 25 | |
alexpirciu | 1:ceee5a608e7c | 26 | namespace examples{ |
alexpirciu | 1:ceee5a608e7c | 27 | namespace sensors |
alexpirciu | 1:ceee5a608e7c | 28 | { |
alexpirciu | 1:ceee5a608e7c | 29 | //! ProximityPublisher class. |
alexpirciu | 1:ceee5a608e7c | 30 | /*! |
alexpirciu | 1:ceee5a608e7c | 31 | * It inherits class task::CTask. |
alexpirciu | 1:ceee5a608e7c | 32 | * It is used for publishing proximity sensor values. |
alexpirciu | 1:ceee5a608e7c | 33 | */ |
alexpirciu | 1:ceee5a608e7c | 34 | template <class C_Sensor,uint Nr_Senrsor> |
alexpirciu | 1:ceee5a608e7c | 35 | class ProximityPublisher:public task::CTask |
alexpirciu | 1:ceee5a608e7c | 36 | { |
alexpirciu | 1:ceee5a608e7c | 37 | public: |
alexpirciu | 1:ceee5a608e7c | 38 | /* Sensor array */ |
alexpirciu | 1:ceee5a608e7c | 39 | using SensorArrayT = std::array<C_Sensor*,Nr_Senrsor>; |
alexpirciu | 1:ceee5a608e7c | 40 | /* Constructor */ |
alexpirciu | 1:ceee5a608e7c | 41 | ProximityPublisher(uint32_t,SensorArrayT,Serial&); |
alexpirciu | 1:ceee5a608e7c | 42 | /* Serial callback attached to object */ |
alexpirciu | 1:ceee5a608e7c | 43 | static void staticSerialCallback(void* obj,char const * a, char * b); |
alexpirciu | 1:ceee5a608e7c | 44 | protected: |
alexpirciu | 1:ceee5a608e7c | 45 | /* Run method */ |
alexpirciu | 1:ceee5a608e7c | 46 | void _run(); |
alexpirciu | 1:ceee5a608e7c | 47 | /* Serial callback */ |
alexpirciu | 1:ceee5a608e7c | 48 | void serialCallback(char const * a, char * b); |
alexpirciu | 1:ceee5a608e7c | 49 | private: |
alexpirciu | 1:ceee5a608e7c | 50 | /* Sensor array */ |
alexpirciu | 1:ceee5a608e7c | 51 | SensorArrayT m_sensors; |
alexpirciu | 1:ceee5a608e7c | 52 | /* Reference to serial object */ |
alexpirciu | 1:ceee5a608e7c | 53 | Serial& m_serial; |
alexpirciu | 1:ceee5a608e7c | 54 | /* Active flag */ |
alexpirciu | 1:ceee5a608e7c | 55 | bool m_isActivate; |
alexpirciu | 1:ceee5a608e7c | 56 | }; |
alexpirciu | 1:ceee5a608e7c | 57 | }; // namespace sensors |
alexpirciu | 1:ceee5a608e7c | 58 | }; // namespace examples |
alexpirciu | 1:ceee5a608e7c | 59 | |
alexpirciu | 1:ceee5a608e7c | 60 | #include "sensorpublisher.inl" |
alexpirciu | 1:ceee5a608e7c | 61 | #endif |