|
From: <rum...@us...> - 2008-07-08 03:59:15
|
Revision: 268
http://gearbox.svn.sourceforge.net/gearbox/?rev=268&view=rev
Author: rumataxyz
Date: 2008-07-07 20:59:24 -0700 (Mon, 07 Jul 2008)
Log Message:
-----------
more detailed decoding of receiver status, added type info to the toString gear
Modified Paths:
--------------
gearbox/trunk/submitted/gbxnovatelacfr/driver.cpp
Modified: gearbox/trunk/submitted/gbxnovatelacfr/driver.cpp
===================================================================
--- gearbox/trunk/submitted/gbxnovatelacfr/driver.cpp 2008-07-08 03:58:07 UTC (rev 267)
+++ gearbox/trunk/submitted/gbxnovatelacfr/driver.cpp 2008-07-08 03:59:24 UTC (rev 268)
@@ -753,6 +753,7 @@
std::string
InsPvaData::toString(){
std::stringstream ss;
+ ss << "InsPvaData ";
ss << "timeStampSec " << timeStampSec << " ";
ss << "timeStampUSec " << timeStampUSec << " ";
ss << "gpsWeekNr " << std::fixed << std::setprecision(4) << gpsWeekNr << " ";
@@ -773,6 +774,7 @@
std::string
BestGpsPosData::toString(){
std::stringstream ss;
+ ss << "BestGpsPosData ";
ss << "timeStampSec " << timeStampSec << " ";
ss << "timeStampUSec " << timeStampUSec << " ";
ss << "gpsWeekNr " << gpsWeekNr << " ";
@@ -804,8 +806,9 @@
};
std::string
- BestGpsVelData::toString(){
+BestGpsVelData::toString(){
std::stringstream ss;
+ ss << "BestGpsVelData ";
ss << "timeStampSec " << timeStampSec << " ";
ss << "timeStampUSec " << timeStampUSec << " ";
ss << "gpsWeekNr " << gpsWeekNr << " ";
@@ -824,7 +827,7 @@
std::string
RawImuData::toString(){
std::stringstream ss;
- //int defPrecsion = ss.precision();
+ ss << "RawImuData ";
ss << "timeStampSec " << timeStampSec << " ";
ss << "timeStampUSec " << timeStampUSec << " ";
ss << "gpsWeekNr " << std::fixed << gpsWeekNr << " ";
@@ -1054,11 +1057,42 @@
data->statusMessage = "all is good";
lastStatusWasGood = true;
}
- }else{
- //whoops
- data->statusMessageType = gna::Fault; // warning?
+ }else if(true == gnua::receiverStatusIsWarning(bestGpsPos.header.receiverStatus)){
+ data->statusMessageType = gna::Warning;
data->statusMessage = gnua::receiverStatusToString(bestGpsPos.header.receiverStatus);
lastStatusWasGood = false;
+ }else if(true == gnua::receiverStatusIsError(bestGpsPos.header.receiverStatus)){
+ data->statusMessageType = gna::Fault;
+ data->statusMessage = gnua::receiverStatusToString(bestGpsPos.header.receiverStatus);
+ lastStatusWasGood = false;
+ }else if(true == gnua::receiverStatusIsFatal(bestGpsPos.header.receiverStatus)){
+ //ouch, need to bug out
+ std::stringstream ss;
+ ss << "Receiver reports hardware-error! This is not recoverable!\n"
+ << "You can get additional information by sending \"log rxstatusa once\" to the receiver (minicom/other-terminal-program)!\n"
+ << "GpsStatus:\n";
+ ss << gnua::receiverStatusToString(bestGpsPos.header.receiverStatus);
+ lastStatusWasGood = false;
+ throw ( gua::HardwareException(ERROR_INFO, ss.str()) );
+ }else if(true == gnua::receiverStatusIsReservedValue(bestGpsPos.header.receiverStatus)){
+ //whoops
+ data->statusMessageType = gna::Warning;
+ std::stringstream ss;
+ ss << "Got GPS status which used to be a reserved value: 0x" << hex << bestGpsPos.header.receiverStatus
+ << " Please check your manual what this means, and tell us (gea...@li...) about it.\n"
+ << "Thanks.\n";
+ data->statusMessage = ss.str();
+ lastStatusWasGood = false;
+ }else{
+ // Can't happen
+ data->statusMessageType = gna::Warning;
+ std::stringstream ss;
+ ss << "Failed to decode GPS status: 0x" << hex << bestGpsPos.header.receiverStatus
+ << " Please send a bug-report to gea...@li....\n"
+ << "Include this message and details about your hardware/software configuration.\n"
+ << "Thanks.\n";
+ data->statusMessage = ss.str();
+ lastStatusWasGood = false;
}
return genericData;
@@ -1100,12 +1134,47 @@
data->statusMessage = "all is good";
lastStatusWasGood = true;
}
- }else{
- //whoops
- data->statusMessageType = gna::Fault; // warning?
+ }else if(true == gnua::receiverStatusIsWarning(bestGpsVel.header.receiverStatus)){
+ data->statusMessageType = gna::Warning;
data->statusMessage = gnua::receiverStatusToString(bestGpsVel.header.receiverStatus);
lastStatusWasGood = false;
+ }else if(true == gnua::receiverStatusIsError(bestGpsVel.header.receiverStatus)){
+ data->statusMessageType = gna::Fault;
+ data->statusMessage = gnua::receiverStatusToString(bestGpsVel.header.receiverStatus);
+ lastStatusWasGood = false;
+ }else if(true == gnua::receiverStatusIsFatal(bestGpsVel.header.receiverStatus)){
+ //ouch, need to bug out
+ std::stringstream ss;
+ ss << "Receiver reports hardware-error! This is not recoverable!\n"
+ << "You can get additional information by sending \"log rxstatusa once\" to the receiver (minicom/other-terminal-program)!\n"
+ << "GpsStatus:\n";
+ ss << gnua::receiverStatusToString(bestGpsVel.header.receiverStatus);
+ lastStatusWasGood = false;
+ throw ( gua::HardwareException(ERROR_INFO, ss.str()) );
+ }else if(true == gnua::receiverStatusIsReservedValue(bestGpsVel.header.receiverStatus)){
+ //whoops
+ data->statusMessageType = gna::Warning;
+ std::stringstream ss;
+ ss << "Got GPS status which used to be a reserved value: 0x" << hex << bestGpsVel.header.receiverStatus
+ << " Please check your manual what this means, and tell us (gea...@li...) about it.\n"
+ << "Thanks.\n";
+ data->statusMessage = ss.str();
+ lastStatusWasGood = false;
+ }else{
+ // Can't happen
+ data->statusMessageType = gna::Warning;
+ std::stringstream ss;
+ ss << "Failed to decode GPS status: 0x" << hex << bestGpsVel.header.receiverStatus
+ << " Please send a bug-report to gea...@li....\n"
+ << "Include this message and details about your hardware/software configuration.\n"
+ << "Thanks.\n";
+ data->statusMessage = ss.str();
+ lastStatusWasGood = false;
}
+
+
+
+
return genericData;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|