Revision 236afd75 common/Transmitter.cpp
| b/common/Transmitter.cpp | ||
|---|---|---|
| 7 | 7 |
|
| 8 | 8 |
Transmitter::Transmitter(QString host, quint16 port): |
| 9 | 9 |
socket(), relayHost(host), relayPort(port), resendTimeoutMs(RESEND_TIMEOUT), |
| 10 |
resendCounter(0), autoPing(NULL) |
|
| 10 |
resendCounter(0), autoPing(NULL), |
|
| 11 |
payloadSent(0), payloadRecv(0), totalSent(0), totalRecv(0), rateTimer(), rateTime() |
|
| 11 | 12 |
{
|
| 12 | 13 |
qDebug() << "in" << __FUNCTION__ << ", connecting to host:" << host << ", port:" << port; |
| 13 | 14 |
|
| ... | ... | |
| 72 | 73 |
this, SLOT(readPendingDatagrams())); |
| 73 | 74 |
connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), |
| 74 | 75 |
this, SLOT(printError(QAbstractSocket::SocketError))); |
| 76 |
|
|
| 77 |
|
|
| 78 |
// Start RX/TX timers |
|
| 79 |
rateTimer.start(1000); |
|
| 80 |
rateTime.start(); |
|
| 81 |
connect(&rateTimer, SIGNAL(timeout()), |
|
| 82 |
this, SLOT(updateRate())); |
|
| 83 |
|
|
| 75 | 84 |
} |
| 76 | 85 |
|
| 77 | 86 |
|
| ... | ... | |
| 220 | 229 |
|
| 221 | 230 |
printData(msg->data()); |
| 222 | 231 |
|
| 223 |
socket.writeDatagram(*msg->data(), relayHost, relayPort); |
|
| 232 |
int tx = socket.writeDatagram(*msg->data(), relayHost, relayPort); |
|
| 233 |
if (tx == -1) {
|
|
| 234 |
qWarning() << "Failed to writeDatagram:" << socket.errorString(); |
|
| 235 |
} else {
|
|
| 236 |
payloadSent += tx; |
|
| 237 |
totalSent += tx + 28; // UDP + IPv4 headers. |
|
| 238 |
} |
|
| 239 |
|
|
| 224 | 240 |
|
| 225 | 241 |
// If not a high priority package, all is done |
| 226 | 242 |
if (!msg->isHighPriority()) {
|
| ... | ... | |
| 308 | 324 |
|
| 309 | 325 |
datagram.resize(socket.pendingDatagramSize()); |
| 310 | 326 |
|
| 311 |
socket.readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); |
|
| 312 |
|
|
| 327 |
int rx = socket.readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); |
|
| 328 |
if (rx == -1) {
|
|
| 329 |
qWarning() << "Failed to readDatagram:" << socket.errorString(); |
|
| 330 |
} |
|
| 331 |
|
|
| 332 |
payloadRecv += rx; |
|
| 333 |
totalRecv += rx + 28; // UDP + IPv4 headers |
|
| 334 |
|
|
| 313 | 335 |
qDebug() << "Sender:" << sender.toString() << ", port:" << senderPort; |
| 314 | 336 |
printData(&datagram); |
| 315 | 337 |
|
| ... | ... | |
| 552 | 574 |
// Emit the enable/disable signal |
| 553 | 575 |
emit(value(type, val)); |
| 554 | 576 |
} |
| 577 |
|
|
| 578 |
|
|
| 579 |
|
|
| 580 |
void Transmitter::updateRate(void) |
|
| 581 |
{
|
|
| 582 |
|
|
| 583 |
// Time in ms since last update |
|
| 584 |
int elapsedMs = rateTime.restart(); |
|
| 585 |
|
|
| 586 |
// Bytes received per second on average since last update |
|
| 587 |
int payloadRx = (int)(payloadRecv / (elapsedMs/(double)1000)); |
|
| 588 |
payloadRecv = 0; |
|
| 589 |
int totalRx = (int)(totalRecv / (elapsedMs/(double)1000)); |
|
| 590 |
totalRecv = 0; |
|
| 591 |
|
|
| 592 |
// Bytes sent per second on average since last update |
|
| 593 |
int payloadTx = (int)(payloadSent / (elapsedMs/(double)1000)); |
|
| 594 |
payloadSent = 0; |
|
| 595 |
int totalTx = (int)(totalSent / (elapsedMs/(double)1000)); |
|
| 596 |
totalSent = 0; |
|
| 597 |
|
|
| 598 |
emit(networkRate(payloadRx, totalRx, payloadTx, totalTx)); |
|
| 599 |
} |
|
Also available in: Unified diff