Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
patrick_duc
Date:
Tue Oct 16 11:28:33 2018 +0000
Branch:
Integration
Revision:
37:b565750d9978
Parent:
32:3bef9b81f639
Child:
38:9b43b2415093
Suite d'integration

Who changed what in which revision?

UserRevisionLine numberNew contents of line
patrick_duc 13:5414193da1de 1 #ifndef __COMPONENT_HPP__
patrick_duc 13:5414193da1de 2 #define __COMPONENT_HPP__
patrick_duc 13:5414193da1de 3
patrick_duc 20:b0281e8a375a 4 #include "Context.h"
patrick_duc 20:b0281e8a375a 5
patrick_duc 37:b565750d9978 6
patrick_duc 13:5414193da1de 7 #include <vector>
patrick_duc 20:b0281e8a375a 8 #include <sstream>
patrick_duc 20:b0281e8a375a 9
patrick_duc 19:4b147d8f9164 10 #include "Service.hpp"
patrick_duc 13:5414193da1de 11
patrick_duc 20:b0281e8a375a 12
patrick_duc 20:b0281e8a375a 13 namespace misnet {
patrick_duc 20:b0281e8a375a 14 class Component;
patrick_duc 20:b0281e8a375a 15 }
patrick_duc 20:b0281e8a375a 16
patrick_duc 37:b565750d9978 17 class misnet::Component {
patrick_duc 37:b565750d9978 18 public:
patrick_duc 20:b0281e8a375a 19
patrick_duc 37:b565750d9978 20 enum COMPONENT_ID {
patrick_duc 37:b565750d9978 21 HTS221 = 1,
patrick_duc 37:b565750d9978 22 LPS22HB = 2,
patrick_duc 37:b565750d9978 23 LSM303A = 3,
patrick_duc 37:b565750d9978 24 LSM6DSL = 4,
patrick_duc 37:b565750d9978 25 BME280 = 5,
patrick_duc 37:b565750d9978 26 DS18B20 = 6
patrick_duc 37:b565750d9978 27 };
patrick_duc 37:b565750d9978 28
patrick_duc 37:b565750d9978 29 Component(COMPONENT_ID id, std::vector<misnet::Service*>& services) {
patrick_duc 37:b565750d9978 30 this->id = id;
patrick_duc 37:b565750d9978 31 this->services = services;
patrick_duc 37:b565750d9978 32 }
patrick_duc 37:b565750d9978 33
patrick_duc 37:b565750d9978 34 std::vector<misnet::Service*>& getServices() {
patrick_duc 37:b565750d9978 35 return this->services;
patrick_duc 37:b565750d9978 36 }
patrick_duc 13:5414193da1de 37
patrick_duc 37:b565750d9978 38 COMPONENT_ID getId() {
patrick_duc 37:b565750d9978 39 return this->id;
patrick_duc 37:b565750d9978 40 }
patrick_duc 37:b565750d9978 41
patrick_duc 37:b565750d9978 42 // Loop on all component services to read their value
patrick_duc 37:b565750d9978 43 void readValues(std::vector<misnet::Service *> servicesWithAsynchronousRead) {
patrick_duc 37:b565750d9978 44 for (std::vector<misnet::Service*>::iterator
patrick_duc 37:b565750d9978 45 srvIt = this->services.begin();
patrick_duc 37:b565750d9978 46 srvIt != this->services.end();
patrick_duc 37:b565750d9978 47 srvIt++) {
patrick_duc 37:b565750d9978 48 (*srvIt)->readValue(servicesWithAsynchronousRead);
patrick_duc 13:5414193da1de 49 }
patrick_duc 37:b565750d9978 50 }
patrick_duc 37:b565750d9978 51
patrick_duc 37:b565750d9978 52 std::string toString() {
patrick_duc 37:b565750d9978 53 std::ostringstream stringStream;
patrick_duc 37:b565750d9978 54 stringStream << "Component id : " << this->id << std::endl;
patrick_duc 37:b565750d9978 55
patrick_duc 37:b565750d9978 56 for (std::vector<misnet::Service*>::iterator it = services.begin(); it != services.end(); it++) {
patrick_duc 37:b565750d9978 57 misnet::Service * service = *it;
patrick_duc 37:b565750d9978 58 stringStream << service->toString() << std::endl;
patrick_duc 13:5414193da1de 59 }
patrick_duc 13:5414193da1de 60
patrick_duc 37:b565750d9978 61 return stringStream.str();
patrick_duc 37:b565750d9978 62 }
patrick_duc 13:5414193da1de 63
patrick_duc 13:5414193da1de 64
patrick_duc 37:b565750d9978 65 private:
patrick_duc 37:b565750d9978 66 COMPONENT_ID id;
patrick_duc 37:b565750d9978 67 std::vector<misnet::Service*> services;
patrick_duc 13:5414193da1de 68 };
patrick_duc 13:5414193da1de 69
patrick_duc 37:b565750d9978 70 #endif // __COMPONENT_HPP__