Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
FCH_31
Date:
Wed Aug 22 13:03:00 2018 +0000
Revision:
8:cd489b7c49a0
Parent:
7:1d890cab51bd
Child:
10:1b37e3b41947
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FCH_31 8:cd489b7c49a0 1 /*
FCH_31 8:cd489b7c49a0 2 * MISNet
FCH_31 8:cd489b7c49a0 3 *
FCH_31 8:cd489b7c49a0 4 * Main TERMINAL VERSION HALF DUPLEX
FCH_31 8:cd489b7c49a0 5 *
FCH_31 8:cd489b7c49a0 6 * Created on: August 17, 2018 Author: Francis CHATAIN
FCH_31 8:cd489b7c49a0 7 *
FCH_31 8:cd489b7c49a0 8 */
FCH_31 8:cd489b7c49a0 9
GregCr 1:22e02d1cfbca 10 #include "mbed.h"
GregCr 1:22e02d1cfbca 11 #include "sx1280-hal.h"
FCH_31 3:3adb454ba1d2 12 #include "stdio.h"
FCH_31 8:cd489b7c49a0 13 #include <string>
GregCr 1:22e02d1cfbca 14
FCH_31 8:cd489b7c49a0 15 #include "main.h"
FCH_31 8:cd489b7c49a0 16 #include "Application.h"
FCH_31 7:1d890cab51bd 17
FCH_31 7:1d890cab51bd 18
FCH_31 8:cd489b7c49a0 19 using namespace std;
GregCr 1:22e02d1cfbca 20
FCH_31 8:cd489b7c49a0 21 // INSTANCE of APPLICATION OBJECT
GregCr 1:22e02d1cfbca 22
FCH_31 8:cd489b7c49a0 23 Application app ; // Core of application start also
FCH_31 2:57f098de07c7 24
FCH_31 2:57f098de07c7 25
FCH_31 8:cd489b7c49a0 26 //******************************************************************************
FCH_31 8:cd489b7c49a0 27 // Watch Dog functionnality
FCH_31 8:cd489b7c49a0 28 //******************************************************************************
FCH_31 8:cd489b7c49a0 29 uint16_t TimerPayload, TimerGoodhealth, TimerSynchro, TimerListening = 0L ;
FCH_31 4:41a92fbf702a 30
FCH_31 8:cd489b7c49a0 31 LowPowerTicker wakeUpPayload ; // normal wake up
FCH_31 8:cd489b7c49a0 32 void wakeUpPayloadCallback (void) ;
FCH_31 7:1d890cab51bd 33
FCH_31 8:cd489b7c49a0 34 LowPowerTicker wakeUpGoodhealth ; // GoodHealth wake up
FCH_31 8:cd489b7c49a0 35 void wakeUpGoodhealthCallback (void) ;
FCH_31 7:1d890cab51bd 36
FCH_31 8:cd489b7c49a0 37 LowPowerTicker wakeUpSynchro ; // Synchro wake up (Mode B)
FCH_31 8:cd489b7c49a0 38 void wakeUpSynchroCallback (void) ;
FCH_31 7:1d890cab51bd 39
FCH_31 8:cd489b7c49a0 40 LowPowerTicker wakeUpListening ; // Listening wake up (Mode C)
FCH_31 8:cd489b7c49a0 41 void wakeUpListeningCallback (void) ;
FCH_31 7:1d890cab51bd 42
FCH_31 8:cd489b7c49a0 43 void setup () ; // Init Terminal
FCH_31 8:cd489b7c49a0 44 void loop () ; // Main Loop
FCH_31 7:1d890cab51bd 45
FCH_31 7:1d890cab51bd 46
FCH_31 8:cd489b7c49a0 47 // ============================================================================ Main
FCH_31 8:cd489b7c49a0 48 int main( ) { setup () ; loop () ; }
FCH_31 8:cd489b7c49a0 49 // ============================================================================
FCH_31 7:1d890cab51bd 50
FCH_31 7:1d890cab51bd 51
FCH_31 8:cd489b7c49a0 52 // ============================================================================ Setup
FCH_31 2:57f098de07c7 53 void setup () {
GregCr 1:22e02d1cfbca 54
FCH_31 8:cd489b7c49a0 55 app.start (); // Start Application
FCH_31 8:cd489b7c49a0 56
FCH_31 8:cd489b7c49a0 57 // -------------------------------------------------- Scheduler by IRQ or watch dog
FCH_31 8:cd489b7c49a0 58
FCH_31 8:cd489b7c49a0 59 app.getScheduling (TimerPayload, TimerGoodhealth, TimerSynchro, TimerListening) ; // What mode ?
FCH_31 8:cd489b7c49a0 60
FCH_31 8:cd489b7c49a0 61 wakeUpPayload.attach (&wakeUpPayloadCallback, (float)TimerPayload ) ; // All mode
FCH_31 2:57f098de07c7 62
FCH_31 8:cd489b7c49a0 63 wakeUpGoodhealth.attach (&wakeUpGoodhealthCallback, (float)TimerGoodhealth) ; // All Mode
FCH_31 8:cd489b7c49a0 64
FCH_31 8:cd489b7c49a0 65 if ( TimerSynchro !=0)
FCH_31 8:cd489b7c49a0 66 wakeUpSynchro.attach (&wakeUpSynchroCallback, (float)TimerSynchro) ; // Mode B
FCH_31 8:cd489b7c49a0 67
FCH_31 8:cd489b7c49a0 68 if ( TimerSynchro !=0)
FCH_31 8:cd489b7c49a0 69 wakeUpListening.attach (&wakeUpListeningCallback,(float)TimerListening) ; // Mode C
FCH_31 8:cd489b7c49a0 70 }
FCH_31 8:cd489b7c49a0 71 //==============================================================================
FCH_31 4:41a92fbf702a 72
FCH_31 7:1d890cab51bd 73
FCH_31 8:cd489b7c49a0 74 // ============================================================================= LOOP
FCH_31 8:cd489b7c49a0 75 void loop () {
FCH_31 8:cd489b7c49a0 76 while(1) {
FCH_31 8:cd489b7c49a0 77 // deepsleep (); // perd la conf uart
FCH_31 8:cd489b7c49a0 78 sleep () ;
FCH_31 8:cd489b7c49a0 79 }
FCH_31 4:41a92fbf702a 80 }
FCH_31 8:cd489b7c49a0 81 // No action : all event by IRQ
FCH_31 8:cd489b7c49a0 82 //==============================================================================
FCH_31 7:1d890cab51bd 83
FCH_31 7:1d890cab51bd 84
FCH_31 2:57f098de07c7 85
FCH_31 8:cd489b7c49a0 86 // ============================================================ WATCH DOG PAYLOAD
FCH_31 8:cd489b7c49a0 87 void wakeUpPayloadCallback (void) {
FCH_31 8:cd489b7c49a0 88 printf ("*** MAIN *** wakeUpPayloadCallback \r\n");
FCH_31 8:cd489b7c49a0 89 app.readSensors () ; // read Sensors
FCH_31 8:cd489b7c49a0 90 app.buildMessageSensors () ; // Prepare response
FCH_31 8:cd489b7c49a0 91 app.sendMessage () ; // send message
FCH_31 7:1d890cab51bd 92 }
FCH_31 8:cd489b7c49a0 93 // ============================================================ WATCH DOG GOODHEALTH
FCH_31 8:cd489b7c49a0 94 void wakeUpGoodhealthCallback (void) {
FCH_31 8:cd489b7c49a0 95 printf ("*** MAIN *** wakeUpGoodhealthCallback ========================== \r\n");
FCH_31 8:cd489b7c49a0 96 app.readSensors () ; // read Sensors
FCH_31 8:cd489b7c49a0 97 //app.buildMessageGoodhealth () ; // Prepare response
FCH_31 8:cd489b7c49a0 98 //app.sendMessage () ; // send message
FCH_31 7:1d890cab51bd 99 }
FCH_31 8:cd489b7c49a0 100 // ============================================================ WATCH DOG SYNCHRO
FCH_31 8:cd489b7c49a0 101 void wakeUpSynchroCallback (void) {
FCH_31 8:cd489b7c49a0 102 printf ("*** MAIN *** wakeUpSynchroCallback \r\n");
FCH_31 8:cd489b7c49a0 103 //app.sendMessageSynchro () ; // send message
FCH_31 8:cd489b7c49a0 104 //app.sendMessage () ; // send message
FCH_31 8:cd489b7c49a0 105 }
FCH_31 8:cd489b7c49a0 106 // ============================================================ WATCH DOG LISTENING
FCH_31 8:cd489b7c49a0 107 void wakeUpListeningCallback (void) {
FCH_31 8:cd489b7c49a0 108 printf ("*** MAIN *** wakeUpListeningCallback \r\n");
FCH_31 8:cd489b7c49a0 109 //app.startListening (duration) ; // send message
FCH_31 8:cd489b7c49a0 110 }
FCH_31 8:cd489b7c49a0 111 //*****************************************************************************
FCH_31 7:1d890cab51bd 112
FCH_31 8:cd489b7c49a0 113
FCH_31 4:41a92fbf702a 114
FCH_31 4:41a92fbf702a 115
FCH_31 4:41a92fbf702a 116