Cache calls for easier display

This commit is contained in:
Jordan Sherer 2018-07-05 15:21:47 -04:00
parent 0dfc805a49
commit 04bdf8574a
3 changed files with 92 additions and 60 deletions

View File

@ -3021,7 +3021,6 @@ void MainWindow::readFromStdout() //readFromStdout
d.timestamp = QDateTime::currentDateTimeUtc().toMSecsSinceEpoch();
d.snr = decodedtext.snr();
m_bandActivity[offset].append(d);
while(m_bandActivity[offset].count() > 10){
m_bandActivity[offset].removeFirst();
}
@ -3068,6 +3067,10 @@ void MainWindow::readFromStdout() //readFromStdout
if(abs(audioFreq - m_wideGraph->rxFreq()) <= 10) bDisplayRight=true;
}
if(!bDisplayRight){
bDisplayRight = m_rxDirectedCache.contains(audioFreq/10*10);
}
if (bDisplayRight) {
// This msg is within 10 hertz of our tuned frequency, or a JT4 or JT65 avg,
// or contains MyCall
@ -3083,12 +3086,15 @@ void MainWindow::readFromStdout() //readFromStdout
m_QSOText = decodedtext.string ().trimmed ();
// TODO: jsherer - parse decode...
//logRxTxMessageText(decodedtext.messageWords().first().trimmed(), false);
RXDetail d;
d.freq = audioFreq;
d.text = decodedtext.messageWords().first();
d.timestamp = QDateTime::currentDateTimeUtc().toSecsSinceEpoch();
m_rxFrameQueue.append(d);
if(d.text.contains(m_config.my_callsign())){
m_rxDirectedCache.insert(audioFreq/10*10, new QDateTime(QDateTime::currentDateTimeUtc()), 25);
}
}
if(m_mode=="FT8" and m_config.bHound()) {
@ -6364,6 +6370,10 @@ void MainWindow::on_cqMacroButton_clicked(){
addMessageText(text);
}
void MainWindow::on_deMacroButton_clicked(){
addMessageText(m_config.my_callsign());
}
void MainWindow::on_replyMacroButton_clicked(){
auto items = ui->tableWidgetCalls->selectedItems();
if(!items.isEmpty()){
@ -6407,6 +6417,12 @@ void MainWindow::on_macrosMacroButton_clicked(){
QAction *action = menu->addAction(macro);
connect(action, &QAction::triggered, this, [this, macro](){ addMessageText(macro); });
}
menu->addSeparator();
auto action = new QAction(QIcon::fromTheme("edit-edit"), "Edit");
menu->addAction(action);
connect(action, &QAction::triggered, this, &MainWindow::on_actionSettings_triggered);
ui->macrosMacroButton->setMenu(menu);
ui->macrosMacroButton->showMenu();
}
@ -7409,7 +7425,7 @@ void MainWindow::postDecode (bool is_new, QString const& message)
textItem->setBackground(QBrush(m_config.color_CQ()));
}
if (text.last().contains(m_config.my_callsign())){
if (text.last().contains(m_config.my_callsign()) || m_rxDirectedCache.contains(offset/10*10)){
offsetItem->setBackground(QBrush(m_config.color_MyCall()));
snrItem->setBackground(QBrush(m_config.color_MyCall()));
textItem->setBackground(QBrush(m_config.color_MyCall()));

View File

@ -231,6 +231,7 @@ private slots:
void on_rbFreeText_clicked(bool checked);
void on_clearAction_triggered(QObject * sender);
void on_cqMacroButton_clicked();
void on_deMacroButton_clicked();
void on_replyMacroButton_clicked();
void on_snrMacroButton_clicked();
void on_macrosMacroButton_clicked();
@ -651,6 +652,8 @@ private:
int m_txFrameCount;
QQueue<QString> m_txFrameQueue;
QQueue<RXDetail> m_rxFrameQueue;
QCache<int, QDateTime> m_rxDirectedCache; // freq -> last directed rx
QCache<QString, int> m_rxCallCache; // call -> last freq seen
QMap<int, int> m_rxFrameBlockNumbers; // freq -> block
QMap<int, QList<ActivityDetail>> m_bandActivity; // freq -> [(text, last timestamp), ...]
QMap<QString, CallDetail> m_callActivity; // call -> (last freq, last timestamp)

View File

@ -60,7 +60,7 @@
<property name="minimumSize">
<size>
<width>0</width>
<height>120</height>
<height>140</height>
</size>
</property>
<property name="maximumSize">
@ -966,7 +966,7 @@ QTextEdit[readOnly=&quot;true&quot;] {
</property>
</widget>
</item>
<item row="1" column="1">
<item row="1" column="2">
<widget class="QPushButton" name="replyMacroButton">
<property name="minimumSize">
<size>
@ -979,62 +979,7 @@ QTextEdit[readOnly=&quot;true&quot;] {
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="snrMacroButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>SNR</string>
</property>
</widget>
</item>
<item row="1" column="4">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="6">
<widget class="QPushButton" name="stopTxButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>Halt</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="macrosMacroButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>Macros</string>
</property>
</widget>
</item>
<item row="1" column="5">
<widget class="QPushButton" name="startTxButton">
<property name="enabled">
<bool>false</bool>
@ -1061,6 +1006,74 @@ background:yellow;
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="macrosMacroButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>Macros</string>
</property>
</widget>
</item>
<item row="1" column="7">
<widget class="QPushButton" name="stopTxButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>Halt</string>
</property>
</widget>
</item>
<item row="1" column="5">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="snrMacroButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>SNR</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="deMacroButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>DE</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QFrame" name="frame_5">