From 2cfacc651991ad6c720d2a4924dabb5e4306fe3d Mon Sep 17 00:00:00 2001 From: Collin Kidder Date: Thu, 8 Dec 2016 20:21:24 -0500 Subject: [PATCH] A few small fixes to connection window --- connections/canconmanager.cpp | 14 ++++++++++++++ connectionwindow.cpp | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/connections/canconmanager.cpp b/connections/canconmanager.cpp index 33c4892..4092f86 100644 --- a/connections/canconmanager.cpp +++ b/connections/canconmanager.cpp @@ -94,7 +94,19 @@ void CANConManager::refreshConnection(CANConnection* pConn_p) CANFrame* frame_p = NULL; QVector frames; + //Each connection only knows about its own bus numbers + //so this variable is used to fix that up to turn local bus numbers + //into system global bus numbers for display. + int busBase = 0; + + foreach (CANConnection* conn, mConns) + { + if (conn != pConn_p) busBase += conn->getNumBuses(); + else break; + } + while( (frame_p = pConn_p->getQueue().peek() ) ) { + frame_p->bus += busBase; frames.append(*frame_p); pConn_p->getQueue().dequeue(); } @@ -126,6 +138,7 @@ bool CANConManager::sendFrame(const CANFrame& pFrame) if (pFrame.bus <= busBase + conn->getNumBuses()) { workingFrame.bus -= busBase; + workingFrame.isReceived = false; txFrame = conn->getQueue().get(); *txFrame = workingFrame; conn->getQueue().queue(); @@ -138,6 +151,7 @@ bool CANConManager::sendFrame(const CANFrame& pFrame) bool CANConManager::sendFrames(const QList& pFrames) { + qDebug() << "CANConManager sendFrames #" << pFrames.count(); foreach(const CANFrame& frame, pFrames) { if(!sendFrame(frame)) diff --git a/connectionwindow.cpp b/connectionwindow.cpp index f5a3904..d5c61b3 100644 --- a/connectionwindow.cpp +++ b/connectionwindow.cpp @@ -85,6 +85,7 @@ void ConnectionWindow::showEvent(QShowEvent* event) QDialog::showEvent(event); qDebug() << "Show connectionwindow"; ui->tableConnections->selectRow(0); + currentRowChanged(ui->tableConnections->currentIndex(), ui->tableConnections->currentIndex()); } @@ -462,6 +463,10 @@ void ConnectionWindow::loadConnections() /* add connection to model */ connModel->add(conn_p); } + + if (connModel->rowCount() > 0) { + ui->tableConnections->selectRow(0); + } } void ConnectionWindow::saveConnections()