Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

main.cpp

Committer:
FCH_31
Date:
2018-08-22
Revision:
8:cd489b7c49a0
Parent:
7:1d890cab51bd
Child:
10:1b37e3b41947

File content as of revision 8:cd489b7c49a0:

/*
 *  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.h"


using namespace std;

//  INSTANCE of APPLICATION OBJECT 

Application     app                             ;       // Core of application start also 


//******************************************************************************
//     Watch Dog functionnality
//******************************************************************************
uint16_t TimerPayload, TimerGoodhealth, TimerSynchro, TimerListening = 0L ;

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 


// ============================================================================ 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 )   ;     // All mode 
    
    wakeUpGoodhealth.attach    (&wakeUpGoodhealthCallback,  (float)TimerGoodhealth) ;  // All Mode 
    
    if ( TimerSynchro !=0) 
        wakeUpSynchro.attach   (&wakeUpSynchroCallback,     (float)TimerSynchro)    ;    // Mode B
        
    if ( TimerSynchro !=0) 
        wakeUpListening.attach (&wakeUpListeningCallback,(float)TimerListening) ;  // Mode C       
}
//==============================================================================


// ============================================================================= LOOP  
void loop () { 
    while(1) { 
        // deepsleep ();     // perd la conf uart 
        sleep () ; 
    } 
}
// No action : all event by IRQ 
//==============================================================================



// ============================================================ WATCH DOG PAYLOAD 
void wakeUpPayloadCallback (void) {
    printf ("*** MAIN ***  wakeUpPayloadCallback   \r\n");  
    app.readSensors         () ;   // read Sensors   
    app.buildMessageSensors () ;   // Prepare response  
    app.sendMessage         () ;   // send message
}
// ============================================================ WATCH DOG GOODHEALTH
void wakeUpGoodhealthCallback (void) {
    printf ("*** MAIN ***  wakeUpGoodhealthCallback  ==========================   \r\n");
    app.readSensors         () ;   // read Sensors   
    //app.buildMessageGoodhealth () ;   // Prepare response  
    //app.sendMessage           () ;   // send message 
}
// ============================================================ WATCH DOG SYNCHRO
void wakeUpSynchroCallback (void) {
    printf ("*** MAIN ***  wakeUpSynchroCallback   \r\n");
    //app.sendMessageSynchro         () ;   // send message 
    //app.sendMessage           () ;   // send message 
}
// ============================================================ WATCH DOG LISTENING
void wakeUpListeningCallback (void) {
    printf ("*** MAIN ***  wakeUpListeningCallback   \r\n");
    //app.startListening (duration) ;   // send message 
}
//*****************************************************************************