Brief description of class still missing. More...
#include <TitanProcess.h>
Classes | |
| struct | File |
Public Slots | |
| void | fileCreated (const QString &path) |
Public Member Functions | |
| void | setInitialWatchDelay (int secs) |
| void | setSignalDuration (double d) |
| bool | setSourcePath (const QString &path) |
| void | setStationName (const QString &name) |
| void | setTimeReference (const QDateTime &t) |
| TitanProcess (QObject *parent=0) | |
| ~TitanProcess () | |
Brief description of class still missing.
Full description of class still missing
| TitanProcess::TitanProcess | ( | QObject * | parent = 0 | ) |
Description of constructor still missing
References fileCreated(), GeopsyCore::AsciiSignalFormat::insertRule(), GeopsyCore::AsciiSignalFormatRule::setData(), GeopsyCore::AsciiSignalFormat::setHeaderPattern(), GeopsyCore::AsciiSignalFormat::setHeaderType(), GeopsyCore::AsciiSignalFormatRule::setPattern(), GeopsyCore::AsciiSignalFormat::setTimeFormat(), and TRACE.
: QObject(parent), _workDir("/tmp") { TRACE; connect(&_fsWatcher, SIGNAL(fileCreated(const QString &)), this, SLOT(fileCreated(const QString&))); _workDir.mkdir("kephren"); _workDir.cd("kephren"); _fltFilter.append("*.flt"); _binFilter.append("*.BIN"); _binInfoFilter.append("*.BIN"); _binInfoFilter.append("*.info"); _timeReference.setDate(QDate::currentDate()); _timeReference.setTime(QTime(0,0,0)); _signalDuration=300.0; _sendLedTimer.setInterval(60000); connect(&_sendLedTimer, SIGNAL(timeout()), this, SLOT(setSendLedStatus())); // Defines rules for parsing a Titan ascii format _titanAsciiFormat.setHeaderType(AsciiSignalFormat::EndHeaderPattern); _titanAsciiFormat.setHeaderPattern("^[#]{10,} *$"); _titanAsciiFormat.setTimeFormat("yyyy.MM.dd-hh:mm:ss"); // Channel mapping to component: TODO add a configuration file with channel names // Components are ignored here, they will be recognized by channel names (including Z, N or E) //_titanAsciiFormat.addComponentMap("0", Signal::Vertical); //_titanAsciiFormat.addComponentMap("1", Signal::North); //_titanAsciiFormat.addComponentMap("2", Signal::East); AsciiSignalFormatRule rule; rule.setData(MetaDataFactory::Name); rule.setPattern("\n([a-zA-Z0-9_]+) *station *\n"); _titanAsciiFormat.insertRule(0, rule); // Use Comment to store channel number _channels.insert(0, "C1Z"); _channels.insert(1, "C1N"); _channels.insert(2, "C1E"); _channels.insert(3, "C2Z"); _channels.insert(4, "C2N"); _channels.insert(5, "C2E"); rule.setData(Comments::staticId()); rule.setPattern("\n([0-9]+) *channel *\n"); _titanAsciiFormat.insertRule(0, rule); rule.setData(MetaDataFactory::SamplingFrequency); rule.setPattern("\n([0-9\\.]+) *sample *rate *\n"); _titanAsciiFormat.insertRule(0, rule); rule.setData(MetaDataFactory::TimeReference); rule.setPattern("\n([0-9]{4}\\.[0-9]{2}\\.[0-9]{2}.[0-9]{2}:[0-9]{2}:[0-9]{2}).* start *time *\n"); _titanAsciiFormat.insertRule(0, rule); rule.setData(MetaDataFactory::T0); rule.setPattern("[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+) *start *time *\n"); _titanAsciiFormat.insertRule(0, rule); // Do not read VoltPerCount to stay in count and avoid rescaling when sending data. //rule.setData(Signal::DataIndex(Signal::VoltPerCount)); //rule.setPattern("\n[0-9\\.]+ *conversion *factor *[(] *nV */ *digit *[)] *\n"); //rule.setFactor(1e-9); //_titanAsciiFormat.addRule(rule); }
Description of destructor still missing
References TRACE.
{
TRACE;
// Cleans everything in work directory
QStringList tmpFiles=_workDir.entryList(QDir::Files | QDir::NoDotAndDotDot);
foreach(QString f, tmpFiles) {
_workDir.remove(f);
}
// ... and removes it
_workDir.cdUp();
_workDir.rmdir("kephren");
}
| void TitanProcess::fileCreated | ( | const QString & | path | ) | [slot] |
References GeopsyCore::GeopsyCoreEngine::clear(), QGpCoreTools::endl(), GeopsyCore::geopsyCore, QGpCoreTools::tr(), and TRACE.
Referenced by TitanProcess().
{
TRACE;
QFileInfo fi(path);
File f;
f.time.setTime(QTime::fromString(fi.fileName(), "hh.mm.ss"));
f.time.setDate(QDate::fromString(fi.dir().dirName(), "yyyy.MM.dd"));
f.path=path;
_files.append(f);
App::stream() << tr("new data from %1").arg(f.time.toString("yyyy-MM-dd hh:mm:ss")) << endl;
if(!extractTime(path)) {
return;
}
if(loadTitan()) {
send();
// Clean all geopsy database
geopsyCore->clear();
}
}
| void TitanProcess::setInitialWatchDelay | ( | int | secs | ) | [inline] |
References KephrenFtpWatcher::setInitialWatchDelay().
{_fsWatcher.setInitialWatchDelay(secs);}
| void TitanProcess::setSignalDuration | ( | double | d | ) | [inline] |
{_signalDuration=d;}
| bool TitanProcess::setSourcePath | ( | const QString & | path | ) |
References QGpCoreTools::endl(), KephrenFtpWatcher::setPath(), QGpCoreTools::tr(), and TRACE.
{
TRACE;
ASSERT(!_stationName.isEmpty());
QDir d(path);
if(!d.exists(_stationName)) {
App::stream() << tr("error: source path %1/%2 does not exist").arg(path).arg(_stationName) << endl;
return false;
}
d.cd(_stationName);
QFileInfo fi(d.absolutePath());
if(!fi.isReadable()) {
App::stream() << tr("error: not enough permissions to read source path %1").arg(fi.filePath()) << endl;
return false;
}
_fsWatcher.setPath(fi.filePath());
App::stream() << tr("source path: %1").arg(fi.filePath()) << endl;
return true;
}
| void TitanProcess::setStationName | ( | const QString & | name | ) | [inline] |
{_stationName=name;}
| void TitanProcess::setTimeReference | ( | const QDateTime & | t | ) | [inline] |
{_timeReference=t;}