Brief description of class still missing. More...
#include <DownloadGpsRaw.h>
Public Member Functions | |
| void | addStation (Station *s) |
| DownloadGpsRaw (QWidget *parent=0) | |
| void | terminate () |
| void | toRinex () |
| ~DownloadGpsRaw () | |
Brief description of class still missing.
Full description of class still missing
| DownloadGpsRaw::DownloadGpsRaw | ( | QWidget * | parent = 0 | ) |
| void DownloadGpsRaw::addStation | ( | Station * | s | ) |
References Station::name(), and TRACE.
{
TRACE;
int i=_stations.count();
_stations.insert(s, i);
stations->setRowCount(i+1);
stations->setItem(i, 0, new QTableWidgetItem(s->name()));
stations->setItem(i, 1, new QTableWidgetItem("waiting"));
stations->setItem(i, 2, new QTableWidgetItem("0"));
connect(s, SIGNAL(rawFileReady()), this, SLOT(rawFileReady()));
connect(s, SIGNAL(rawFileError()), this, SLOT(rawFileError()));
connect(s, SIGNAL(rawFileSize(int)), this, SLOT(rawFileSize(int)));
}
| void DownloadGpsRaw::terminate | ( | ) |
| void DownloadGpsRaw::toRinex | ( | ) |
References Station::currentGpsFileName(), QGpCoreTools::endl(), MSG_ID, Station::name(), QGpCoreTools::tr(), and TRACE.
{
TRACE;
MessageContext mc;
for(QMap<Station *, int>::iterator it=_stations.begin(); it!=_stations.end(); it++) {
if(stations->item(it.value(), 1)->text()=="finished") {
Station * s=it.key();
QString gpsName=s->name();
gpsName.replace("WAU", "WA");
QProcess p;
p.setProcessChannelMode(QProcess::MergedChannels);
QString cmd("teqc -ublox ubx -O.mo ");
cmd+=gpsName;
cmd+=" -O.rn ";
cmd+=gpsName;
cmd+=" -O.int 1 +nav ";
cmd+=s->currentGpsFileName()+"n";
cmd+=" +obs ";
cmd+=s->currentGpsFileName()+"o";
cmd+=" ";
cmd+=s->currentGpsFileName()+"ubx";
App::stream() << cmd << endl;
p.start(cmd);
p.waitForFinished(100); // wait 60 s
p.waitForFinished(60000); // wait 60 s
if(p.state()==QProcess::Running) {
p.kill();
Message::warning(MSG_ID, tr("Rinex conversion"), tr("Time out running teqc for station '%1'").arg(s->name()), Message::ok(), true);
} else {
switch(p.exitStatus()) {
case QProcess::NormalExit:
switch(p.exitCode()) {
case 0:
break;
default:
Message::warning(MSG_ID, tr("Rinex conversion"),
tr("teqc returned code %1 for station '%2'").arg(p.exitCode()).arg(s->name()),
Message::ok(), true);
break;
}
break;
default:
Message::warning(MSG_ID, tr("Rinex conversion"),
tr("teqc crashed for station '%1'").arg(s->name()),
Message::ok(), true);
break;
}
}
}
}
Message::information(MSG_ID, tr("Rinex conversion"),
tr("All ubx file are now converted to Rinex in /tmp/waran. You can post-process them."),
Message::ok());
}