Check hamlib version on startup

main
PianetaRadio 2024-04-02 21:16:54 +02:00 zatwierdzone przez GitHub
rodzic 146207cd98
commit 0fdc71f98d
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
3 zmienionych plików z 45 dodań i 1 usunięć

Wyświetl plik

@ -2,6 +2,9 @@ CatRadio
(+ New, * Updated, - Removed)
1.4.1 - 2024-xx-xx
+ Check hamlib version on startup
1.4.0 - 2024-03-17
+ Auto Connect option
+ Auto Power-on option

Wyświetl plik

@ -39,6 +39,7 @@
#include <QApplication>
#include <QCoreApplication>
#include <QDir>
#include <QMessageBox>
#include <cwchar>
#include <rig.h> //Hamlib
@ -193,7 +194,19 @@ MainWindow::MainWindow(QWidget *parent)
ui->lineEdit_vfoMain->setValue(0);
ui->lineEdit_vfoSub->setValue(0);
if (rigCom.autoConnect) ui->pushButton_Connect->toggle(); //Auto connect
//Check Hamlib version
if (!checkHamlibVersion(4, 6, 0))
{
QMessageBox msgBox;
msgBox.setWindowTitle("Hamlib");
msgBox.setText("Please, update Hamlib libraries to version 4.6 or higher.");
msgBox.setIcon(QMessageBox::Warning);
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
//Auto connect
if (rigCom.autoConnect) ui->pushButton_Connect->toggle();
}
MainWindow::~MainWindow()
@ -802,6 +815,32 @@ void MainWindow::setSubMeter()
}
bool MainWindow::checkHamlibVersion(int major, int minor, int revision)
{
QString hamlibVer = rig_version();
QRegularExpression hamlibVerExp("(?P<major>\\d)\\.(?P<minor>\\d)\\.?(?P<revision>\\d)?");
QRegularExpressionMatch hamlibVerMatch = hamlibVerExp.match(hamlibVer);
if (hamlibVerMatch.hasMatch())
{
int majorVer = hamlibVerMatch.captured("major").toInt();
int minorVer = hamlibVerMatch.captured("minor").toInt();
int revisionVer = hamlibVerMatch.captured("revision").toInt();
//qDebug()<<majorVer<<minorVer<<revisionVer;
if (majorVer > major) return true;
else if (majorVer < major) return false;
else if (minorVer > minor) return true; //& majorVer=major
else if (minorVer < minor) return false; //& majorVer=major
else if (revisionVer < revision) return false; //& majorVer=major, minorVer=minor
else return true; //revisionVer>=revision & majorVer=major, minorVer=minor
}
else return false;
}
//***** PushButton *****
void MainWindow::on_pushButton_Connect_toggled(bool checked)

Wyświetl plik

@ -220,6 +220,8 @@ private:
void guiInit();
void setSubMeter();
bool checkHamlibVersion(int major, int minor, int revision);
};
#endif // MAINWINDOW_H