Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
ExtMemory.cpp@13:5414193da1de, 2018-08-27 (annotated)
- Committer:
- patrick_duc
- Date:
- Mon Aug 27 16:32:50 2018 +0000
- Revision:
- 13:5414193da1de
- Parent:
- 10:1b37e3b41947
- Child:
- 18:d5e7e56b0a0d
Classes de gestion de la database
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
FCH_31 | 10:1b37e3b41947 | 1 | /* |
FCH_31 | 10:1b37e3b41947 | 2 | * MISNet |
FCH_31 | 10:1b37e3b41947 | 3 | * |
FCH_31 | 10:1b37e3b41947 | 4 | * ExtMemory: Accès EEPROM |
FCH_31 | 10:1b37e3b41947 | 5 | * |
FCH_31 | 10:1b37e3b41947 | 6 | * Created on: August 17, 2018 Author: Francis CHATAIN |
FCH_31 | 10:1b37e3b41947 | 7 | * |
FCH_31 | 10:1b37e3b41947 | 8 | */ |
FCH_31 | 10:1b37e3b41947 | 9 | |
FCH_31 | 10:1b37e3b41947 | 10 | |
FCH_31 | 10:1b37e3b41947 | 11 | |
FCH_31 | 10:1b37e3b41947 | 12 | |
FCH_31 | 10:1b37e3b41947 | 13 | // ===================================== Includes |
FCH_31 | 10:1b37e3b41947 | 14 | #include "ExtMemory.h" |
patrick_duc | 13:5414193da1de | 15 | #include "Channel.hpp" |
patrick_duc | 13:5414193da1de | 16 | #include "Component.hpp" |
patrick_duc | 13:5414193da1de | 17 | #include "Payload.hpp" |
FCH_31 | 10:1b37e3b41947 | 18 | #include "DataBase.h" |
FCH_31 | 10:1b37e3b41947 | 19 | |
FCH_31 | 10:1b37e3b41947 | 20 | // ===================================== Method of class |
FCH_31 | 10:1b37e3b41947 | 21 | |
FCH_31 | 10:1b37e3b41947 | 22 | |
FCH_31 | 10:1b37e3b41947 | 23 | void ExtMemory::read (DataBase* dataBase) { |
FCH_31 | 10:1b37e3b41947 | 24 | // read eeprom and initialize database |
FCH_31 | 10:1b37e3b41947 | 25 | //(Example) |
patrick_duc | 13:5414193da1de | 26 | |
patrick_duc | 13:5414193da1de | 27 | printf( "*** EXTMEM Reading external memory ***\n"); |
patrick_duc | 13:5414193da1de | 28 | |
patrick_duc | 13:5414193da1de | 29 | dataBase->setRadioParameter ( (uint32_t)2400000000UL, LORA_BW_0400, LORA_SF7, (int8_t)-18, (uint8_t)100, (uint16_t)2000) ; |
patrick_duc | 13:5414193da1de | 30 | |
patrick_duc | 13:5414193da1de | 31 | |
patrick_duc | 13:5414193da1de | 32 | /* ****************************************************************************** |
patrick_duc | 13:5414193da1de | 33 | In this example, the terminal holds 3 components : |
patrick_duc | 13:5414193da1de | 34 | * the first is a BME280 component, containing 3 sensors : |
patrick_duc | 13:5414193da1de | 35 | * a presence sensor (IPSO code = 102) |
patrick_duc | 13:5414193da1de | 36 | * a temperature sensor (IPSO code = 103) |
patrick_duc | 13:5414193da1de | 37 | * a humidity sensor (IPSO code = 104) |
patrick_duc | 13:5414193da1de | 38 | * the second is a LSM303A component, containing 2 sensors : |
patrick_duc | 13:5414193da1de | 39 | * an accelerometer sensor (IPSO code = 113) |
patrick_duc | 13:5414193da1de | 40 | * a barometer sensor (IPSO code = 115) |
patrick_duc | 13:5414193da1de | 41 | * the third one is a DS18B20 containing an actuator (audio, IPCO code = 139). |
patrick_duc | 13:5414193da1de | 42 | |
patrick_duc | 13:5414193da1de | 43 | The terminal is of type IOT_PAYLOAD_3 (why not ?). |
patrick_duc | 13:5414193da1de | 44 | ****************************************************************************** */ |
FCH_31 | 10:1b37e3b41947 | 45 | |
FCH_31 | 10:1b37e3b41947 | 46 | |
patrick_duc | 13:5414193da1de | 47 | /* ************************************************************************************** |
patrick_duc | 13:5414193da1de | 48 | Pour Hoel et Francis, de la part de Patrick : je me doute bien que les composants BME280, |
patrick_duc | 13:5414193da1de | 49 | LSM303A et DS18B20 ne contiennent pas les devices décrits ici, c'est juste un exemple ;-) |
patrick_duc | 13:5414193da1de | 50 | ************************************************************************************** */ |
patrick_duc | 13:5414193da1de | 51 | |
patrick_duc | 13:5414193da1de | 52 | Channel::ACCESS_PIN access_pins[6] = { 1, 2, 3, 4, 5, 6 }; |
patrick_duc | 13:5414193da1de | 53 | |
patrick_duc | 13:5414193da1de | 54 | // Construction du premier channel du premier composant |
patrick_duc | 13:5414193da1de | 55 | // ---------------------------------------------------- |
patrick_duc | 13:5414193da1de | 56 | Channel* channel1 = new Channel(Channel::SENSOR, |
patrick_duc | 13:5414193da1de | 57 | 102, |
patrick_duc | 13:5414193da1de | 58 | Channel::ENABLE_, |
patrick_duc | 13:5414193da1de | 59 | Channel::UART_, |
patrick_duc | 13:5414193da1de | 60 | Channel::IRQ_, |
patrick_duc | 13:5414193da1de | 61 | Channel::BY_VALUE, |
patrick_duc | 13:5414193da1de | 62 | access_pins, |
patrick_duc | 13:5414193da1de | 63 | Channel::MESSAGE, |
patrick_duc | 13:5414193da1de | 64 | Channel::IO, |
patrick_duc | 13:5414193da1de | 65 | "Premier channel du composant BME280 sur cette payload"); |
patrick_duc | 13:5414193da1de | 66 | |
patrick_duc | 13:5414193da1de | 67 | // Construction du deuxieme channel du premier composant |
patrick_duc | 13:5414193da1de | 68 | // ----------------------------------------------------- |
patrick_duc | 13:5414193da1de | 69 | Channel* channel2 = new Channel(Channel::SENSOR, |
patrick_duc | 13:5414193da1de | 70 | 103, |
patrick_duc | 13:5414193da1de | 71 | Channel::ENABLE_, |
patrick_duc | 13:5414193da1de | 72 | Channel::UART_, |
patrick_duc | 13:5414193da1de | 73 | Channel::IRQ_, |
patrick_duc | 13:5414193da1de | 74 | Channel::BY_VALUE, |
patrick_duc | 13:5414193da1de | 75 | access_pins, |
patrick_duc | 13:5414193da1de | 76 | Channel::MESSAGE, |
patrick_duc | 13:5414193da1de | 77 | Channel::IO, |
patrick_duc | 13:5414193da1de | 78 | "Deuxieme channel du composant BME280 sur cette payload"); |
patrick_duc | 13:5414193da1de | 79 | |
patrick_duc | 13:5414193da1de | 80 | // Construction du troisieme channel du premier composant |
patrick_duc | 13:5414193da1de | 81 | // ------------------------------------------------------ |
patrick_duc | 13:5414193da1de | 82 | Channel* channel3 = new Channel(Channel::SENSOR, |
patrick_duc | 13:5414193da1de | 83 | 104, |
patrick_duc | 13:5414193da1de | 84 | Channel::ENABLE_, |
patrick_duc | 13:5414193da1de | 85 | Channel::UART_, |
patrick_duc | 13:5414193da1de | 86 | Channel::IRQ_, |
patrick_duc | 13:5414193da1de | 87 | Channel::BY_VALUE, |
patrick_duc | 13:5414193da1de | 88 | access_pins, |
patrick_duc | 13:5414193da1de | 89 | Channel::MESSAGE, |
patrick_duc | 13:5414193da1de | 90 | Channel::IO, |
patrick_duc | 13:5414193da1de | 91 | "Troisieme channel du composant BME280 sur cette payload"); |
patrick_duc | 13:5414193da1de | 92 | |
patrick_duc | 13:5414193da1de | 93 | // Construction du premier composant |
patrick_duc | 13:5414193da1de | 94 | // --------------------------------- |
patrick_duc | 13:5414193da1de | 95 | std::vector<Channel*> channels = std::vector<Channel*>(); |
patrick_duc | 13:5414193da1de | 96 | channels.push_back(channel1); |
patrick_duc | 13:5414193da1de | 97 | channels.push_back(channel2); |
patrick_duc | 13:5414193da1de | 98 | channels.push_back(channel3); |
patrick_duc | 13:5414193da1de | 99 | |
patrick_duc | 13:5414193da1de | 100 | Component component1 = Component(Component::BME280, channels); |
patrick_duc | 13:5414193da1de | 101 | |
patrick_duc | 13:5414193da1de | 102 | |
patrick_duc | 13:5414193da1de | 103 | // Construction du premier channel du deuxieme composant |
patrick_duc | 13:5414193da1de | 104 | // ----------------------------------------------------- |
patrick_duc | 13:5414193da1de | 105 | Channel* channel4 = new Channel(Channel::SENSOR, |
patrick_duc | 13:5414193da1de | 106 | 113, |
patrick_duc | 13:5414193da1de | 107 | Channel::ENABLE_, |
patrick_duc | 13:5414193da1de | 108 | Channel::UART_, |
patrick_duc | 13:5414193da1de | 109 | Channel::IRQ_, |
patrick_duc | 13:5414193da1de | 110 | Channel::BY_VALUE, |
patrick_duc | 13:5414193da1de | 111 | access_pins, |
patrick_duc | 13:5414193da1de | 112 | Channel::MESSAGE, |
patrick_duc | 13:5414193da1de | 113 | Channel::IO, |
patrick_duc | 13:5414193da1de | 114 | "Premier channel du composant LSM303A sur cette payload"); |
patrick_duc | 13:5414193da1de | 115 | |
patrick_duc | 13:5414193da1de | 116 | // Construction du deuxieme channel du deuxieme composant |
patrick_duc | 13:5414193da1de | 117 | // ------------------------------------------------------ |
patrick_duc | 13:5414193da1de | 118 | Channel* channel5 = new Channel(Channel::SENSOR, |
patrick_duc | 13:5414193da1de | 119 | 115, |
patrick_duc | 13:5414193da1de | 120 | Channel::ENABLE_, |
patrick_duc | 13:5414193da1de | 121 | Channel::UART_, |
patrick_duc | 13:5414193da1de | 122 | Channel::IRQ_, |
patrick_duc | 13:5414193da1de | 123 | Channel::BY_VALUE, |
patrick_duc | 13:5414193da1de | 124 | access_pins, |
patrick_duc | 13:5414193da1de | 125 | Channel::MESSAGE, |
patrick_duc | 13:5414193da1de | 126 | Channel::IO, |
patrick_duc | 13:5414193da1de | 127 | "Deuxieme channel du composant LSM303A sur cette payload"); |
patrick_duc | 13:5414193da1de | 128 | |
patrick_duc | 13:5414193da1de | 129 | // Construction du deuxieme composant |
patrick_duc | 13:5414193da1de | 130 | // ---------------------------------- |
patrick_duc | 13:5414193da1de | 131 | channels.clear(); |
patrick_duc | 13:5414193da1de | 132 | channels.push_back(channel4); |
patrick_duc | 13:5414193da1de | 133 | channels.push_back(channel5); |
patrick_duc | 13:5414193da1de | 134 | |
patrick_duc | 13:5414193da1de | 135 | Component component2 = Component(Component::LSM303A, channels); |
patrick_duc | 13:5414193da1de | 136 | |
patrick_duc | 13:5414193da1de | 137 | |
patrick_duc | 13:5414193da1de | 138 | // Construction du premier channel du troisieme composant |
patrick_duc | 13:5414193da1de | 139 | // ------------------------------------------------------ |
patrick_duc | 13:5414193da1de | 140 | Channel* channel6 = new Channel(Channel::ACTUATOR, |
patrick_duc | 13:5414193da1de | 141 | 139, |
patrick_duc | 13:5414193da1de | 142 | Channel::ENABLE_, |
patrick_duc | 13:5414193da1de | 143 | Channel::UART_, |
patrick_duc | 13:5414193da1de | 144 | Channel::IRQ_, |
patrick_duc | 13:5414193da1de | 145 | Channel::BY_VALUE, |
patrick_duc | 13:5414193da1de | 146 | access_pins, |
patrick_duc | 13:5414193da1de | 147 | Channel::MESSAGE, |
patrick_duc | 13:5414193da1de | 148 | Channel::IO, |
patrick_duc | 13:5414193da1de | 149 | "Premier channel du composant DS18B20 sur cette payload"); |
patrick_duc | 13:5414193da1de | 150 | |
patrick_duc | 13:5414193da1de | 151 | // Construction du troisieme composant |
patrick_duc | 13:5414193da1de | 152 | // ----------------------------------- |
patrick_duc | 13:5414193da1de | 153 | channels.clear(); |
patrick_duc | 13:5414193da1de | 154 | channels.push_back(channel6); |
patrick_duc | 13:5414193da1de | 155 | |
patrick_duc | 13:5414193da1de | 156 | Component component3 = Component(Component::DS18B20, channels); |
patrick_duc | 13:5414193da1de | 157 | |
patrick_duc | 13:5414193da1de | 158 | |
patrick_duc | 13:5414193da1de | 159 | // Construction de la payload |
patrick_duc | 13:5414193da1de | 160 | // -------------------------- |
patrick_duc | 13:5414193da1de | 161 | std::vector<Component> components = std::vector<Component>(); |
patrick_duc | 13:5414193da1de | 162 | components.push_back(component1); |
patrick_duc | 13:5414193da1de | 163 | components.push_back(component2); |
patrick_duc | 13:5414193da1de | 164 | components.push_back(component3); |
patrick_duc | 13:5414193da1de | 165 | |
patrick_duc | 13:5414193da1de | 166 | Payload * payload = new Payload(Payload::IOT_PAYLOAD_3, components); |
patrick_duc | 13:5414193da1de | 167 | |
patrick_duc | 13:5414193da1de | 168 | // Enregistrement de la payload dans la database |
patrick_duc | 13:5414193da1de | 169 | // --------------------------------------------- |
patrick_duc | 13:5414193da1de | 170 | dataBase->setPayload(payload); |
patrick_duc | 13:5414193da1de | 171 | |
patrick_duc | 13:5414193da1de | 172 | // Affichage de la payload, juste pour vérifier... |
patrick_duc | 13:5414193da1de | 173 | // *********************************************** |
patrick_duc | 13:5414193da1de | 174 | std::cout << *payload << std::endl; |
patrick_duc | 13:5414193da1de | 175 | } |