Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
MessageFactory.cpp@41:5a436163dddf, 2018-10-22 (annotated)
- Committer:
- FCH_31
- Date:
- Mon Oct 22 09:37:50 2018 +0000
- Revision:
- 41:5a436163dddf
- Parent:
- 20:b0281e8a375a
avec radio;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
patrick_duc | 20:b0281e8a375a | 1 | /* |
patrick_duc | 20:b0281e8a375a | 2 | #include <MessageFactory_.h> |
patrick_duc | 20:b0281e8a375a | 3 | #include <MessageFactory.h> |
patrick_duc | 20:b0281e8a375a | 4 | * MISNet |
patrick_duc | 20:b0281e8a375a | 5 | * |
patrick_duc | 20:b0281e8a375a | 6 | * Frame: Fabriquer les messages destinées à être emis |
patrick_duc | 20:b0281e8a375a | 7 | * |
patrick_duc | 20:b0281e8a375a | 8 | * Created on: August 17, 2018 Author: Francis CHATAIN |
patrick_duc | 20:b0281e8a375a | 9 | * |
patrick_duc | 20:b0281e8a375a | 10 | */ |
patrick_duc | 20:b0281e8a375a | 11 | |
patrick_duc | 20:b0281e8a375a | 12 | #include "Context.h" |
patrick_duc | 20:b0281e8a375a | 13 | |
patrick_duc | 20:b0281e8a375a | 14 | // ===================================== Includes |
patrick_duc | 20:b0281e8a375a | 15 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 20:b0281e8a375a | 16 | #include "mbed.h" |
patrick_duc | 20:b0281e8a375a | 17 | #include "main.h" |
patrick_duc | 20:b0281e8a375a | 18 | #endif |
patrick_duc | 20:b0281e8a375a | 19 | |
patrick_duc | 20:b0281e8a375a | 20 | #include "MessageFactory.hpp" |
patrick_duc | 20:b0281e8a375a | 21 | |
patrick_duc | 20:b0281e8a375a | 22 | // ===================================== Method of class |
patrick_duc | 20:b0281e8a375a | 23 | |
patrick_duc | 20:b0281e8a375a | 24 | |
patrick_duc | 20:b0281e8a375a | 25 | using namespace misnet; |
patrick_duc | 20:b0281e8a375a | 26 | |
patrick_duc | 20:b0281e8a375a | 27 | |
patrick_duc | 20:b0281e8a375a | 28 | MessageFactory::MessageFactory () { } // constructeur |
patrick_duc | 20:b0281e8a375a | 29 | MessageFactory::~MessageFactory() { } // delete xxx; |
patrick_duc | 20:b0281e8a375a | 30 | |
patrick_duc | 20:b0281e8a375a | 31 | |
patrick_duc | 20:b0281e8a375a | 32 | void MessageFactory::buildSensors () { |
patrick_duc | 20:b0281e8a375a | 33 | #ifndef TEST_ENVIRONMENT |
patrick_duc | 20:b0281e8a375a | 34 | uint16_t clearPart = 0x0000 ; // 2 Bytes |
patrick_duc | 20:b0281e8a375a | 35 | uint16_t serviceDFT = 0x00000000 ; // 2 bits left used |
patrick_duc | 20:b0281e8a375a | 36 | uint16_t servicePMI = 0x00000000 ; // 12 bits right used |
patrick_duc | 20:b0281e8a375a | 37 | uint16_t serviceRCA = 0x00000000 ; // 12 bits right used |
patrick_duc | 20:b0281e8a375a | 38 | uint32_t servicePart = 0x00000000 ; // 4 Bytes |
patrick_duc | 20:b0281e8a375a | 39 | uint32_t serviceMIC = 0x00000000 ; // 4 Bytes |
patrick_duc | 20:b0281e8a375a | 40 | uint32_t dataMIC = 0x00000000 ; // 4 Bytes |
patrick_duc | 20:b0281e8a375a | 41 | uint8_t *pointer ; |
patrick_duc | 20:b0281e8a375a | 42 | uint16_t dataID = 0x00000000 ; // 12 bits right used |
patrick_duc | 20:b0281e8a375a | 43 | |
patrick_duc | 20:b0281e8a375a | 44 | |
patrick_duc | 20:b0281e8a375a | 45 | char frameMISNET [BUFFER_SIZE_MAX] ; // Message |
patrick_duc | 20:b0281e8a375a | 46 | memset ( &frameMISNET , 0x00, BUFFER_SIZE_MAX ); |
patrick_duc | 20:b0281e8a375a | 47 | |
patrick_duc | 20:b0281e8a375a | 48 | // Read DataBase to get information (here simulated) |
patrick_duc | 20:b0281e8a375a | 49 | |
patrick_duc | 20:b0281e8a375a | 50 | // Formate Clear Part |
patrick_duc | 20:b0281e8a375a | 51 | clearPart = MODE_ADDR_IOT | ( ID_TERMINAL << 6 ) | ID_GATEWAY ; |
patrick_duc | 20:b0281e8a375a | 52 | printf( "*** MESS *** CLEAR PART= %8X \r\n ", clearPart); |
patrick_duc | 20:b0281e8a375a | 53 | |
patrick_duc | 20:b0281e8a375a | 54 | // CLEAR PART + Indianess correction |
patrick_duc | 20:b0281e8a375a | 55 | pointer = (uint8_t*) &clearPart ; for (int i = 0, j=1 ; i<2 ; i++, j--) frameMISNET[j] = pointer[i] ; |
patrick_duc | 20:b0281e8a375a | 56 | |
patrick_duc | 20:b0281e8a375a | 57 | // Formate Service Part |
patrick_duc | 20:b0281e8a375a | 58 | serviceDFT = MODE_DFT_IOT ; // Mode IOT 0x40000000 |
patrick_duc | 20:b0281e8a375a | 59 | servicePMI = 0x0100 & 0x3FF0 ; // 10 bits Payload N°16 simulated |
patrick_duc | 20:b0281e8a375a | 60 | serviceRCA = 0xBEEF & 0x0FFF ; // 3 Bytes (simulated) |
patrick_duc | 20:b0281e8a375a | 61 | serviceMIC = 0xCAFEBEEF & 0xFFFFFFFF ; // 4 Bytes (simulated) |
patrick_duc | 20:b0281e8a375a | 62 | |
patrick_duc | 20:b0281e8a375a | 63 | servicePart = (uint32_t)( (serviceDFT & 0xC0) << 24) | |
patrick_duc | 20:b0281e8a375a | 64 | (uint32_t)( (servicePMI & 0x3FF0) << 16) | |
patrick_duc | 20:b0281e8a375a | 65 | (uint32_t)( (serviceRCA & 0x0FFF) << 8 ) ; |
patrick_duc | 20:b0281e8a375a | 66 | |
patrick_duc | 20:b0281e8a375a | 67 | |
patrick_duc | 20:b0281e8a375a | 68 | // SERVICE + Indianess correction |
patrick_duc | 20:b0281e8a375a | 69 | pointer = (uint8_t*) &servicePart ; |
patrick_duc | 20:b0281e8a375a | 70 | for (int i=0, j=2 ; i<3 ; i++, j--) frameMISNET[2+i] = pointer[j] ; |
patrick_duc | 20:b0281e8a375a | 71 | pointer = (uint8_t*) &serviceMIC ; |
patrick_duc | 20:b0281e8a375a | 72 | for (int i=0, j=3 ; i<4 ; i++, j--) frameMISNET[5+i] = pointer[j] ; |
patrick_duc | 20:b0281e8a375a | 73 | |
patrick_duc | 20:b0281e8a375a | 74 | |
patrick_duc | 20:b0281e8a375a | 75 | // Format data part |
patrick_duc | 20:b0281e8a375a | 76 | dataID = 0x1440 ; // Service N°1 Value = 68 |
patrick_duc | 20:b0281e8a375a | 77 | dataMIC = 0xBEEFCAFE & 0xFFFFFFFF ; // 4 Bytes (simulated) |
patrick_duc | 20:b0281e8a375a | 78 | |
patrick_duc | 20:b0281e8a375a | 79 | frameMISNET[9+1] = pointer[1] ; |
patrick_duc | 20:b0281e8a375a | 80 | frameMISNET[9+2] = pointer[0] ; |
patrick_duc | 20:b0281e8a375a | 81 | |
patrick_duc | 20:b0281e8a375a | 82 | pointer = (uint8_t*) &dataMIC ; |
patrick_duc | 20:b0281e8a375a | 83 | for (int i=0, j=3 ; i<4 ; i++, j--) frameMISNET[11+i] = pointer[j] ; |
patrick_duc | 20:b0281e8a375a | 84 | |
patrick_duc | 20:b0281e8a375a | 85 | printf( "*** MESS *** Message= "); for (int i = 0 ; i<15 ; i++) printf ("%02X,", frameMISNET[i] ) ; printf( "\n") ; |
patrick_duc | 20:b0281e8a375a | 86 | |
patrick_duc | 20:b0281e8a375a | 87 | // Store message |
patrick_duc | 20:b0281e8a375a | 88 | #endif |
patrick_duc | 20:b0281e8a375a | 89 | } |
patrick_duc | 20:b0281e8a375a | 90 | |
patrick_duc | 20:b0281e8a375a | 91 | void MessageFactory::buildGoodhealth () {} //TODO |
patrick_duc | 20:b0281e8a375a | 92 | void MessageFactory::buildSynchro () {} //TODO |
patrick_duc | 20:b0281e8a375a | 93 | void MessageFactory::buildConfiguration () {} //TODO |