Brief description of class still missing. More...
#include <SeedLinkStream.h>
Public Types | |
enum | BufferType { Unlimited, CreateNew, Rotate } |
Public Member Functions | |
int | beginRecNo () const |
QString | beginTime () const |
void | detachSignal () |
int | endRecNo () const |
QString | endTime () const |
bool | gapCheck () const |
int | gapThreshold () const |
void | initSignal (double t0, double samplingFrequency) |
bool | listening () const |
double | localTime (double t) const |
QString | location () const |
SeedLinkStream (SeedLinkStation *station) | |
QString | seedName () const |
void | set (double t, int *samples, int nSamples, BufferType bt, double maxTime=0.0) |
bool | setListening (bool l) |
void | setSeedName (QString n) |
void | setTag () |
DynamicSignal * | signal () const |
SeedLinkStation * | station () const |
QByteArray | tag () const |
QString | type () const |
virtual void | xml_attributes (XML_ATTRIBUTES_ARGS) const |
virtual bool | xml_setAttributes (XML_SETATTRIBUTES_ARGS) |
virtual const QString & | xml_tagName () const |
Static Public Attributes | |
static const QString | xmlSeedLinkStreamTag = "stream" |
Brief description of class still missing.
Full description of class still missing
int GeopsySLink::SeedLinkStream::beginRecNo | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _beginRecNo;}
QString GeopsySLink::SeedLinkStream::beginTime | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _beginTime;}
void GeopsySLink::SeedLinkStream::detachSignal | ( | ) | [inline] |
Referenced by GeopsySLink::SeedLink::removeStream().
{_signal=0;}
int GeopsySLink::SeedLinkStream::endRecNo | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _endRecNo;}
QString GeopsySLink::SeedLinkStream::endTime | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _endTime;}
bool GeopsySLink::SeedLinkStream::gapCheck | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _gapCheck;}
int GeopsySLink::SeedLinkStream::gapThreshold | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _gapThreshold;}
void GeopsySLink::SeedLinkStream::initSignal | ( | double | t, |
double | samplingFrequency | ||
) |
Initialize internal signal starting at t (expressed in seconds from January 1970).
References GeopsyCore::Signal::setDeltaT(), GeopsyCore::Signal::setT0(), GeopsyCore::Signal::setTimeReference(), and TRACE.
{ TRACE; uint sec=(uint) floor(t); double msec=t - (double) sec; QDateTime tPacket; tPacket.setTimeSpec(Qt::UTC); tPacket.setTime_t(sec); // QDateTime tRef=tPacket; tRef.setTime(QTime( 0, 0) ); // Set reference at midnight createSignal(); _signal->setDeltaT(1.0/samplingFrequency); _signal->setT0(tRef.secsTo(tPacket)+msec); _signal->setTimeReference(tRef); }
bool GeopsySLink::SeedLinkStream::listening | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data().
{return _listening;}
double GeopsySLink::SeedLinkStream::localTime | ( | double | t | ) | const |
Transform t expressed in seconds from January 1970 into number of seconds since time reference of internal dynamic signal.
References GeopsyCore::Signal::timeReference(), and TRACE.
{ TRACE; uint sec=(uint) floor(t); double msec=t - (double) sec; QDateTime tPacket; tPacket.setTime_t(sec); QDateTime tRef=_signal->timeReference(); return tRef.secsTo(tPacket)+msec; }
QString GeopsySLink::SeedLinkStream::location | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data(), GeopsySLink::SeedLinkStation::indexOf(), and GeopsySLink::SeedLink::run().
{return _location;}
QString GeopsySLink::SeedLinkStream::seedName | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data(), GeopsySLink::SeedLinkStation::indexOf(), and GeopsySLink::SeedLink::run().
{return _seedName;}
void GeopsySLink::SeedLinkStream::set | ( | double | t, |
int * | samples, | ||
int | nSamples, | ||
BufferType | bt, | ||
double | maxTime = 0.0 |
||
) |
t is the number of seconds counted from time reference.
maxTime is the maximum expected duration when applicable (rotate, createNew)
References CreateNew, GeopsyCore::DoubleSignal::deltaT(), GeopsyCore::Signal::endTime(), Rotate, GeopsyCore::DynamicSignal::set(), GeopsyCore::Signal::setDeltaT(), GeopsyCore::Signal::setT0(), GeopsyCore::Signal::setTimeReference(), GeopsyCore::DynamicSignal::shiftT0(), GeopsyCore::Signal::t0(), GeopsyCore::Signal::timeReference(), TRACE, and Unlimited.
{ TRACE; switch (bt) { case Unlimited: _signal->set(t, samples, nSamples); break; case CreateNew: { if(maxTime==0.0) return; double availableTime=maxTime-(t-_signal->t0()); if((nSamples*_signal->deltaT())>availableTime) { int nSamplesOld=(int)floor(availableTime/_signal->deltaT()); _signal->set(t, samples, nSamplesOld); DynamicSignal * oldSignal=_signal; createSignal(); _signal->setT0(oldSignal->endTime()); _signal->setDeltaT(oldSignal->deltaT()); _signal->setTimeReference(oldSignal->timeReference()); _signal->set(_signal->t0(), samples+nSamplesOld, nSamples-nSamplesOld); } else { _signal->set(t, samples, nSamples); } } break; case Rotate: { if(maxTime==0.0) return; double availableTime=maxTime-(t-_signal->t0()); if((nSamples*_signal->deltaT())>availableTime) { int n=nSamples-(int)floor(availableTime/_signal->deltaT()); _signal->shiftT0(n); } _signal->set(t, samples, nSamples); } break; } }
bool GeopsySLink::SeedLinkStream::setListening | ( | bool | l | ) | [inline] |
Referenced by GeopsySLink::SeedLink::addStream(), and GeopsySLink::SeedLink::removeStream().
{return _listening=l;}
void GeopsySLink::SeedLinkStream::setSeedName | ( | QString | n | ) | [inline] |
Referenced by ConformProcess::start().
{_seedName=n;}
void GeopsySLink::SeedLinkStream::setTag | ( | ) |
References GeopsySLink::SeedLinkStation::name(), GeopsySLink::SeedLinkStation::network(), and TRACE.
Referenced by ConformProcess::start(), and xml_setAttributes().
DynamicSignal* GeopsySLink::SeedLinkStream::signal | ( | ) | const [inline] |
Referenced by GeopsySLink::SeedLinkServer::allSignals(), and GeopsySLink::SeedLink::run().
{return _signal;}
SeedLinkStation* GeopsySLink::SeedLinkStream::station | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::parent(), GeopsySLink::SeedLink::run(), and SeedLinkStream().
{return _station;}
QByteArray GeopsySLink::SeedLinkStream::tag | ( | ) | const [inline] |
Referenced by GeopsySLink::SeedLink::addStream(), and GeopsySLink::SeedLink::removeStream().
{return _tag;}
QString GeopsySLink::SeedLinkStream::type | ( | ) | const [inline] |
Referenced by GeopsySLinkGui::SeedLinkStreamItem::data(), and GeopsySLink::SeedLink::run().
{return _type;}
void GeopsySLink::SeedLinkStream::xml_attributes | ( | XML_ATTRIBUTES_ARGS | ) | const [virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References TRACE.
{ TRACE; Q_UNUSED(context); static const QString keys[]={ "location", "seedname", "type", "begin_time", "end_time", "begin_recno", "end_recno", "gap_check", "gap_threshold" }; attributes.add(keys[0], _location); attributes.add(keys[1], _seedName); attributes.add(keys[2], _type); attributes.add(keys[3], _beginTime); attributes.add(keys[4], _endTime); attributes.add(keys[5], QString::number(_beginRecNo) ); attributes.add(keys[6], QString::number(_endRecNo) ); attributes.add(keys[7], _gapCheck ? "enabled" : "disabled" ); attributes.add(keys[8], QString::number(_gapThreshold) ); }
bool GeopsySLink::SeedLinkStream::xml_setAttributes | ( | XML_SETATTRIBUTES_ARGS | ) | [virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References setTag(), QGpCoreTools::StringSection::size(), and TRACE.
{ TRACE; Q_UNUSED(context); for(XMLRestoreAttributeIterator it=attributes.begin(); it!= attributes.end(); it++ ) { const StringSection& att=it.key(); if(att.size()<1) return false; switch (att[0].unicode()) { case 'l': if(att=="location" ) _location=it.value().toString(); else return false; break; case 's': if(att=="seedname" ) _seedName=it.value().toString(); else return false; break; case 't': if(att=="type" ) _type=it.value().toString(); else return false; break; case 'b': if(att=="begin_time" ) _beginTime=it.value().toString(); else if(att=="begin_recno" ) _beginRecNo=it.value().toInt(); else return false; break; case 'e': if(att=="end_time" ) _endTime=it.value().toString(); else if(att=="end_recno" ) _endRecNo=it.value().toInt(); else return false; break; case 'g': if(att=="gap_check" ) _gapCheck=it.value()=="enabled"; else if(att=="gap_treshold" ) _gapThreshold=it.value().toInt(); else return false; break; default: return false; } } setTag(); return true; }
virtual const QString& GeopsySLink::SeedLinkStream::xml_tagName | ( | ) | const [inline, virtual] |
Implements QGpCoreTools::XMLClass.
{return xmlSeedLinkStreamTag;}
const QString GeopsySLink::SeedLinkStream::xmlSeedLinkStreamTag = "stream" [static] |