Brief description of class still missing. More...
#include <SeedLinkLoader.h>
Signals | |
| void | dataChanged (Signal *sig, TimeRange tw) |
| void | started () |
| void | stopped () |
Public Member Functions | |
| void | removeOptions () |
| void | removeView () |
| SeedLinkLoader (QWidget *parent=0) | |
| void | selectStreams (QString selection) |
| void | setBufferType (SeedLinkStream::BufferType bt) |
| void | setFromTime (QDateTime f) |
| void | setMaximumDuration (double d) |
| void | setServer (QString serverAddress, int serverPort) |
| ~SeedLinkLoader () | |
Brief description of class still missing.
Full description of class still missing
| GeopsySLinkGui::SeedLinkLoader::SeedLinkLoader | ( | QWidget * | parent = 0 | ) |
Description of constructor still missing
References dataChanged(), GeopsySLinkGui::SeedLinkLoaderOptions::restore(), and TRACE.
: QWidget(parent)
{
TRACE;
setupUi(this);
streamView->setModel(new SeedLinkStreamItem(this));
streamView->setSelectionBehavior(QAbstractItemView::SelectRows);
streamView->setSelectionMode(QAbstractItemView::ExtendedSelection);
streamView->setEditTriggers(QAbstractItemView::NoEditTriggers);
streamView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(streamView, SIGNAL(customContextMenuRequested (const QPoint & )),
this, SLOT(showContextMenu( const QPoint & )) );
_seedLink=new SeedLink(this);
connect(_seedLink,SIGNAL(infoAvailable()), this, SLOT(streamInfoAvailable()), Qt::QueuedConnection);
connect(_seedLink,SIGNAL(dataChanged(Signal *, TimeRange)),
this, SLOT(monitorDataChange(Signal *, TimeRange)), Qt::QueuedConnection);
connect(_seedLink, SIGNAL(error(GeopsySLink::SeedLink::Error)),
this, SLOT(seedLinkError(GeopsySLink::SeedLink::Error)), Qt::QueuedConnection);
SeedLinkLoaderOptions::restore(_seedLink);
seedLinkActivity->setMeasurementDelay(1.0);
seedLinkActivity->setDisplayRange(120.0);
// Create log stream for seed link thread
Application::instance()->setStream(logView , _seedLink);
Settings::getSize(this, "SeedLinkLoader" );
Settings::splitter(splitter, "SeedLinkLoader" );
serverName->addItems(Settings::getHistory("SeedLinkServers"));
selectEdit->addItems(Settings::getHistory("SeedLinkSelectExpressions"));
Settings::columnWidth(streamView, "SeedLinkLoader");
Settings::getWidget(this, "SeedLinkLoader" );
}
Description of destructor still missing
References GeopsySLink::SeedLink::stop(), and TRACE.
| void GeopsySLinkGui::SeedLinkLoader::dataChanged | ( | Signal * | sig, |
| TimeRange | tw | ||
| ) | [signal] |
Referenced by SeedLinkLoader().
| void GeopsySLinkGui::SeedLinkLoader::selectStreams | ( | QString | selection | ) |
Define the streams to select. Specification of streams is either the same as for slinktool or regular expressions:
SL:stream1[:selectors1],stream2[:selectors2],... RX:stream1RX[:selectors1RX,...
'stream' is in NET_STA format, followed by a selection of streams. If no selector is given, all streams are started.
Examples: "SL:WA_WAU01:HHZ HHE HHN, WA_WAU02:HH?,WA_WAU03,..." "RX:WA_WAU[0-9]{2}"
References GeopsySLink::SeedLinkServer::at(), GeopsySLinkGui::SeedLinkStreamItem::index(), GeopsySLink::SeedLinkServer::indexOf(), GeopsySLink::SeedLinkStation::indexOf(), GeopsySLinkGui::SeedLinkStreamItem::rowCount(), GeopsySLink::SeedLink::serverInfo(), str, and TRACE.
Referenced by GeopsyMainWindow::seedlink().
{
TRACE;
Settings::setHistory("SeedLinkSelectExpressions", selection);
selectEdit->clear();
selectEdit->addItems(Settings::getHistory("SeedLinkSelectExpressions"));
SeedLinkStreamItem * model=static_cast<SeedLinkStreamItem *>(streamView->model());
if(model->rowCount()==0) { /* Stream list is still not available, postpone selection and start when the stream list
will be available: see streamInfoAvailable(SeedLinkServer * s)*/
_streamSelection=selection;
return;
}
// First identify the type of selectors
enum SelectorType {SeedLinkSelector, RegExpSelector};
SelectorType selectorType;
if(selection.startsWith("SL:")) {
selectorType=SeedLinkSelector;
selection=selection.mid(3);
} else if(selection.startsWith("RX:")) {
selectorType=RegExpSelector;
selection=selection.mid(3);
} else {
selectorType=RegExpSelector;
}
QItemSelectionModel * selModel=streamView->selectionModel();
selModel->clear();
const SeedLinkServer& serverInfo=_seedLink->serverInfo();
// Parse selection string, sl_parse_streamlist does not help because streams are not separated
QStringList selectors=selection.split(",");
for(QStringList::iterator itSel=selectors.begin(); itSel!=selectors.end();itSel++) {
QString& str=*itSel;
int selectorIndex=str.indexOf(":");
QList<int> stationIndexes=serverInfo.indexOf(QRegExp( str.left(selectorIndex)) );
for(QList<int>::iterator itStat=stationIndexes.begin(); itStat!=stationIndexes.end(); itStat++) {
const SeedLinkStation * station=serverInfo.at(*itStat);
QModelIndex stationModelIndex=model->index(*itStat, 0);
QRegExp streamExp;
if(selectorIndex==-1) {
streamExp.setPattern(".*");
} else {
switch(selectorType) {
case SeedLinkSelector:
streamExp=SeedLinkStation::selectorExpression(str.mid(selectorIndex+1));
break;
case RegExpSelector:
streamExp.setPattern(str.mid(selectorIndex+1));
break;
}
}
QList<int> streamIndexes=station->indexOf(streamExp);
for(QList<int>::iterator it=streamIndexes.begin();it!=streamIndexes.end();it++) {
selModel->select(model->index(*it, 0, stationModelIndex),
QItemSelectionModel::Rows | QItemSelectionModel::Select);
}
}
}
}
| void GeopsySLinkGui::SeedLinkLoader::setBufferType | ( | SeedLinkStream::BufferType | bt | ) | [inline] |
{_seedLink->setBufferType(bt);}
| void GeopsySLinkGui::SeedLinkLoader::setFromTime | ( | QDateTime | f | ) | [inline] |
{_seedLink->setFromTime(f);}
| void GeopsySLinkGui::SeedLinkLoader::setMaximumDuration | ( | double | d | ) | [inline] |
{_seedLink->setMaximumDuration(d);}
| void GeopsySLinkGui::SeedLinkLoader::setServer | ( | QString | serverAddress, |
| int | serverPort | ||
| ) |
References GeopsySLink::SeedLink::serverName(), GeopsySLink::SeedLink::serverPort(), serverPort, GeopsySLink::SeedLink::setServer(), GeopsySLink::SeedLink::streams(), and TRACE.
Referenced by GeopsyMainWindow::seedlink().
{
TRACE;
// If current server is different than the one requested, stop current acquisition
if(serverAddress!=_seedLink->serverName() || serverPort!=_seedLink->serverPort()) {
Settings::setHistory("SeedLinkServers", serverAddress);
serverName->clear();
serverName->addItems(Settings::getHistory("SeedLinkSelectExpressions"));
serverName->setEditText(serverAddress); // Useful if this function is not called via the gui
_seedLink->setServer(serverAddress.toAscii(), serverPort);
port->setValue(serverPort);
}
static_cast<SeedLinkStreamItem *>(streamView->model())->setServer(0);
_seedLink->streams();
}
| void GeopsySLinkGui::SeedLinkLoader::started | ( | ) | [signal] |
| void GeopsySLinkGui::SeedLinkLoader::stopped | ( | ) | [signal] |