Files
Bachelorarbeit-Rover/src/SpecialMenus/SensorData/menuSensorData.cpp
T
2023-09-10 13:00:12 +02:00

120 lines
3.4 KiB
C++

/**
* @file menuSensorData.cpp
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
* @date 2023-09-04
*
* @copyright Copyright (c) 2023
*
*/
#include "menuSensorData.h"
MenuSensorData::MenuSensorData(SensorData* sensorData) :
MenuInformationSites(7) {
this->sensorData = sensorData;
}
void MenuSensorData::printPage() const {
const UBX_NAV_PVT_data_t* gpsData = this->sensorData->getGnssData();
uint8_t fixType = 0;
if (gpsData)
fixType = gpsData->fixType;
String lineOne = "";
String lineTwo = "";
switch (this->getCurrentPage()) {
case 0:
lineOne = " Y P R :";
lineTwo.concat(this->sensorData->getGyroData()[0]);
lineTwo.concat(" ");
lineTwo.concat(this->sensorData->getGyroData()[1]);
lineTwo.concat(" ");
lineTwo.concat(this->sensorData->getGyroData()[2]);
break;
case 1:
lineOne = "Real Azimuth:";
lineTwo.concat(this->sensorData->getRealAzimuth());
break;
case 2:
lineOne = "Calc Azimuth:";
lineTwo.concat(this->sensorData->getCalcAzimuth());
lineTwo.concat(" ");
lineTwo.concat(CalcAzimuth::stateToString(this->sensorData->getCalcAzimuthState));
break;
case 3: {
lineOne = "Lat:";
lineTwo = "Lon:";
Point pos = this->sensorData->getCurrentPos();
lineOne.concat(pos.getLatitude());
lineTwo.concat(pos.getLongitude());
}
break;
case 4:
lineOne = "Time: ";
lineTwo = "";
if (fixType) {
if (gpsData->hour < 10)
lineTwo.concat("0");
lineTwo.concat(gpsData->hour);
lineTwo.concat(":");
if (gpsData->min < 10)
lineTwo.concat("0");
lineTwo.concat(gpsData->min);
lineTwo.concat(":");
if (gpsData->sec < 10)
lineTwo.concat("0");
lineTwo.concat(gpsData->sec);
} else
lineTwo = "00:00:00";
break;
case 5: {
lineOne = "CarSol: ";
lineTwo = "Ntrip: ";
uint8_t carrSoln = gpsData->flags.bits.carrSoln;
if (carrSoln == 0)
lineOne = "None";
else if (carrSoln == 1)
lineOne = "Floating";
else if (carrSoln == 2)
lineOne = "Fixed";
else
lineOne = "UNKNOWN";
NTRIPClientStates status = this->sensorData->getNtripState();
if (status == NTRIPClientStates::pushData)
lineTwo = "enabled";
else if (status == NTRIPClientStates::notAvailable)
lineTwo = " N/A";
else
lineTwo = "disabled";
}
break;
case 6:
lineOne = "HAcc: ";
lineTwo = "Sats: ";
if (fixType) {
lineOne.concat(gpsData->hAcc);
lineTwo.concat(gpsData->numSV);
} else {
lineOne = "-/-";
lineTwo = "-/-";
}
break;
default:
this->printDefault();
return;
}
this->print(lineOne, lineTwo);
}