Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
TESTS/Service_tests.cpp@24:92c30dabfda4, 2018-09-11 (annotated)
- Committer:
- patrick_duc
- Date:
- Tue Sep 11 21:45:52 2018 +0000
- Revision:
- 24:92c30dabfda4
Debut d'ajout des classes de gestion et serialisation de messages.; Attention ! Classes non encore toutes fonctionnelles...; A tester au moyen du driver de test serialisation.cpp dans le repertoire TESTS.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
patrick_duc | 24:92c30dabfda4 | 1 | #include <iostream> |
patrick_duc | 24:92c30dabfda4 | 2 | #include <cstdlib> |
patrick_duc | 24:92c30dabfda4 | 3 | |
patrick_duc | 24:92c30dabfda4 | 4 | #include "Context.h" |
patrick_duc | 24:92c30dabfda4 | 5 | |
patrick_duc | 24:92c30dabfda4 | 6 | #include "Value.hpp" |
patrick_duc | 24:92c30dabfda4 | 7 | #include "ExtMemory.hpp" |
patrick_duc | 24:92c30dabfda4 | 8 | #include "DataBase.hpp" |
patrick_duc | 24:92c30dabfda4 | 9 | |
patrick_duc | 24:92c30dabfda4 | 10 | |
patrick_duc | 24:92c30dabfda4 | 11 | using namespace misnet; |
patrick_duc | 24:92c30dabfda4 | 12 | |
patrick_duc | 24:92c30dabfda4 | 13 | |
patrick_duc | 24:92c30dabfda4 | 14 | static Value* values[10][4]; |
patrick_duc | 24:92c30dabfda4 | 15 | |
patrick_duc | 24:92c30dabfda4 | 16 | static Value value_1_sensor_102, value_2_sensor_102, value_3_sensor_102, value_4_sensor_102, value_5_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 17 | static Value value_6_sensor_102, value_7_sensor_102, value_8_sensor_102, value_9_sensor_102, value_10_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 18 | static Value value_1_sensor_103, value_2_sensor_103, value_3_sensor_103, value_4_sensor_103, value_5_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 19 | static Value value_6_sensor_103, value_7_sensor_103, value_8_sensor_103, value_9_sensor_103, value_10_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 20 | static Value value_1_sensor_113, value_2_sensor_113, value_3_sensor_113, value_4_sensor_113, value_5_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 21 | static Value value_6_sensor_113, value_7_sensor_113, value_8_sensor_113, value_9_sensor_113, value_10_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 22 | static Value value_1_sensor_139, value_2_sensor_139, value_3_sensor_139, value_4_sensor_139, value_5_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 23 | static Value value_6_sensor_139, value_7_sensor_139, value_8_sensor_139, value_9_sensor_139, value_10_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 24 | |
patrick_duc | 24:92c30dabfda4 | 25 | static void initValues() { |
patrick_duc | 24:92c30dabfda4 | 26 | values[0][0] = &value_1_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 27 | values[1][0] = &value_2_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 28 | values[2][0] = &value_3_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 29 | values[3][0] = &value_4_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 30 | values[4][0] = &value_5_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 31 | values[5][0] = &value_6_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 32 | values[6][0] = &value_7_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 33 | values[7][0] = &value_8_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 34 | values[8][0] = &value_9_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 35 | values[9][0] = &value_10_sensor_102; |
patrick_duc | 24:92c30dabfda4 | 36 | values[0][1] = &value_1_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 37 | values[1][1] = &value_2_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 38 | values[2][1] = &value_3_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 39 | values[3][1] = &value_4_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 40 | values[4][1] = &value_5_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 41 | values[5][1] = &value_6_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 42 | values[6][1] = &value_7_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 43 | values[7][1] = &value_8_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 44 | values[8][1] = &value_9_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 45 | values[9][1] = &value_10_sensor_103; |
patrick_duc | 24:92c30dabfda4 | 46 | values[0][2] = &value_1_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 47 | values[1][2] = &value_2_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 48 | values[2][2] = &value_3_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 49 | values[3][2] = &value_4_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 50 | values[4][2] = &value_5_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 51 | values[5][2] = &value_6_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 52 | values[6][2] = &value_7_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 53 | values[7][2] = &value_8_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 54 | values[8][2] = &value_9_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 55 | values[9][2] = &value_10_sensor_113; |
patrick_duc | 24:92c30dabfda4 | 56 | values[0][3] = &value_1_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 57 | values[1][3] = &value_2_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 58 | values[2][3] = &value_3_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 59 | values[3][3] = &value_4_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 60 | values[4][3] = &value_5_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 61 | values[5][3] = &value_6_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 62 | values[6][3] = &value_7_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 63 | values[7][3] = &value_8_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 64 | values[8][3] = &value_9_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 65 | values[9][3] = &value_10_sensor_139; |
patrick_duc | 24:92c30dabfda4 | 66 | |
patrick_duc | 24:92c30dabfda4 | 67 | // Values for sensor 102 |
patrick_duc | 24:92c30dabfda4 | 68 | value_1_sensor_102.setInt16Value(10000); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 69 | value_2_sensor_102.setInt16Value(10250); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 70 | value_3_sensor_102.setInt16Value(10280); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 71 | value_4_sensor_102.setInt16Value(10310); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 72 | value_5_sensor_102.setInt16Value(10550); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 73 | value_6_sensor_102.setInt16Value(10649); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 74 | value_7_sensor_102.setInt16Value(10750); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 75 | value_8_sensor_102.setInt16Value(10785); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 76 | value_9_sensor_102.setInt16Value(10810); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 77 | value_10_sensor_102.setInt16Value(10911); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 78 | |
patrick_duc | 24:92c30dabfda4 | 79 | // Values for sensor 103 |
patrick_duc | 24:92c30dabfda4 | 80 | value_1_sensor_103.setFloatValue(105.5); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 81 | value_2_sensor_103.setFloatValue(102.1); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 82 | value_3_sensor_103.setFloatValue(108.3); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 83 | value_4_sensor_103.setFloatValue(111.0); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 84 | value_5_sensor_103.setFloatValue(112.7); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 85 | value_6_sensor_103.setFloatValue(111.4); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 86 | value_7_sensor_103.setFloatValue(107.1); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 87 | value_8_sensor_103.setFloatValue(104.8); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 88 | value_9_sensor_103.setFloatValue(105.9); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 89 | value_10_sensor_103.setFloatValue(98.7); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 90 | |
patrick_duc | 24:92c30dabfda4 | 91 | // Values for sensor 113 |
patrick_duc | 24:92c30dabfda4 | 92 | value_1_sensor_113.setInt8Value(-87); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 93 | value_2_sensor_113.setInt8Value(-90); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 94 | value_3_sensor_113.setInt8Value(-91); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 95 | value_4_sensor_113.setInt8Value(-90); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 96 | value_5_sensor_113.setInt8Value(-86); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 97 | value_6_sensor_113.setInt8Value(-88); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 98 | value_7_sensor_113.setInt8Value(-91); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 99 | value_8_sensor_113.setInt8Value(-92); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 100 | value_9_sensor_113.setInt8Value(-93); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 101 | value_10_sensor_113.setInt8Value(-91); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 102 | |
patrick_duc | 24:92c30dabfda4 | 103 | // Values for sensor 139 |
patrick_duc | 24:92c30dabfda4 | 104 | value_1_sensor_139.setDoubleValue(0.654); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 105 | value_2_sensor_139.setDoubleValue(1.065); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 106 | value_3_sensor_139.setDoubleValue(0.876); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 107 | value_4_sensor_139.setDoubleValue(0.2854); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 108 | value_5_sensor_139.setDoubleValue(1.01); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 109 | value_6_sensor_139.setDoubleValue(0.996); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 110 | value_7_sensor_139.setDoubleValue(1.002); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 111 | value_8_sensor_139.setDoubleValue(0.86); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 112 | value_9_sensor_139.setDoubleValue(0.77); // Should NOT be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 113 | value_10_sensor_139.setDoubleValue(1.2675); // Should be sent to gateway |
patrick_duc | 24:92c30dabfda4 | 114 | } |
patrick_duc | 24:92c30dabfda4 | 115 | |
patrick_duc | 24:92c30dabfda4 | 116 | |
patrick_duc | 24:92c30dabfda4 | 117 | int main(int argc, char** argv) { |
patrick_duc | 24:92c30dabfda4 | 118 | Value value; |
patrick_duc | 24:92c30dabfda4 | 119 | value.setDoubleValue(-1.0 / 81); |
patrick_duc | 24:92c30dabfda4 | 120 | |
patrick_duc | 24:92c30dabfda4 | 121 | |
patrick_duc | 24:92c30dabfda4 | 122 | DataBase * database = new DataBase(); |
patrick_duc | 24:92c30dabfda4 | 123 | |
patrick_duc | 24:92c30dabfda4 | 124 | ExtMemory::read(database); |
patrick_duc | 24:92c30dabfda4 | 125 | |
patrick_duc | 24:92c30dabfda4 | 126 | DEBUG("PAYLOAD\n=======\n%s\n", database->getPayload()->toString().c_str()); |
patrick_duc | 24:92c30dabfda4 | 127 | |
patrick_duc | 24:92c30dabfda4 | 128 | int sensor_index; // Sensor index; ranges from 0 to 3, since there are 4 active sensors in this configuration |
patrick_duc | 24:92c30dabfda4 | 129 | int sensor_102_value_index; // Value index; ranges from 0 to 9, since there are 10 values for each active sensor in this test |
patrick_duc | 24:92c30dabfda4 | 130 | int sensor_103_value_index; // Value index; ranges from 0 to 9, since there are 10 values for each active sensor in this test |
patrick_duc | 24:92c30dabfda4 | 131 | int sensor_113_value_index; // Value index; ranges from 0 to 9, since there are 10 values for each active sensor in this test |
patrick_duc | 24:92c30dabfda4 | 132 | int sensor_139_value_index; // Value index; ranges from 0 to 9, since there are 10 values for each active sensor in this test |
patrick_duc | 24:92c30dabfda4 | 133 | int* current_sensor_value_index; |
patrick_duc | 24:92c30dabfda4 | 134 | |
patrick_duc | 24:92c30dabfda4 | 135 | initValues(); |
patrick_duc | 24:92c30dabfda4 | 136 | |
patrick_duc | 24:92c30dabfda4 | 137 | // Loop to simulate payload heartbeat |
patrick_duc | 24:92c30dabfda4 | 138 | // ---------------------------------- |
patrick_duc | 24:92c30dabfda4 | 139 | for (int i = 0, sensor_index = 0, sensor_102_value_index = 0, sensor_103_value_index = 0, sensor_113_value_index = 0, sensor_139_value_index = 0; |
patrick_duc | 24:92c30dabfda4 | 140 | i < 1000000; |
patrick_duc | 24:92c30dabfda4 | 141 | ++i) { |
patrick_duc | 24:92c30dabfda4 | 142 | |
patrick_duc | 24:92c30dabfda4 | 143 | std::list<CandidateComponent*> * candidateComponents = database->getCandidateSensorsList(); |
patrick_duc | 24:92c30dabfda4 | 144 | |
patrick_duc | 24:92c30dabfda4 | 145 | if (candidateComponents->size() != 0) { |
patrick_duc | 24:92c30dabfda4 | 146 | DEBUG("Iteration #%d\n****************\n", i); |
patrick_duc | 24:92c30dabfda4 | 147 | |
patrick_duc | 24:92c30dabfda4 | 148 | for (std::list<CandidateComponent*>::iterator candidateComponentIterator = candidateComponents->begin(); |
patrick_duc | 24:92c30dabfda4 | 149 | candidateComponentIterator != candidateComponents->end(); |
patrick_duc | 24:92c30dabfda4 | 150 | candidateComponentIterator++) { |
patrick_duc | 24:92c30dabfda4 | 151 | |
patrick_duc | 24:92c30dabfda4 | 152 | DEBUG("Candidate component : %d\n", (*candidateComponentIterator)->getComponent()->getId()); |
patrick_duc | 24:92c30dabfda4 | 153 | for (std::list<Service*>::iterator serviceIterator = (*candidateComponentIterator)->getServices().begin(); |
patrick_duc | 24:92c30dabfda4 | 154 | serviceIterator != (*candidateComponentIterator)->getServices().end(); |
patrick_duc | 24:92c30dabfda4 | 155 | serviceIterator++) { |
patrick_duc | 24:92c30dabfda4 | 156 | |
patrick_duc | 24:92c30dabfda4 | 157 | DEBUG("\tCandidate service : %d\n", (*serviceIterator)->getMisnetCode()); |
patrick_duc | 24:92c30dabfda4 | 158 | |
patrick_duc | 24:92c30dabfda4 | 159 | switch ((*serviceIterator)->getMisnetCode()) { |
patrick_duc | 24:92c30dabfda4 | 160 | case 102: |
patrick_duc | 24:92c30dabfda4 | 161 | sensor_index = 0; |
patrick_duc | 24:92c30dabfda4 | 162 | current_sensor_value_index = &sensor_102_value_index; |
patrick_duc | 24:92c30dabfda4 | 163 | break; |
patrick_duc | 24:92c30dabfda4 | 164 | |
patrick_duc | 24:92c30dabfda4 | 165 | case 103: |
patrick_duc | 24:92c30dabfda4 | 166 | sensor_index = 1; |
patrick_duc | 24:92c30dabfda4 | 167 | current_sensor_value_index = &sensor_103_value_index; |
patrick_duc | 24:92c30dabfda4 | 168 | break; |
patrick_duc | 24:92c30dabfda4 | 169 | |
patrick_duc | 24:92c30dabfda4 | 170 | case 113: |
patrick_duc | 24:92c30dabfda4 | 171 | sensor_index = 2; |
patrick_duc | 24:92c30dabfda4 | 172 | current_sensor_value_index = &sensor_113_value_index; |
patrick_duc | 24:92c30dabfda4 | 173 | break; |
patrick_duc | 24:92c30dabfda4 | 174 | |
patrick_duc | 24:92c30dabfda4 | 175 | case 139: |
patrick_duc | 24:92c30dabfda4 | 176 | sensor_index = 3; |
patrick_duc | 24:92c30dabfda4 | 177 | current_sensor_value_index = &sensor_139_value_index; |
patrick_duc | 24:92c30dabfda4 | 178 | break; |
patrick_duc | 24:92c30dabfda4 | 179 | |
patrick_duc | 24:92c30dabfda4 | 180 | default: |
patrick_duc | 24:92c30dabfda4 | 181 | DEBUG("!!! UNEXPECTED MISNET CODE, ENDING TEST !!!"); |
patrick_duc | 24:92c30dabfda4 | 182 | return 1; |
patrick_duc | 24:92c30dabfda4 | 183 | break; |
patrick_duc | 24:92c30dabfda4 | 184 | } |
patrick_duc | 24:92c30dabfda4 | 185 | |
patrick_duc | 24:92c30dabfda4 | 186 | DEBUG("\tSetting value %d of sensor %d, which is %s\n", *current_sensor_value_index, sensor_index, |
patrick_duc | 24:92c30dabfda4 | 187 | values[*current_sensor_value_index][sensor_index]->toString().c_str()); |
patrick_duc | 24:92c30dabfda4 | 188 | (*serviceIterator)->setValue(*(values[*current_sensor_value_index][sensor_index])); |
patrick_duc | 24:92c30dabfda4 | 189 | |
patrick_duc | 24:92c30dabfda4 | 190 | // Increment sensor value index (but modulus 10) |
patrick_duc | 24:92c30dabfda4 | 191 | *current_sensor_value_index = ++(*current_sensor_value_index) % 10; |
patrick_duc | 24:92c30dabfda4 | 192 | DEBUG("\tNew value index for sensor %d : %d\n", sensor_index, *current_sensor_value_index); |
patrick_duc | 24:92c30dabfda4 | 193 | |
patrick_duc | 24:92c30dabfda4 | 194 | DEBUG("\tCurrent sensor value : %s\n", (*serviceIterator)->getCurrentValueAsString().c_str()); |
patrick_duc | 24:92c30dabfda4 | 195 | DEBUG("\tPrevious sensor value : %s\n", (*serviceIterator)->getPreviousValueAsString().c_str()); |
patrick_duc | 24:92c30dabfda4 | 196 | |
patrick_duc | 24:92c30dabfda4 | 197 | if ((*serviceIterator)->valueToBeSentToGateway()) { |
patrick_duc | 24:92c30dabfda4 | 198 | DEBUG("\tValue of service '%s' to be sent to gateway\n", (*serviceIterator)->toString().c_str()); |
patrick_duc | 24:92c30dabfda4 | 199 | } |
patrick_duc | 24:92c30dabfda4 | 200 | else { |
patrick_duc | 24:92c30dabfda4 | 201 | DEBUG("\tValue of service '%s' NOT to be sent to gateway\n", (*serviceIterator)->toString().c_str()); |
patrick_duc | 24:92c30dabfda4 | 202 | } |
patrick_duc | 24:92c30dabfda4 | 203 | } |
patrick_duc | 24:92c30dabfda4 | 204 | } |
patrick_duc | 24:92c30dabfda4 | 205 | } |
patrick_duc | 24:92c30dabfda4 | 206 | |
patrick_duc | 24:92c30dabfda4 | 207 | free(candidateComponents); |
patrick_duc | 24:92c30dabfda4 | 208 | } |
patrick_duc | 24:92c30dabfda4 | 209 | |
patrick_duc | 24:92c30dabfda4 | 210 | return 0; |
patrick_duc | 24:92c30dabfda4 | 211 | } |