Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
main.cpp
- Committer:
- patrick_duc
- Date:
- 2018-09-02
- Revision:
- 20:b0281e8a375a
- Parent:
- 15:9c1c4368670f
- Child:
- 21:8524d815c587
File content as of revision 20:b0281e8a375a:
/* * MISNet * * Main TERMINAL VERSION HALF DUPLEX * * Created on: August 17, 2018 Author: Francis CHATAIN * */ #include "mbed.h" #include "sx1280-hal.h" #include "stdio.h" #include <string> #include "main.h" #include "Application.hpp" using namespace std; using namespace misnet; // INSTANCE of APPLICATION OBJECT Application app ; // Core of application start also //****************************************************************************** // Timers //****************************************************************************** uint16_t TimerPayload, TimerGoodhealth, TimerSynchro, TimerListening = 0L ; volatile uint32_t listenFlag=0, syncFlag=0, goodHealthFlag=0, payloadFlag=0, irqFlag=0; LowPowerTicker wakeUpPayload ; // normal wake up void wakeUpPayloadCallback (void) ; LowPowerTicker wakeUpGoodhealth ; // GoodHealth wake up void wakeUpGoodhealthCallback (void) ; LowPowerTicker wakeUpSynchro ; // Synchro wake up (Mode B) void wakeUpSynchroCallback (void) ; LowPowerTicker wakeUpListening ; // Listening wake up (Mode C) void wakeUpListeningCallback (void) ; void setup () ; // Init Terminal void loop () ; // Main Loop void wakeUpIrqTacSwitch () ; // IRQ Tac Switch // ============================================================================ Main int main( ) { setup () ; loop () ; } // ============================================================================ // ============================================================================ Setup void setup () { app.start (); // Start Application // -------------------------------------------------- Scheduler by IRQ or watch dog app.getScheduling (TimerPayload, TimerGoodhealth, TimerSynchro, TimerListening) ; // What mode ? wakeUpPayload.attach (&wakeUpPayloadCallback, (float)TimerPayload ) ; // Mode A + All Mode wakeUpGoodhealth.attach (&wakeUpGoodhealthCallback, (float)TimerGoodhealth) ; // Mode A + All Mode if ( TimerSynchro !=0) wakeUpSynchro.attach (&wakeUpSynchroCallback, (float)TimerSynchro) ; // Mode B if ( TimerSynchro !=0) wakeUpListening.attach (&wakeUpListeningCallback,(float)TimerListening) ; // Mode C // TODO : Assicier l'IRQ du TAC switch au handler d'exception wakeUpIrqTacSwitch } //============================================================================== // ============================================================================= LOOP void loop () { while(1) { if(listenFlag){ // Listen radio listenFlag=0; app.manageListening(); printf ("*** MAIN *** wakeUpListeningCallback \r\n"); } if(syncFlag){ // Prepare response syncFlag=0; app.manageSynchro(); printf ("*** MAIN *** wakeUpSynchroCallback \r\n"); } if(goodHealthFlag){ // Prepare response goodHealthFlag=0; app.manageGoodhealth(); printf ("*** MAIN *** wakeUpGoodhealthCallback r\n"); } if(payloadFlag){ // read Sensors payloadFlag=0; app.manageSensors(); printf ("*** MAIN *** wakeUpPayloadCallback \r\n"); } if(irqFlag){ // handle IRQ actions irqFlag=0; app.manageConfiguration(); printf ("*** MAIN *** wakeUpIrqTacSwitch \r\n"); } // deepsleep (); // breaks UART //sleep () ; wait(1); } } // No action : all event by IRQ //============================================================================== // IRQ du tac switch TODO // ============================================================ IRQ TAC SWITCH void wakeUpIrqTacSwitch (void) { //printf ("*** MAIN *** wakeUpIrqTacSwitch \r\n"); //app.manageConfiguration () ; // IRQ irqFlag=1; } // ============================================================ WATCH DOG PAYLOAD void wakeUpPayloadCallback (void) { //printf ("*** MAIN *** wakeUpPayloadCallback \r\n"); //app.manageSensors () ; // read Sensors payloadFlag=1; } // ============================================================ WATCH DOG GOODHEALTH void wakeUpGoodhealthCallback (void) { //printf ("*** MAIN *** wakeUpGoodhealthCallback ========================== \r\n"); //app.manageGoodhealth () ; // Prepare response goodHealthFlag=1; } // ============================================================ WATCH DOG SYNCHRO void wakeUpSynchroCallback (void) { //printf ("*** MAIN *** wakeUpSynchroCallback \r\n"); //app.manageSynchro () ; // Prepare response syncFlag=1; } // ============================================================ WATCH DOG LISTENING void wakeUpListeningCallback (void) { //printf ("*** MAIN *** wakeUpListeningCallback \r\n"); //app.manageListening () ; // Ecoute radio listenFlag=1; } //*****************************************************************************