Example program to connect to a GPS and read and display data on the terminal. Also tries to connect to a TCM compass through the computer serial port, and use that to set the ArGPS compass data.
#include "Aria.h"
#include "ArGPS.h"
#include "ArGPSConnector.h"
#include "ArTrimbleGPS.h"
#include "ArTCMCompassDirect.h"
#include <iostream>
int main(int argc, char** argv)
{
{
ArLog::log(
ArLog::Terse,
"gpsExample options:\n -printTable Print data to standard output in regular columns rather than a refreshing terminal display, and print more digits of precision");
return 1;
}
{
ArLog::log(
ArLog::Terse,
"gpsExample: Warning: Could not connect to robot. Will not be able to switch GPS power on, or load GPS options from this robot's parameter file.");
}
else
{
}
{
ArLog::log(
ArLog::Terse,
"gpsExample: Error connecting to GPS device. Try -gpsType, -gpsPort, and/or -gpsBaud command-line arguments. Use -help for help.");
return -1;
}
{
(
dynamic_cast<ArSimulatedGPS*
>(gps))->setDummyPosition(42.80709, -71.579047, 100);
}
if(printTable)
gps->
printDataLabelsHeader();
while(true)
{
if(r & ArGPS::ReadError)
{
continue;
}
if(r & ArGPS::ReadUpdated)
{
if(printTable)
{
printf("\n");
}
else
{
printf("\r");
}
fflush(stdout);
continue;
} else {
}
continue;
}
}
return 0;
}
@ Simulator
Simulated (program must set dummy positions)
Definition: ArGPSConnector.h:117
ArGPS * createGPS(ArRobot *robot=NULL)
Create a new GPS object (may be an ArGPS subclass based on device type) and a device connection for t...
Definition: ArGPSConnector.cpp:131
virtual bool connect(unsigned long connectTimeout=20000)
Check that the device connection (e.g.
Definition: ArGPS.cpp:181
void loadDefaultArguments(int positon=1)
Adds args from default files and environmental variables.
Definition: ArArgumentParser.cpp:736
Factory for creating GPS interface object (for any kind of GPS supported by ARIA) based on robot para...
Definition: ArGPSConnector.h:67
bool com2Bytes(unsigned char command, char high, char low)
Sends a command to the robot with two bytes for argument.
Definition: ArRobot.cpp:5648
@ Terse
Use terse logging.
Definition: ArLog.h:61
Legacy connector for robot and laser.
Definition: ArSimpleConnector.h:51
bool connectRobot(ArRobot *robot)
Sets up the robot then connects it.
Definition: ArSimpleConnector.cpp:209
bool checkArgument(const char *argument)
Returns true if the argument was found.
Definition: ArArgumentParser.cpp:95
static void log(LogLevel level, const char *str,...)
Log a message, with formatting and variable number of arguments.
Definition: ArLog.cpp:93
void setToNow(void)
Resets the time.
Definition: ariaUtil.cpp:1086
static void init(SigHandleMethod method=SIGHANDLE_THREAD, bool initSockets=true, bool sigHandleExitNotShutdown=true)
Initialize Aria global data struture and perform OS-specific initialization, including adding OS sign...
Definition: Aria.cpp:128
bool checkHelpAndWarnUnparsed(unsigned int numArgsOkay=0)
Checks for the help strings and warns about unparsed arguments.
Definition: ArArgumentParser.cpp:843
Central class for communicating with and operating the robot.
Definition: ArRobot.h:82
Parse and store program command-line arguments for use by other ARIA classes.
Definition: ArArgumentParser.h:64
static void logOptions(void)
Logs all the options for the program (Calls all the callbacks added with addLogOptionsCB())
Definition: Aria.cpp:794
static bool init(LogType type, LogLevel level, const char *fileName="", bool logTime=false, bool alsoPrint=false, bool printThisCall=true)
Initialize the logging utility with options.
Definition: ArLog.cpp:437
@ StdErr
Use stderr for logging.
Definition: ArLog.h:55
void runAsync(bool stopRunIfNotConnected, bool runNonThreadedPacketReader=false)
Starts the instance to do processing in its own new thread.
Definition: ArRobot.cpp:301
long secSince(ArTime since) const
Gets the number of seconds since the given timestamp to this one.
Definition: ariaUtil.h:1055
static bool parseArgs(void)
Parses the arguments for the program (calls all the callbacks added with addParseArgsCB())
Definition: Aria.cpp:759
static void sleep(unsigned int ms)
Sleep for the given number of milliseconds.
Definition: ariaUtil.cpp:151
@ Normal
Use normal logging.
Definition: ArLog.h:62
A class for time readings and measuring durations.
Definition: ariaUtil.h:1001
void printData(bool labels=true) const
Print basic navigation data on one line to standard output, with no newline at end.
Definition: ArGPS.cpp:477
virtual int read(unsigned long maxTime=0)
Read some data from the device connection, and update stored data as complete messages are received.
Definition: ArGPS.cpp:221
GPS Device Interface.
Definition: ArGPS.h:104