|
INTRODUCTION Overview Download and Install Documentation Publications REPOSITORY Libraries DEVELOPER Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
GbxNovatelAcfrACFR driver for a Novatel(SPAN) system.
More...
|
NovatelSPAN is a proprietary Novatel navigation system. It minimally consists out of a Novatel OEMV GPS receiver (OEM4 receivers should be compatible). If combined with an IMU, a SPAN system can provide an INS navigation solution at high rate (up to 100Hz). The driver initializes the hardware and reports navigation data continuously.
for a full list of functions see gbxnovatelacfr
#include <gbxnovatelacfr/driver.h>
To run the test program (defaults: /dev/ttyS0, 115200 bps, ...) call it without parameters.
$ gbxnovatelacfrtest
If you want to change things, get a short usage description:
$ gbxnovatelacfrtest -h
The test program reports back all messages received from the driver and prints out the data fields for each message (in verbose mode).
#include <gbxnovatelacfr/driver.h>
#include <cstdlib>
#include <iostream>
#include <memory>
#include <vector>
namespace gna = gbxnovatelacfr;
int main(void){
// create a valid configuration
std::vector<double> imuToGpsOffset(3,0.0); // made up; this MUST be correct for real work (see gbxnovatelacfr::Config::imuToGpsOffset_)
gna::SimpleConfig sCfg(std::string("/dev/ttyS0"), 115200, std::string("IMU_HG1700_AG11"), imuToGpsOffset);
gna::Config cfg(sCfg);
// create the driver
gna::Driver driver(cfg);
while(0){
// read from the driver
std::auto_ptr<gna::GenericData > generic = driver.read();
// figure out what type of data we got
switch(generic->type()){
case gna::InsPva:
{
// process data
gna::InsPvaData *data = dynamic_cast<gna::InsPvaData *>(generic.get());
std::cout << data->toString() << "\n";
}
break;
case gna::BestGpsPos:
{
// process data
gna::BestGpsPosData *data = dynamic_cast<gna::BestGpsPosData *>(generic.get());
std::cout << data->toString() << "\n";
}
break;
case gna::BestGpsVel:
{
// process data
gna::BestGpsVelData *data = dynamic_cast<gna::BestGpsVelData *>(generic.get());
std::cout << data->toString() << "\n";
}
break;
case gna::RawImu:
{
// process data
gna::RawImuData *data = dynamic_cast<gna::RawImuData *>(generic.get());
std::cout << data->toString() << "\n";
}
break;
default:
if(0 == generic.get()){
std::cout << "Got NULL message!\n";
}
else{
std::cout << "Got unknown message!\n";
std::cout << generic->toString() << "\n"; // yes this works, since toString() is a member of the base class
}
break;
}
}
return EXIT_SUCCESS;
}
The following sources have also been helpful:
1.4.5