/** * @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); }