Brief description of class still missing. More...
#include <GpsDaemonApplication.h>
Public Member Functions | |
| virtual void | close () |
| GpsDaemonApplication (int &argc, char **argv, ApplicationHelp *(*help)(), bool reportBugs=true) | |
Static Public Member Functions | |
| static UbxDevice * | gpsThread () |
| static PPSDevice * | ppsThread () |
| static void | setGPSThread (UbxDevice *s) |
| static void | setPPSThread (PPSDevice *s) |
Protected Member Functions | |
| virtual void | installInterruptSignals () |
| virtual void | parentProcessWait () |
Static Protected Member Functions | |
| static void | childInterrupted (int signum) |
Brief description of class still missing.
Full description of class still missing
| GpsDaemonApplication::GpsDaemonApplication | ( | int & | argc, |
| char ** | argv, | ||
| ApplicationHelp *(*)() | help, | ||
| bool | reportBugs = true |
||
| ) |
Description of constructor still missing
: DaemonApplication(argc, argv, help, reportBugs) { _gpsThread=0; _ppsThread=0; }
| void GpsDaemonApplication::childInterrupted | ( | int | signum | ) | [static, protected] |
Reimplemented from GpCoreTools::DaemonApplication.
References GpCoreTools::PThread::stop().
Referenced by installInterruptSignals().
{
// Do not use TRACE here because it uses a mutex which can be locked while this function
// is called inside a signal exception.
if(_gpsThread) {
_gpsThread->stop();
}
if(_ppsThread) {
_ppsThread->stop();
}
DaemonApplication::childInterrupted(signum);
}
| void GpsDaemonApplication::close | ( | ) | [virtual] |
Description of destructor still missing
Reimplemented from GpCoreTools::DaemonApplication.
References GpCoreTools::PThread::wait().
Referenced by main().
{
if(_gpsThread) {
_gpsThread->wait();
delete _gpsThread;
_gpsThread=0;
}
if(_ppsThread) {
_ppsThread->wait();
delete _ppsThread;
_ppsThread=0;
}
DaemonApplication::close();
}
| static UbxDevice* GpsDaemonApplication::gpsThread | ( | ) | [inline, static] |
Referenced by main().
{return _gpsThread;}
| void GpsDaemonApplication::installInterruptSignals | ( | ) | [protected, virtual] |
Reimplemented from GpCoreTools::DaemonApplication.
References childInterrupted().
{
signal(SIGTERM, childInterrupted);
signal(SIGINT, childInterrupted);
}
| void GpsDaemonApplication::parentProcessWait | ( | ) | [protected, virtual] |
Reimplemented from GpCoreTools::DaemonApplication.
References GpCoreTools::CoreApplication::exit().
{
struct stat sInfo;
remove("/tmp/system_clock_set");
Leds::timer(0, 1000, 1000);
printf("\nWaiting for time: ");
fflush(stdout);
int i=2;
int sErr;
do {
sleep(2);
if(i%10==0) {
printf(":");
} else {
printf(".");
}
i+=2;
fflush(stdout);
sErr=stat("/var/run/warangpsd.pid", &sInfo);
if(sErr!=0) { // Pid file for child process removed, stop waiting.
sErr=stat("/tmp/system_clock_set", &sInfo);
if(sErr==0) {
break;
} else {
printf("\n");
exit(2); // finished without getting correct time
}
}
sErr=stat("/tmp/system_clock_set", &sInfo);
} while(sErr!=0);
printf("\n");
Leds::power(0, true);
}
| static PPSDevice* GpsDaemonApplication::ppsThread | ( | ) | [inline, static] |
Referenced by main().
{return _ppsThread;}
| static void GpsDaemonApplication::setGPSThread | ( | UbxDevice * | s | ) | [inline, static] |
Referenced by main().
{_gpsThread=s;}
| static void GpsDaemonApplication::setPPSThread | ( | PPSDevice * | s | ) | [inline, static] |
Referenced by main().
{_ppsThread=s;}