New version of quadcopter software written to OO principles

Dependencies:   mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers StatusLights.cpp Source File

StatusLights.cpp

00001 #include "StatusLights.h"
00002 
00003 StatusLights::StatusLights()
00004 {   
00005     _ledState = 0;
00006     _led1 = new DigitalOut(LED1);
00007     _led2 = new DigitalOut(LED2);
00008     _led3 = new DigitalOut(LED3);
00009     _led4 = new DigitalOut(LED4);
00010 
00011     DEBUG("Status lights initialised\r\n");
00012 }
00013 
00014 StatusLights::~StatusLights(){}
00015 
00016 void StatusLights::preFlight()
00017 {
00018     _led1 -> write(!_led1 -> read());
00019 }
00020 
00021 void StatusLights::standby()
00022 {
00023     _led2 -> write(!_led2 -> read());
00024 }
00025 
00026 void StatusLights::groundReady()
00027 {
00028     _led3 -> write(!_led3 -> read());
00029 }
00030 
00031 void StatusLights::flying()
00032 {
00033     _ledState++;
00034     if (_ledState > 5) { _ledState = 0; }
00035     
00036     _led1 -> write(_ledState == 0);
00037     _led2 -> write(_ledState == 1 || _ledState == 5);
00038     _led3 -> write(_ledState == 2 || _ledState == 4);
00039     _led4 -> write(_ledState == 3);
00040 }
00041 
00042 void StatusLights::error()
00043 {
00044     _led1 -> write(!_led1 -> read());
00045     _led2 -> write(!_led2 -> read());
00046     _led3 -> write(!_led3 -> read());
00047     _led4 -> write(!_led4 -> read());
00048 }
00049 
00050 void StatusLights::clear()
00051 {
00052     _led1->write(0);   
00053     _led2->write(0); 
00054     _led3->write(0); 
00055     _led4->write(0); 
00056     _ledState = 0;
00057 }