Changeset 5647 in ntrip for trunk/BNC/src/bncgetthread.cpp
- Timestamp:
- Feb 23, 2014, 5:53:18 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bncgetthread.cpp
r5646 r5647 104 104 105 105 bncSettings settings; 106 107 106 if (!settings.value("rawOutFile").toString().isEmpty()) { 108 107 _rawOutput = true; … … 132 131 _miscMount = settings.value("miscMount").toString(); 133 132 _decoder = 0; 134 135 // Miscellaneous output port // Georg136 // -------------------------137 _miscPort = settings.value("miscPort").toInt();138 if (_miscPort != 0) {139 _miscServer = new QTcpServer;140 if ( !_miscServer->listen(QHostAddress::Any, _miscPort) ) {141 emit newMessage("bncgetthread: Cannot listen on Miscellaneous Output Port", true);142 }143 connect(_miscServer, SIGNAL(newConnection()), this, SLOT(slotNewMiscConnection()));144 _miscSockets = new QList<QTcpSocket*>;145 }146 else {147 _miscServer = 0;148 _miscSockets = 0;149 }150 133 151 134 // Serial Port … … 400 383 delete _serialPort; 401 384 delete _latencyChecker; 402 delete _miscServer;403 delete _miscSockets;404 385 emit getThreadFinished(_staID); 405 386 } … … 492 473 _serialPort->write(data); 493 474 } 494 495 // Output into the Miscellaneous socket // Georg 496 // ------------------------------------ 497 if (_miscSockets && _miscMount != "ALL") { 498 QMutableListIterator<QTcpSocket*> is(*_miscSockets); 499 while (is.hasNext()) { 500 QTcpSocket* sock = is.next(); 501 if (sock->state() == QAbstractSocket::ConnectedState) { 502 if (myMiscWrite(sock, data, nBytes) != nBytes) { 503 delete sock; 504 is.remove(); 505 } 506 } 507 else if (sock->state() != QAbstractSocket::ConnectingState) { 508 delete sock; 509 is.remove(); 510 } 511 } 512 } 513 475 514 476 // Decode Data 515 477 // ----------- … … 709 671 } 710 672 711 // New Connection // Georg712 ////////////////////////////////////////////////////////////////////////////713 void bncGetThread::slotNewMiscConnection() {714 _miscSockets->push_back( _miscServer->nextPendingConnection() );715 emit( newMessage(QString("New client connection on Miscellaneous Output Port: # %1")716 .arg(_miscSockets->size()).toAscii(), true) );717 }718 719 // Write buffer // Georg720 ////////////////////////////////////////////////////////////////////////////721 int bncGetThread::myMiscWrite(QTcpSocket* sock, const char* buf, int bufLen) {722 sock->write(buf, bufLen);723 for (int ii = 1; ii <= 10; ii++) {724 if (sock->waitForBytesWritten(10)) { // wait 10 ms725 return bufLen;726 }727 }728 return -1;729 }730 731 673 // RTCM scan output 732 674 ////////////////////////////////////////////////////////////////////////////// … … 865 807 } 866 808 } 867
Note:
See TracChangeset
for help on using the changeset viewer.