Fixed #54: heartbeat anywhere should be exposed in the configuration and HB ack should abide by that setting
This commit is contained in:
parent
17416144a8
commit
5ca582a6b4
@ -388,6 +388,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="heartbeat_anywhere_check_box">
|
||||||
|
<property name="text">
|
||||||
|
<string>Allow heartbeat transmissions outside of heartbeat sub-channel (500Hz - 1000Hz)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
<item>
|
<item>
|
||||||
@ -690,15 +697,6 @@ text message.</string>
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Heartbeat (HB)</string>
|
<string>Heartbeat (HB)</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_211">
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="heartbeat_anywhere_check_box">
|
|
||||||
<property name="text">
|
|
||||||
<string>Allow heartbeat transmissions outside of heartbeat sub-channel (500Hz - 1000Hz)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -6822,6 +6822,14 @@ void MainWindow::sendHeartbeat(){
|
|||||||
enqueueMessage(PriorityLow, message, f, [this](){ /* */ });
|
enqueueMessage(PriorityLow, message, f, [this](){ /* */ });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::sendHeartbeatAck(QString to, int snr){
|
||||||
|
auto message = QString("%1 ACK %2").arg(to).arg(Varicode::formatSNR(snr));
|
||||||
|
|
||||||
|
auto f = m_config.heartbeat_anywhere() ? -1 : findFreeFreqOffset(500, 1000, 50);
|
||||||
|
|
||||||
|
enqueueMessage(PriorityLow, message, f, [this](){ /* */ });
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_hbMacroButton_toggled(bool checked){
|
void MainWindow::on_hbMacroButton_toggled(bool checked){
|
||||||
if(checked){
|
if(checked){
|
||||||
if(m_hbInterval){
|
if(m_hbInterval){
|
||||||
@ -9538,12 +9546,15 @@ void MainWindow::processCommandActivity() {
|
|||||||
// PROCESS ACTIVE HEARTBEAT
|
// PROCESS ACTIVE HEARTBEAT
|
||||||
// if we have auto reply enabled and we are heartbeating and selcall is not enabled
|
// if we have auto reply enabled and we are heartbeating and selcall is not enabled
|
||||||
else if (d.cmd == " HB" && ui->autoReplyButton->isChecked() && ui->hbMacroButton->isChecked() && m_hbInterval > 0 && !ui->selcalButton->isChecked()){
|
else if (d.cmd == " HB" && ui->autoReplyButton->isChecked() && ui->hbMacroButton->isChecked() && m_hbInterval > 0 && !ui->selcalButton->isChecked()){
|
||||||
reply = QString("%1 ACK %2").arg(d.from).arg(Varicode::formatSNR(d.snr));
|
sendHeartbeatAck(d.from, d.snr);
|
||||||
|
|
||||||
if(isAllCall){
|
if(isAllCall){
|
||||||
// since all pings are technically @ALLCALL, let's bump the allcall cache here...
|
// since all pings are technically @ALLCALL, let's bump the allcall cache here...
|
||||||
m_txAllcallCommandCache.insert(d.from, new QDateTime(now), 5);
|
m_txAllcallCommandCache.insert(d.from, new QDateTime(now), 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// make sure this is explicit
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// PROCESS BUFFERED QUERY
|
// PROCESS BUFFERED QUERY
|
||||||
|
@ -280,6 +280,7 @@ private slots:
|
|||||||
void buildCQMenu(QMenu *menu);
|
void buildCQMenu(QMenu *menu);
|
||||||
void buildRepeatMenu(QMenu *menu, QPushButton * button, int * interval);
|
void buildRepeatMenu(QMenu *menu, QPushButton * button, int * interval);
|
||||||
void sendHeartbeat();
|
void sendHeartbeat();
|
||||||
|
void sendHeartbeatAck(QString to, int snr);
|
||||||
void on_hbMacroButton_toggled(bool checked);
|
void on_hbMacroButton_toggled(bool checked);
|
||||||
void on_hbMacroButton_clicked();
|
void on_hbMacroButton_clicked();
|
||||||
void sendCQ(bool repeat=false);
|
void sendCQ(bool repeat=false);
|
||||||
|
Loading…
Reference in New Issue
Block a user