Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
Channel.hpp@13:5414193da1de, 2018-08-27 (annotated)
- 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?
User | Revision | Line number | New 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__ |