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
Parent:
10:1b37e3b41947
Child:
18:d5e7e56b0a0d
Classes de gestion de la database

Who changed what in which revision?

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