Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
FCH_31
Date:
Wed Aug 22 21:22:43 2018 +0000
Revision:
10:1b37e3b41947
Parent:
8:cd489b7c49a0
Child:
12:e9ec35413787
3

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 10:1b37e3b41947 45 void wakeUpIrqTacSwitch () ; // IRQ Tac Switch
FCH_31 7:1d890cab51bd 46
FCH_31 7:1d890cab51bd 47
FCH_31 8:cd489b7c49a0 48 // ============================================================================ Main
FCH_31 8:cd489b7c49a0 49 int main( ) { setup () ; loop () ; }
FCH_31 8:cd489b7c49a0 50 // ============================================================================
FCH_31 7:1d890cab51bd 51
FCH_31 7:1d890cab51bd 52
FCH_31 8:cd489b7c49a0 53 // ============================================================================ Setup
FCH_31 2:57f098de07c7 54 void setup () {
GregCr 1:22e02d1cfbca 55
FCH_31 8:cd489b7c49a0 56 app.start (); // Start Application
FCH_31 8:cd489b7c49a0 57
FCH_31 8:cd489b7c49a0 58 // -------------------------------------------------- Scheduler by IRQ or watch dog
FCH_31 8:cd489b7c49a0 59
FCH_31 8:cd489b7c49a0 60 app.getScheduling (TimerPayload, TimerGoodhealth, TimerSynchro, TimerListening) ; // What mode ?
FCH_31 8:cd489b7c49a0 61
FCH_31 10:1b37e3b41947 62 wakeUpPayload.attach (&wakeUpPayloadCallback, (float)TimerPayload ) ; // Mode A + All Mode
FCH_31 10:1b37e3b41947 63 wakeUpGoodhealth.attach (&wakeUpGoodhealthCallback, (float)TimerGoodhealth) ; // Mode A + All Mode
FCH_31 8:cd489b7c49a0 64
FCH_31 8:cd489b7c49a0 65 if ( TimerSynchro !=0)
FCH_31 10:1b37e3b41947 66 wakeUpSynchro.attach (&wakeUpSynchroCallback, (float)TimerSynchro) ; // Mode B
FCH_31 8:cd489b7c49a0 67
FCH_31 8:cd489b7c49a0 68 if ( TimerSynchro !=0)
FCH_31 10:1b37e3b41947 69 wakeUpListening.attach (&wakeUpListeningCallback,(float)TimerListening) ; // Mode C
FCH_31 10:1b37e3b41947 70
FCH_31 10:1b37e3b41947 71
FCH_31 10:1b37e3b41947 72 // TODO : Assicier l'IRQ du TAC switch au handler d'exception wakeUpIrqTacSwitch
FCH_31 10:1b37e3b41947 73
FCH_31 10:1b37e3b41947 74
FCH_31 8:cd489b7c49a0 75 }
FCH_31 8:cd489b7c49a0 76 //==============================================================================
FCH_31 4:41a92fbf702a 77
FCH_31 7:1d890cab51bd 78
FCH_31 8:cd489b7c49a0 79 // ============================================================================= LOOP
FCH_31 8:cd489b7c49a0 80 void loop () {
FCH_31 8:cd489b7c49a0 81 while(1) {
FCH_31 8:cd489b7c49a0 82 // deepsleep (); // perd la conf uart
FCH_31 8:cd489b7c49a0 83 sleep () ;
FCH_31 8:cd489b7c49a0 84 }
FCH_31 4:41a92fbf702a 85 }
FCH_31 8:cd489b7c49a0 86 // No action : all event by IRQ
FCH_31 8:cd489b7c49a0 87 //==============================================================================
FCH_31 7:1d890cab51bd 88
FCH_31 7:1d890cab51bd 89
FCH_31 2:57f098de07c7 90
FCH_31 10:1b37e3b41947 91
FCH_31 10:1b37e3b41947 92 // IRQ du tac switch TODO
FCH_31 10:1b37e3b41947 93 // ============================================================ IRQ TAC SWITCH
FCH_31 10:1b37e3b41947 94 void wakeUpIrqTacSwitch (void) {
FCH_31 10:1b37e3b41947 95 printf ("*** MAIN *** wakeUpIrqTacSwitch \r\n");
FCH_31 10:1b37e3b41947 96 app.manageConfiguration () ; // IRQ
FCH_31 10:1b37e3b41947 97 }
FCH_31 10:1b37e3b41947 98
FCH_31 10:1b37e3b41947 99
FCH_31 8:cd489b7c49a0 100 // ============================================================ WATCH DOG PAYLOAD
FCH_31 8:cd489b7c49a0 101 void wakeUpPayloadCallback (void) {
FCH_31 8:cd489b7c49a0 102 printf ("*** MAIN *** wakeUpPayloadCallback \r\n");
FCH_31 10:1b37e3b41947 103 app.manageSensors () ; // read Sensors
FCH_31 7:1d890cab51bd 104 }
FCH_31 10:1b37e3b41947 105
FCH_31 8:cd489b7c49a0 106 // ============================================================ WATCH DOG GOODHEALTH
FCH_31 8:cd489b7c49a0 107 void wakeUpGoodhealthCallback (void) {
FCH_31 8:cd489b7c49a0 108 printf ("*** MAIN *** wakeUpGoodhealthCallback ========================== \r\n");
FCH_31 10:1b37e3b41947 109 app.manageGoodhealth () ; // Prepare response
FCH_31 7:1d890cab51bd 110 }
FCH_31 10:1b37e3b41947 111
FCH_31 8:cd489b7c49a0 112 // ============================================================ WATCH DOG SYNCHRO
FCH_31 8:cd489b7c49a0 113 void wakeUpSynchroCallback (void) {
FCH_31 8:cd489b7c49a0 114 printf ("*** MAIN *** wakeUpSynchroCallback \r\n");
FCH_31 10:1b37e3b41947 115 app.manageSynchro () ; // Prepare response
FCH_31 8:cd489b7c49a0 116 }
FCH_31 10:1b37e3b41947 117
FCH_31 8:cd489b7c49a0 118 // ============================================================ WATCH DOG LISTENING
FCH_31 8:cd489b7c49a0 119 void wakeUpListeningCallback (void) {
FCH_31 8:cd489b7c49a0 120 printf ("*** MAIN *** wakeUpListeningCallback \r\n");
FCH_31 10:1b37e3b41947 121 app.manageListening () ; // Ecoute radio
FCH_31 8:cd489b7c49a0 122 }
FCH_31 10:1b37e3b41947 123
FCH_31 8:cd489b7c49a0 124 //*****************************************************************************
FCH_31 7:1d890cab51bd 125
FCH_31 8:cd489b7c49a0 126
FCH_31 4:41a92fbf702a 127
FCH_31 4:41a92fbf702a 128
FCH_31 4:41a92fbf702a 129