Master_Node
Dependencies: XBeeLib_Master mbed
main.cpp
- Committer:
- basvuyk
- Date:
- 2018-03-05
- Revision:
- 0:a6ed4a102013
- Child:
- 1:f28c98c04cbd
File content as of revision 0:a6ed4a102013:
#include "mbed.h" #include "XBeeLib.h" #include "buzzer.h" using namespace XBeeLib; uint8_t systemStatus = 0; uint8_t emergency = 1; // Activate Timer Ticker loopTimer; // Create DigiMesh Object XBeeDM DMLocalNode = XBeeDM(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 115200); //------------Define Pinouts------------// DigitalOut statusLED(PA_11); DigitalOut powerLED(PA_8); DigitalOut SCL(PA_6); DigitalOut SDA(PA_5); DigitalIn emergencyStop(PB_7); DigitalIn resetButton(PB_0); DigitalIn spareButton(PA_12); //------------Define Pinouts------------// // Initialize Buzzer Beep piezo(PB_4); void initialize(){ powerLED = 1; // Initialize device. Read the relevant parameters. RadioStatus radioStatus = DMLocalNode.init(); if (radioStatus != Success) { printf("Initialization failed!"); } systemStatus = 1; } static void sendHeartbeat(XBeeDM &DMLocalNode) { const char data[] = "1"; const uint16_t data_len = strlen(data); const TxStatus txStatus = DMLocalNode.send_data_broadcast((const uint8_t *)data, data_len); } void checkBuzzer(){ if (systemStatus == 1){ piezo.beep(2400, 0.2); } } void checkLoop() { sendHeartbeat(DMLocalNode); checkBuzzer(); } void checkStatus(){ if (emergencyStop == 0){ emergency = true; } if (emergencyStop == 1 && resetButton == 1){ emergency = false; } if (emergency == true){ systemStatus = 0; } else{ systemStatus = 1; } statusLED = systemStatus; } int main(){ initialize(); loopTimer.attach(checkLoop, 0.5f) ; for(;;){ checkStatus(); } }