a

Dependencies:   mbed mbed-rtos

Committer:
alexpirciu
Date:
Thu Mar 28 07:44:42 2019 +0000
Revision:
1:ceee5a608e7c
assa

Who changed what in which revision?

UserRevisionLine numberNew 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