Add rigctld config to ui and fix some bugs

lv2
Phil Taylor 2021-08-04 20:49:32 +01:00
rodzic eddc5d42ba
commit ee2cf70dc0
9 zmienionych plików z 208 dodań i 37 usunięć

Wyświetl plik

@ -140,7 +140,7 @@ void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, aud
// data from the comm port to the program:
emit commReady();
emit stateInfo(&rigState);
sendState(); // Send current rig state to rigctld
pttAllowed = true; // This is for developing, set to false for "safe" debugging. Set to true for deployment.
@ -3785,6 +3785,11 @@ QByteArray rigCommander::stripData(const QByteArray &data, unsigned char cutPosi
return rtndata;
}
void rigCommander::sendState()
{
emit stateInfo(&rigState);
}
void rigCommander::getDebug()
{
// generic debug function for development.

Wyświetl plik

@ -270,6 +270,7 @@ public slots:
// Housekeeping:
void handleStatusUpdate(const QString text);
void sendState();
void getDebug();
signals:

Wyświetl plik

@ -9,6 +9,7 @@ rigCtlD::rigCtlD(QObject* parent) :
rigCtlD::~rigCtlD()
{
qInfo(logRigCtlD()) << "closing rigctld";
}
void rigCtlD::receiveFrequency(freqt freq)
@ -124,7 +125,6 @@ void rigCtlClient::socketReadyRead()
}
QStringList command = commandBuffer.mid(num).split(" ");
if (command[0] == 0xf0 || command[0]=="chk_vfo")
{
if (longReply)
@ -146,7 +146,12 @@ void rigCtlClient::socketReadyRead()
if (command.length()>1)
{
freqt freq;
freq.Hz = command[1].toInt();
bool ok;
double newFreq = command[1].toDouble(&ok);
if (ok) {
freq.Hz = static_cast<int>(newFreq);
}
qInfo(logRigCtlD()) << QString("Set frequency: %1 (%2)").arg(freq.Hz).arg(command[1]);
emit parent->setFrequency(freq);
}
sendData(QString("RPRT 0\n"));
@ -180,9 +185,23 @@ void rigCtlClient::socketReadyRead()
else if (command[0] == "M" || command[0] == "set_mode")
{
// Set mode
if (command.length() > 1) {
qInfo(logRigCtlD()) << "setting mode: " << getMode(command[1]);
emit parent->setMode(getMode(command[1]), 0x06);
if (command.length() > 2) {
qInfo(logRigCtlD()) << "setting mode: " << getMode(command[1]) << command[1] << "width" << command[2];
int width = command[2].toInt();
if (width != -1 && width <= 1800)
width = 2;
else
width = 1;
emit parent->setMode(getMode(command[1]), width);
if (command[1].mid(0, 3) == "PKT") {
emit parent->setDataMode(true, width);
}
else {
emit parent->setDataMode(false, 0x01);
}
}
sendData(QString("RPRT 0\n"));
}
@ -295,36 +314,51 @@ QString rigCtlClient::getFilter(unsigned char mode, unsigned char filter) {
}
QString rigCtlClient::getMode(unsigned char mode, bool datamode) {
(void)datamode;
QString ret;
if (datamode) {
return ret="PKT";
}
switch (mode) {
case 0:
return QString("LSB");
ret.append("LSB");
break;
case 1:
return QString("USB");
ret.append("USB");
break;
case 2:
return QString("AM");
ret.append("AM");
break;
case 3:
return QString("CW");
ret.append("CW");
break;
case 4:
return QString("RTTY");
ret.append("RTTY");
break;
case 5:
return QString("FM");
ret.append("FM");
break;
case 6:
return QString("WFM");
ret.append("WFM");
break;
case 7:
return QString("CWR");
ret.append("CWR");
break;
case 8:
return QString("RTTYR");
ret.append("RTTYR");
break;
case 12:
return QString("PKTUSB");
ret.append("USB");
break;
case 17:
return QString("PKTLSB");
ret.append("LSB");
break;
case 22:
return QString("PKTFM");
default:
return QString("");
ret.append("FM");
break;
}
return QString("");
return ret;
}
unsigned char rigCtlClient::getMode(QString modeString) {

Wyświetl plik

@ -33,6 +33,7 @@ signals:
void setFrequency(freqt freq);
void setPTT(bool state);
void setMode(unsigned char mode, unsigned char modeFilter);
void setDataMode(bool dataOn, unsigned char modeFilter);
public slots:
virtual void incomingConnection(qintptr socketDescriptor);

Wyświetl plik

@ -175,13 +175,6 @@ void wfmain::openRig()
qDebug(logSystem()) << "Remote host name specified by user: " << hostCL;
}
// Start rigctld
if (prefs.enableRigCtlD && rigCtl == Q_NULLPTR) {
rigCtl = new rigCtlD(this);
rigCtl->startServer(prefs.rigCtlPort);
connect(this, SIGNAL(sendRigCaps(rigCapabilities)), rigCtl, SLOT(receiveRigCaps(rigCapabilities)));
}
makeRig();
@ -405,8 +398,10 @@ void wfmain::makeRig()
if (rigCtl != Q_NULLPTR) {
connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*)));
connect(this, SIGNAL(requestRigState()), rig, SLOT(sendState()));
connect(rigCtl, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt)));
connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char)));
connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool)));
}
}
@ -425,7 +420,7 @@ void wfmain::removeRig()
delete rigThread;
delete rig;
rig = Q_NULLPTR;
}
}
@ -1367,7 +1362,11 @@ void wfmain::loadSettings()
ui->connectBtn->setEnabled(true);
prefs.enableRigCtlD = settings->value("EnableRigCtlD", defPrefs.enableRigCtlD).toBool();
ui->enableRigctldChk->setChecked(prefs.enableRigCtlD);
prefs.rigCtlPort = settings->value("RigCtlPort", defPrefs.rigCtlPort).toInt();
ui->rigctldPortTxt->setText(QString("%1").arg(prefs.rigCtlPort));
// Call the function to start rigctld if enabled.
on_enableRigctldChk_clicked(prefs.enableRigCtlD);
udpPrefs.ipAddress = settings->value("IPAddress", udpDefPrefs.ipAddress).toString();
ui->ipAddressTxt->setEnabled(ui->lanEnableBtn->isChecked());
@ -5247,6 +5246,35 @@ void wfmain::on_meter2selectionCombo_activated(int index)
(void)index;
}
void wfmain::on_enableRigctldChk_clicked(bool checked)
{
if (rigCtl != Q_NULLPTR)
{
rigCtl->disconnect();
delete rigCtl;
rigCtl = Q_NULLPTR;
}
if (checked) {
// Start rigctld
rigCtl = new rigCtlD(this);
rigCtl->startServer(prefs.rigCtlPort);
connect(this, SIGNAL(sendRigCaps(rigCapabilities)), rigCtl, SLOT(receiveRigCaps(rigCapabilities)));
if (rig != Q_NULLPTR) {
// We are already connected to a rig.
connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*)));
connect(rigCtl, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt)));
connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char)));
connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool)));
emit sendRigCaps(rigCaps);
emit requestRigState();
}
}
prefs.enableRigCtlD = checked;
}
// --- DEBUG FUNCTION ---
void wfmain::on_debugBtn_clicked()
{

Wyświetl plik

@ -153,6 +153,7 @@ signals:
void initServer();
void sendServerConfig(SERVERCONFIG conf);
void sendRigCaps(rigCapabilities caps);
void requestRigState();
private slots:
void updateSizes(int tabIndex);
@ -472,6 +473,8 @@ private slots:
void on_meter2selectionCombo_activated(int index);
void on_enableRigctldChk_clicked(bool checked);
private:
Ui::wfmain *ui;
void closeEvent(QCloseEvent *event);

Wyświetl plik

@ -2232,7 +2232,7 @@
<widget class="QComboBox" name="meter2selectionCombo"/>
</item>
<item>
<spacer name="horizontalSpacer_5">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -2244,6 +2244,26 @@
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="enableRigctldChk">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Enable RigCtld</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Port</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="rigctldPortTxt"/>
</item>
</layout>
</item>
<item>

Wyświetl plik

@ -57,7 +57,7 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>release\</ObjectFileName>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="ea09e1f";HOST="wfview.org";UNAME="build";QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="eddc5d4";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName></ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -67,12 +67,13 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
<Link>
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.6.11-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>false</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(OutDir)\wfview.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
@ -84,7 +85,7 @@
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"ea09e1f\";HOST=\"wfview.org\";UNAME=\"build\";QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"eddc5d4\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@ -98,7 +99,7 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="ea09e1f";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="eddc5d4";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
@ -107,7 +108,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
<Link>
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.6.11-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -123,10 +124,11 @@
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"ea09e1f\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"eddc5d4\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="aboutbox.cpp" />
<ClCompile Include="audiohandler.cpp" />
<ClCompile Include="calibrationwindow.cpp" />
<ClCompile Include="commhandler.cpp" />
@ -144,12 +146,23 @@
<ClCompile Include="rigidentities.cpp" />
<ClCompile Include="ring\ring.cpp" />
<ClCompile Include="satellitesetup.cpp" />
<ClCompile Include="transceiveradjustments.cpp" />
<ClCompile Include="udphandler.cpp" />
<ClCompile Include="udpserver.cpp" />
<ClCompile Include="udpserversetup.cpp" />
<ClCompile Include="wfmain.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="aboutbox.h">
</QtMoc>
<ClInclude Include="resampler\arch.h" />
<QtMoc Include="audiohandler.h">
@ -161,6 +174,7 @@
</QtMoc>
<ClInclude Include="audiotaper.h" />
<QtMoc Include="calibrationwindow.h">
@ -269,6 +283,16 @@
</QtMoc>
<ClInclude Include="resampler\speex_resampler.h" />
<QtMoc Include="transceiveradjustments.h">
</QtMoc>
<QtMoc Include="udphandler.h">
@ -320,6 +344,8 @@
<CustomBuild Include="debug\moc_predefs.h.cbt">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@ -362,6 +388,10 @@
@ -369,6 +399,17 @@
</ItemGroup>
<ItemGroup>
<QtUic Include="aboutbox.ui">
</QtUic>
<QtUic Include="calibrationwindow.ui">
@ -401,6 +442,17 @@
</QtUic>
<QtUic Include="transceiveradjustments.ui">
</QtUic>
<QtUic Include="udpserversetup.ui">

Wyświetl plik

@ -57,6 +57,9 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="aboutbox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="audiohandler.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -108,6 +111,9 @@
<ClCompile Include="satellitesetup.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="transceiveradjustments.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="udphandler.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -122,12 +128,18 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="aboutbox.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="resampler\arch.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="audiohandler.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="audiotaper.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="calibrationwindow.h">
<Filter>Header Files</Filter>
</QtMoc>
@ -182,6 +194,9 @@
<ClInclude Include="resampler\speex_resampler.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="transceiveradjustments.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="udphandler.h">
<Filter>Header Files</Filter>
</QtMoc>
@ -207,6 +222,8 @@
<CustomBuild Include="debug\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
@ -239,6 +256,10 @@
@ -246,6 +267,9 @@
</ItemGroup>
<ItemGroup>
<QtUic Include="aboutbox.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="calibrationwindow.ui">
<Filter>Form Files</Filter>
</QtUic>
@ -255,6 +279,9 @@
<QtUic Include="satellitesetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="transceiveradjustments.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="udpserversetup.ui">
<Filter>Form Files</Filter>
</QtUic>