Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
patrick_duc
Date:
Mon Aug 27 16:32:50 2018 +0000
Revision:
13:5414193da1de
Classes de gestion de la database

Who changed what in which revision?

UserRevisionLine numberNew contents of line
patrick_duc 13:5414193da1de 1 #ifndef __CHANNEL_HPP__
patrick_duc 13:5414193da1de 2 #define __CHANNEL_HPP__
patrick_duc 13:5414193da1de 3
patrick_duc 13:5414193da1de 4 #include "mbed.h"
patrick_duc 13:5414193da1de 5 #include <iostream>
patrick_duc 13:5414193da1de 6 #include <string>
patrick_duc 13:5414193da1de 7 #include "ChannelExceptions.hpp"
patrick_duc 13:5414193da1de 8
patrick_duc 13:5414193da1de 9
patrick_duc 13:5414193da1de 10 class Channel {
patrick_duc 13:5414193da1de 11
patrick_duc 13:5414193da1de 12 public:
patrick_duc 13:5414193da1de 13 typedef uint8_t MISNET_CODE ;
patrick_duc 13:5414193da1de 14
patrick_duc 13:5414193da1de 15 enum DEVICE_TYPE {
patrick_duc 13:5414193da1de 16 SENSOR = 1,
patrick_duc 13:5414193da1de 17 ACTUATOR = 2,
patrick_duc 13:5414193da1de 18 RECORDER = 3
patrick_duc 13:5414193da1de 19 } ;
patrick_duc 13:5414193da1de 20
patrick_duc 13:5414193da1de 21 // A compléter au fur et a mesure et remonter l'info sur les centres applicatifs
patrick_duc 13:5414193da1de 22 enum DEVICE_ID {
patrick_duc 13:5414193da1de 23 NOT_IDENTIFIED = 0 , // Configuration nouvelle ou non référencée
patrick_duc 13:5414193da1de 24 IKS01A2 = 1 , // Liste des composants
patrick_duc 13:5414193da1de 25 SMART_TERMINAL = 2 // BME280 + ....
patrick_duc 13:5414193da1de 26 } ;
patrick_duc 13:5414193da1de 27
patrick_duc 13:5414193da1de 28 typedef uint8_t GROUP ;
patrick_duc 13:5414193da1de 29
patrick_duc 13:5414193da1de 30 typedef uint16_t VALUE_TYPE ;
patrick_duc 13:5414193da1de 31
patrick_duc 13:5414193da1de 32 enum STATE {
patrick_duc 13:5414193da1de 33 ENABLE_ = 1, // ACTIVE
patrick_duc 13:5414193da1de 34 DISABLE_ = 0 // ASLEEP
patrick_duc 13:5414193da1de 35 } ;
patrick_duc 13:5414193da1de 36
patrick_duc 13:5414193da1de 37 enum ACCESS_TYPE {
patrick_duc 13:5414193da1de 38 GPIO_ = 1,
patrick_duc 13:5414193da1de 39 I2C_ = 2,
patrick_duc 13:5414193da1de 40 SPI_ = 3,
patrick_duc 13:5414193da1de 41 UART_ = 4
patrick_duc 13:5414193da1de 42 } ;
patrick_duc 13:5414193da1de 43
patrick_duc 13:5414193da1de 44 typedef uint8_t ACCESS_PIN ;
patrick_duc 13:5414193da1de 45
patrick_duc 13:5414193da1de 46 enum UP_MODE {
patrick_duc 13:5414193da1de 47 BY_VALUE = 1, // wakeup by irq
patrick_duc 13:5414193da1de 48 BY_THRESHOLD = 2 // wakeup by watchdog timer
patrick_duc 13:5414193da1de 49 } ;
patrick_duc 13:5414193da1de 50
patrick_duc 13:5414193da1de 51 enum REQUEST_MODE {
patrick_duc 13:5414193da1de 52 IRQ_ = 1, // wakeup by irq
patrick_duc 13:5414193da1de 53 TIME_ = 2 // wakeup by watchdog timer
patrick_duc 13:5414193da1de 54 } ;
patrick_duc 13:5414193da1de 55
patrick_duc 13:5414193da1de 56 uint32_t TIMER_DIVIDER ;
patrick_duc 13:5414193da1de 57
patrick_duc 13:5414193da1de 58 typedef float THRESHOLD_DELTA ;
patrick_duc 13:5414193da1de 59 typedef float THRESHOLD_UP ;
patrick_duc 13:5414193da1de 60 typedef float THRESHOLD_DOWN ;
patrick_duc 13:5414193da1de 61
patrick_duc 13:5414193da1de 62 enum ACTION {
patrick_duc 13:5414193da1de 63 MESSAGE = 1, // Send Message
patrick_duc 13:5414193da1de 64 MESSAGERELAY = 2 // Send Message + ON/OFF internal relay
patrick_duc 13:5414193da1de 65 } ;
patrick_duc 13:5414193da1de 66
patrick_duc 13:5414193da1de 67 enum OUTPUT_MODE {
patrick_duc 13:5414193da1de 68 IO = 1, // ON/OFF
patrick_duc 13:5414193da1de 69 PWD = 2 // PWD modulation
patrick_duc 13:5414193da1de 70 } ;
patrick_duc 13:5414193da1de 71
patrick_duc 13:5414193da1de 72 // Constructor
patrick_duc 13:5414193da1de 73 Channel( DEVICE_TYPE type,
patrick_duc 13:5414193da1de 74 MISNET_CODE misnet_code,
patrick_duc 13:5414193da1de 75 STATE state,
patrick_duc 13:5414193da1de 76 ACCESS_TYPE access_type,
patrick_duc 13:5414193da1de 77 REQUEST_MODE request_mode,
patrick_duc 13:5414193da1de 78 UP_MODE up_mode,
patrick_duc 13:5414193da1de 79 ACCESS_PIN access_pins[6],
patrick_duc 13:5414193da1de 80 ACTION action,
patrick_duc 13:5414193da1de 81 OUTPUT_MODE output_mode,
patrick_duc 13:5414193da1de 82 std::string comment);
patrick_duc 13:5414193da1de 83
patrick_duc 13:5414193da1de 84 DEVICE_TYPE getDeviceType() {
patrick_duc 13:5414193da1de 85 return this->device_type;
patrick_duc 13:5414193da1de 86 }
patrick_duc 13:5414193da1de 87
patrick_duc 13:5414193da1de 88 MISNET_CODE getMisnetCode() {
patrick_duc 13:5414193da1de 89 return this->misnet_code;
patrick_duc 13:5414193da1de 90 }
patrick_duc 13:5414193da1de 91
patrick_duc 13:5414193da1de 92 STATE getState() {
patrick_duc 13:5414193da1de 93 return this->state;
patrick_duc 13:5414193da1de 94 }
patrick_duc 13:5414193da1de 95
patrick_duc 13:5414193da1de 96 ACCESS_TYPE getAccessType() {
patrick_duc 13:5414193da1de 97 return this->access_type;
patrick_duc 13:5414193da1de 98 }
patrick_duc 13:5414193da1de 99
patrick_duc 13:5414193da1de 100 REQUEST_MODE getRequestMode() {
patrick_duc 13:5414193da1de 101 return this->request_mode;
patrick_duc 13:5414193da1de 102 }
patrick_duc 13:5414193da1de 103
patrick_duc 13:5414193da1de 104 UP_MODE getUpMode() {
patrick_duc 13:5414193da1de 105 return this->up_mode;
patrick_duc 13:5414193da1de 106 }
patrick_duc 13:5414193da1de 107
patrick_duc 13:5414193da1de 108 ACCESS_PIN* getAccessPins() {
patrick_duc 13:5414193da1de 109 return this->access_pins;
patrick_duc 13:5414193da1de 110 }
patrick_duc 13:5414193da1de 111
patrick_duc 13:5414193da1de 112 ACCESS_PIN getAccessPin(short index) {
patrick_duc 13:5414193da1de 113 /*
patrick_duc 13:5414193da1de 114 if (index < 1 || index > 6) {
patrick_duc 13:5414193da1de 115 throw ChannelException();
patrick_duc 13:5414193da1de 116 }
patrick_duc 13:5414193da1de 117 */
patrick_duc 13:5414193da1de 118
patrick_duc 13:5414193da1de 119 return this->access_pins[index - 1];
patrick_duc 13:5414193da1de 120 }
patrick_duc 13:5414193da1de 121
patrick_duc 13:5414193da1de 122 ACTION getAction() {
patrick_duc 13:5414193da1de 123 return this->action;
patrick_duc 13:5414193da1de 124 }
patrick_duc 13:5414193da1de 125
patrick_duc 13:5414193da1de 126 OUTPUT_MODE getOutputMode() {
patrick_duc 13:5414193da1de 127 return this->output_mode;
patrick_duc 13:5414193da1de 128 }
patrick_duc 13:5414193da1de 129
patrick_duc 13:5414193da1de 130 std::string getComment() {
patrick_duc 13:5414193da1de 131 return this->comment;
patrick_duc 13:5414193da1de 132 }
patrick_duc 13:5414193da1de 133
patrick_duc 13:5414193da1de 134 friend std::ostream& operator<<(std::ostream&, const Channel &);
patrick_duc 13:5414193da1de 135
patrick_duc 13:5414193da1de 136
patrick_duc 13:5414193da1de 137 private:
patrick_duc 13:5414193da1de 138 DEVICE_TYPE device_type;
patrick_duc 13:5414193da1de 139 MISNET_CODE misnet_code;
patrick_duc 13:5414193da1de 140 STATE state;
patrick_duc 13:5414193da1de 141 ACCESS_TYPE access_type;
patrick_duc 13:5414193da1de 142 ACCESS_PIN access_pins[6];
patrick_duc 13:5414193da1de 143 REQUEST_MODE request_mode;
patrick_duc 13:5414193da1de 144 UP_MODE up_mode;
patrick_duc 13:5414193da1de 145 /* The following fields are currently unused.
patrick_duc 13:5414193da1de 146 uint32_t timer_divider;
patrick_duc 13:5414193da1de 147 uint32_t threshold_delta;
patrick_duc 13:5414193da1de 148 uint32_t threshold_up;
patrick_duc 13:5414193da1de 149 uint32_t threshold_down;
patrick_duc 13:5414193da1de 150 */
patrick_duc 13:5414193da1de 151 ACTION action;
patrick_duc 13:5414193da1de 152 OUTPUT_MODE output_mode;
patrick_duc 13:5414193da1de 153 std::string comment;
patrick_duc 13:5414193da1de 154 };
patrick_duc 13:5414193da1de 155
patrick_duc 13:5414193da1de 156 #endif // __CHANNEL_HPP__