|
|
|
|
@@ -144,9 +144,11 @@ bool PIConnection::configure(PIConfig & conf, const PIString & name_) {
|
|
|
|
|
device_names[n] = dev;
|
|
|
|
|
setDeviceName(dev, n);
|
|
|
|
|
dev->setName(name_ + ".device." + dev_list[i]);
|
|
|
|
|
PIConfig::Entry de = ce.getValue("device." + n);
|
|
|
|
|
dev->setThreadedReadBufferSize(de.getValue("bufferSize", dev->threadedReadBufferSize()));
|
|
|
|
|
PIDiagnostics * diag = diags_.value(dev, 0);
|
|
|
|
|
if (diag != 0)
|
|
|
|
|
diag->setDisconnectTimeout(ce.getValue("device." + n + ".disconnectTimeout", diag->disconnectTimeout()));
|
|
|
|
|
diag->setDisconnectTimeout(de.getValue("disconnectTimeout", diag->disconnectTimeout()));
|
|
|
|
|
}
|
|
|
|
|
int added(0), padded(-1), tries(0);
|
|
|
|
|
bool pdebug = debug();
|
|
|
|
|
@@ -212,6 +214,7 @@ bool PIConnection::configure(PIConfig & conf, const PIString & name_) {
|
|
|
|
|
PIDiagnostics * diag = diags_.value(pe, 0);
|
|
|
|
|
if (diag != 0)
|
|
|
|
|
diag->setDisconnectTimeout(e->getValue("disconnectTimeout", diag->disconnectTimeout()));
|
|
|
|
|
pe->setBufferSize(e->getValue("bufferSize", pe->bufferSize()));
|
|
|
|
|
pe->setPayloadSize(e->getValue("payloadSize", pe->payloadSize()));
|
|
|
|
|
pe->setPacketSize(e->getValue("packetSize", pe->packetSize()));
|
|
|
|
|
pe->setTimeout(e->getValue("timeout", pe->timeout()));
|
|
|
|
|
@@ -254,6 +257,7 @@ PIString PIConnection::makeConfig() const {
|
|
|
|
|
if (dnl.isEmpty()) dnl << PIString::fromNumber(++dn);
|
|
|
|
|
piForeachC (PIString & dname, dnl) {
|
|
|
|
|
ret << "device." << dname << " = " << d->constructFullPath() << " #s\n";
|
|
|
|
|
ret << "device." << dname << ".bufferSize = " << d->threadedReadBufferSize() << " #n\n";
|
|
|
|
|
PIDiagnostics * diag = diags_.value(const_cast<PIIODevice * >(d), 0);
|
|
|
|
|
if (diag != 0)
|
|
|
|
|
ret << "device." << dname << ".disconnectTimeout = " << diag->disconnectTimeout() << " #f\n";
|
|
|
|
|
@@ -266,6 +270,7 @@ PIString PIConnection::makeConfig() const {
|
|
|
|
|
for (int i = 0; i < f.second->devices.size_s(); ++i)
|
|
|
|
|
ret << prefix << ".device." << i << " = " << device_names.key(f.second->devices[i]) << " #s\n";
|
|
|
|
|
PIDiagnostics * diag = diags_.value(f.second->extractor, 0);
|
|
|
|
|
ret << prefix << ".bufferSize = " << f.second->extractor->bufferSize() << " #n\n";
|
|
|
|
|
if (diag != 0)
|
|
|
|
|
ret << prefix << ".disconnectTimeout = " << diag->disconnectTimeout() << " #f\n";
|
|
|
|
|
ret << prefix << ".splitMode = ";
|
|
|
|
|
@@ -422,7 +427,8 @@ PIPacketExtractor * PIConnection::addFilter(const PIString & name_, const PIStri
|
|
|
|
|
PIString fname_ = name_.trimmed();
|
|
|
|
|
Extractor * e = extractors.value(fname_);
|
|
|
|
|
if (full_path.isEmpty()) return (e == 0 ? 0 : e->extractor);
|
|
|
|
|
PIIODevice * dev = deviceByFullPath(fp);
|
|
|
|
|
PIIODevice * dev = deviceByName(fp);
|
|
|
|
|
if (!dev) dev = deviceByFullPath(fp);
|
|
|
|
|
PIPacketExtractor * pe(0);
|
|
|
|
|
if (extractors.value(full_path) != 0) pe = extractors.value(full_path)->extractor;
|
|
|
|
|
if (pe != 0) dev = pe;
|
|
|
|
|
@@ -591,7 +597,9 @@ PIVector<PIIODevice * > PIConnection::filterBoundedDevices(const PIString & name
|
|
|
|
|
bool PIConnection::addChannel(const PIString & name0, const PIString & name1) {
|
|
|
|
|
//piCout << "addChannel" << name0 << name1;
|
|
|
|
|
if (name0.isEmpty() || name1.isEmpty()) return false;
|
|
|
|
|
PIIODevice * dev0 = deviceByFullPath(name0), * dev1 = deviceByFullPath(name1);
|
|
|
|
|
PIIODevice * dev0 = deviceByName(name0), * dev1 = deviceByName(name1);
|
|
|
|
|
if (!dev0) dev0 = deviceByFullPath(name0);
|
|
|
|
|
if (!dev1) dev1 = deviceByFullPath(name1);
|
|
|
|
|
PIPacketExtractor * pe0(0), * pe1(0);
|
|
|
|
|
if (extractors.value(name0) != 0) pe0 = extractors.value(name0)->extractor;
|
|
|
|
|
if (extractors.value(name1) != 0) pe1 = extractors.value(name1)->extractor;
|
|
|
|
|
|