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] |