Merge branch 'main' into more-gps-tm
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
This commit is contained in:
commit
04dde604db
@ -22,6 +22,10 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- Skyview dataset for more GPS TM has been added
|
- Skyview dataset for more GPS TM has been added
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
- The handling function of the GPS data is only called once per GPS read. This should remove
|
||||||
|
the fake fix-has-changed events.
|
||||||
|
|
||||||
# [v6.3.0] 2023-08-03
|
# [v6.3.0] 2023-08-03
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
@ -184,30 +184,32 @@ bool GpsHyperionLinuxController::readGpsDataFromGpsd() {
|
|||||||
if (mode == MODE_OFF) {
|
if (mode == MODE_OFF) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
unsigned int readIdx = 0;
|
||||||
if (readMode == ReadModes::SOCKET) {
|
if (readMode == ReadModes::SOCKET) {
|
||||||
// Poll the GPS.
|
// Poll the GPS.
|
||||||
if (gps_waiting(&gps, 0)) {
|
while (gps_waiting(&gps, 0)) {
|
||||||
if (-1 == gps_read(&gps)) {
|
int retval = gps_read(&gps);
|
||||||
|
if (retval < 0) {
|
||||||
readError();
|
readError();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
oneShotSwitches.gpsReadFailedSwitch = true;
|
readIdx++;
|
||||||
ReturnValue_t result = handleGpsReadData();
|
if (readIdx >= 40) {
|
||||||
if (result == returnvalue::OK) {
|
sif::warning << "GpsHyperionLinuxController: Received " << readIdx
|
||||||
return true;
|
<< " GPSD message consecutively" << std::endl;
|
||||||
} else {
|
break;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
noModeSetCntr = 0;
|
}
|
||||||
} else {
|
if (readIdx > 0) {
|
||||||
return false;
|
oneShotSwitches.gpsReadFailedSwitch = true;
|
||||||
|
handleGpsReadData();
|
||||||
}
|
}
|
||||||
} else if (readMode == ReadModes::SHM) {
|
} else if (readMode == ReadModes::SHM) {
|
||||||
sif::error << "GpsHyperionLinuxController::readGpsDataFromGpsdPermanentLoop: "
|
sif::error << "GpsHyperionLinuxController::readGpsDataFromGpsdPermanentLoop: "
|
||||||
"SHM read not implemented"
|
"SHM read not implemented"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
}
|
}
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
|
ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
|
||||||
|
@ -84,7 +84,6 @@ class GpsHyperionLinuxController : public ExtendedControllerBase {
|
|||||||
} oneShotSwitches;
|
} oneShotSwitches;
|
||||||
|
|
||||||
bool debugHyperionGps = false;
|
bool debugHyperionGps = false;
|
||||||
int32_t noModeSetCntr = 0;
|
|
||||||
|
|
||||||
// Returns true if the function should be called again or false if other
|
// Returns true if the function should be called again or false if other
|
||||||
// controller handling can be done.
|
// controller handling can be done.
|
||||||
|
Loading…
Reference in New Issue
Block a user