test

Dependents:   GliderFuncTest1

Committer:
chasefarmer2808
Date:
Wed Jun 07 03:42:57 2017 +0000
Revision:
0:cf00868b46a7
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chasefarmer2808 0:cf00868b46a7 1 #include "GliderFuncTest.h"
chasefarmer2808 0:cf00868b46a7 2
chasefarmer2808 0:cf00868b46a7 3 GliderFuncTest::GliderFuncTest(PinName sda, PinName scl, PinName tx, PinName rx, PinName solarVolt, PinName pitot, PinName buzzer)
chasefarmer2808 0:cf00868b46a7 4 : pitotInput(pitot), buzzerOutput(buzzer), solarInput(solarVolt) {
chasefarmer2808 0:cf00868b46a7 5 xbee = new Serial(tx, rx);
chasefarmer2808 0:cf00868b46a7 6 hmc = new HMC5883L(sda, scl);
chasefarmer2808 0:cf00868b46a7 7 hmc->init();
chasefarmer2808 0:cf00868b46a7 8 bmp = new BMP180(sda, scl);
chasefarmer2808 0:cf00868b46a7 9 bmp->Initialize(64, BMP180_OSS_ULTRA_LOW_POWER);
chasefarmer2808 0:cf00868b46a7 10 }
chasefarmer2808 0:cf00868b46a7 11
chasefarmer2808 0:cf00868b46a7 12 bool GliderFuncTest::testCompass() {
chasefarmer2808 0:cf00868b46a7 13 bool res = false;
chasefarmer2808 0:cf00868b46a7 14
chasefarmer2808 0:cf00868b46a7 15 this->heading = this->hmc->getHeading();
chasefarmer2808 0:cf00868b46a7 16
chasefarmer2808 0:cf00868b46a7 17 if (this->heading >= 0) {
chasefarmer2808 0:cf00868b46a7 18 res = true;
chasefarmer2808 0:cf00868b46a7 19 }
chasefarmer2808 0:cf00868b46a7 20
chasefarmer2808 0:cf00868b46a7 21 return res;
chasefarmer2808 0:cf00868b46a7 22 }
chasefarmer2808 0:cf00868b46a7 23
chasefarmer2808 0:cf00868b46a7 24 bool GliderFuncTest::testBMP180() {
chasefarmer2808 0:cf00868b46a7 25 bool res = false;
chasefarmer2808 0:cf00868b46a7 26
chasefarmer2808 0:cf00868b46a7 27 bmp->ReadData(&this->temp, &this->pressure, &this->alt);
chasefarmer2808 0:cf00868b46a7 28
chasefarmer2808 0:cf00868b46a7 29 if (this->temp > 0 && this->pressure > 0 && this->alt > 0) {
chasefarmer2808 0:cf00868b46a7 30 res = true;
chasefarmer2808 0:cf00868b46a7 31 }
chasefarmer2808 0:cf00868b46a7 32
chasefarmer2808 0:cf00868b46a7 33 return res;
chasefarmer2808 0:cf00868b46a7 34 }
chasefarmer2808 0:cf00868b46a7 35
chasefarmer2808 0:cf00868b46a7 36 bool GliderFuncTest::testSolarVoltage() {
chasefarmer2808 0:cf00868b46a7 37 bool res = false;
chasefarmer2808 0:cf00868b46a7 38
chasefarmer2808 0:cf00868b46a7 39 solarVoltage = solarInput.read_u16() * PITO_ADC_RATIO;
chasefarmer2808 0:cf00868b46a7 40 solarVoltage = solarVoltage / SOLAR_V_DIVIDER;
chasefarmer2808 0:cf00868b46a7 41
chasefarmer2808 0:cf00868b46a7 42 if (solarVoltage > 0) {
chasefarmer2808 0:cf00868b46a7 43 res = true;
chasefarmer2808 0:cf00868b46a7 44 }
chasefarmer2808 0:cf00868b46a7 45
chasefarmer2808 0:cf00868b46a7 46 return res;
chasefarmer2808 0:cf00868b46a7 47 }
chasefarmer2808 0:cf00868b46a7 48
chasefarmer2808 0:cf00868b46a7 49 bool GliderFuncTest::testPitotTube() {
chasefarmer2808 0:cf00868b46a7 50 bool res = false;
chasefarmer2808 0:cf00868b46a7 51
chasefarmer2808 0:cf00868b46a7 52 float vInput = this->pitotInput.read_u16() * PITO_ADC_RATIO;
chasefarmer2808 0:cf00868b46a7 53 vInput = vInput / PITO_V_DIVIDER;
chasefarmer2808 0:cf00868b46a7 54
chasefarmer2808 0:cf00868b46a7 55 float diffPressure = (vInput - 0.5) / (0.2 * 5.0); //kPa
chasefarmer2808 0:cf00868b46a7 56 this->speed = sqrt((2*diffPressure) / AIR_DENSITY);
chasefarmer2808 0:cf00868b46a7 57
chasefarmer2808 0:cf00868b46a7 58 if (this->speed > 0) {
chasefarmer2808 0:cf00868b46a7 59 res = true;
chasefarmer2808 0:cf00868b46a7 60 }
chasefarmer2808 0:cf00868b46a7 61
chasefarmer2808 0:cf00868b46a7 62 return res;
chasefarmer2808 0:cf00868b46a7 63 }
chasefarmer2808 0:cf00868b46a7 64
chasefarmer2808 0:cf00868b46a7 65 bool GliderFuncTest::testBuzzer() {
chasefarmer2808 0:cf00868b46a7 66 buzzerOutput.beep(700, 4, false);
chasefarmer2808 0:cf00868b46a7 67 return true;
chasefarmer2808 0:cf00868b46a7 68 }
chasefarmer2808 0:cf00868b46a7 69