New upstream version 0.0.0.73
This commit is contained in:
parent
af04e39e18
commit
14657a895c
|
@ -0,0 +1,63 @@
|
|||
###############################################################################
|
||||
# Set default behavior to automatically normalize line endings.
|
||||
###############################################################################
|
||||
* text=auto
|
||||
|
||||
###############################################################################
|
||||
# Set default behavior for command prompt diff.
|
||||
#
|
||||
# This is need for earlier builds of msysgit that does not have it on by
|
||||
# default for csharp files.
|
||||
# Note: This is only used by command line
|
||||
###############################################################################
|
||||
#*.cs diff=csharp
|
||||
|
||||
###############################################################################
|
||||
# Set the merge driver for project and solution files
|
||||
#
|
||||
# Merging from the command prompt will add diff markers to the files if there
|
||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# file extensions to fail to load in VS. An alternative would be to treat
|
||||
# these files as binary and thus will always conflict and require user
|
||||
# intervention with every merge. To do so, just uncomment the entries below
|
||||
###############################################################################
|
||||
#*.sln merge=binary
|
||||
#*.csproj merge=binary
|
||||
#*.vbproj merge=binary
|
||||
#*.vcxproj merge=binary
|
||||
#*.vcproj merge=binary
|
||||
#*.dbproj merge=binary
|
||||
#*.fsproj merge=binary
|
||||
#*.lsproj merge=binary
|
||||
#*.wixproj merge=binary
|
||||
#*.modelproj merge=binary
|
||||
#*.sqlproj merge=binary
|
||||
#*.wwaproj merge=binary
|
||||
|
||||
###############################################################################
|
||||
# behavior for image files
|
||||
#
|
||||
# image files are treated as binary by default.
|
||||
###############################################################################
|
||||
#*.jpg binary
|
||||
#*.png binary
|
||||
#*.gif binary
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
#*.doc diff=astextplain
|
||||
#*.DOC diff=astextplain
|
||||
#*.docx diff=astextplain
|
||||
#*.DOCX diff=astextplain
|
||||
#*.dot diff=astextplain
|
||||
#*.DOT diff=astextplain
|
||||
#*.pdf diff=astextplain
|
||||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
|
@ -0,0 +1,261 @@
|
|||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
#*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignoreable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
|
||||
# CodeRush
|
||||
.cr/
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
Binary file not shown.
Binary file not shown.
64
AGWCode.cpp
64
AGWCode.cpp
|
@ -29,6 +29,8 @@ extern QWidget * mythis;
|
|||
|
||||
extern int AGWEnable;
|
||||
extern int AGWMonEnable;
|
||||
extern int AGWLocalTime;
|
||||
extern int AGWMonNodes;
|
||||
extern char AGWTermCall[12];
|
||||
extern char AGWBeaconDest[12];
|
||||
extern char AGWBeaconPath[80];
|
||||
|
@ -40,6 +42,8 @@ extern char AGWHost[128];
|
|||
extern int AGWPortNum;
|
||||
extern int AGWPaclen;
|
||||
|
||||
extern Ui_ListenSession * KISSMonSess;
|
||||
|
||||
extern char listenCText[4096];
|
||||
extern int ConnectBeep;
|
||||
|
||||
|
@ -137,6 +141,7 @@ void AGW_Process_Input(AGWUser * AGW);
|
|||
void Send_AGW_X_Frame(QTcpSocket* socket, char * CallFrom);
|
||||
void Send_AGW_G_Frame(QTcpSocket* socket);
|
||||
void Send_AGW_m_Frame(QTcpSocket* socket);
|
||||
void Send_AGW_R_Frame(QTcpSocket* socket);
|
||||
|
||||
Ui_ListenSession * FindFreeWindow();
|
||||
Ui_ListenSession * newWindow(QObject * parent, int Type, const char * Label = nullptr);
|
||||
|
@ -146,7 +151,7 @@ void AGW_frame_header(UCHAR * Msg, char AGWPort, char DataKind, unsigned char PI
|
|||
void Debugprintf(const char * format, ...)
|
||||
{
|
||||
char Mess[10000];
|
||||
va_list(arglist);
|
||||
va_list arglist;
|
||||
|
||||
va_start(arglist, format);
|
||||
vsprintf(Mess, format, arglist);
|
||||
|
@ -448,7 +453,7 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
|
|||
tabWidget->setTabText(Sess->Tab, "Monitor");
|
||||
else
|
||||
{
|
||||
char Label[16];
|
||||
char Label[32];
|
||||
sprintf(Label, "Sess %d", Sess->Tab + 1);
|
||||
tabWidget->setTabText(Sess->Tab, Label);
|
||||
}
|
||||
|
@ -541,7 +546,7 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
|
|||
|
||||
// for (Ui_ListenSession * S: _sessions)
|
||||
// {
|
||||
if ((S->SessionType == Mon) && S->clientSocket == NULL && S->AGWSession == NULL && S->KISSSession == NULL)
|
||||
if ((S->SessionType == Mon) && S->clientSocket == NULL && S->AGWSession == NULL && S->KISSSession == NULL && (AGWUsers == NULL || (S != AGWUsers->MonSess)) && S != KISSMonSess)
|
||||
{
|
||||
Sess = S;
|
||||
break;
|
||||
|
@ -563,7 +568,7 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
|
|||
{
|
||||
S = _sessions.at(i);
|
||||
|
||||
if (S->clientSocket == NULL && S->AGWSession == NULL)
|
||||
if (S->clientSocket == NULL && S->KISSSession == NULL && S->AGWSession == NULL && (AGWUsers == NULL || (S != AGWUsers->MonSess)) && S != KISSMonSess)
|
||||
{
|
||||
Sess = S;
|
||||
break;
|
||||
|
@ -574,7 +579,7 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
|
|||
{
|
||||
S = _sessions.at(0);
|
||||
|
||||
if (S->clientSocket == NULL && S->AGWSession == NULL && S->KISSSession == NULL)
|
||||
if (S->clientSocket == NULL && S->AGWSession == NULL && S->KISSSession == NULL && (AGWUsers == NULL || (S != AGWUsers->MonSess)) && S != KISSMonSess)
|
||||
Sess = S;
|
||||
|
||||
}
|
||||
|
@ -606,6 +611,10 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
|
|||
connectMenu->setEnabled(false);
|
||||
}
|
||||
|
||||
Sess->mlocaltime = AGWLocalTime;
|
||||
Sess->MonitorNODES = AGWMonNodes;
|
||||
|
||||
Send_AGW_R_Frame(sender); // Request Version
|
||||
Send_AGW_m_Frame(sender); // Request Monitor Frames
|
||||
}
|
||||
}
|
||||
|
@ -735,10 +744,31 @@ void Send_AGW_m_Frame(QTcpSocket* socket)
|
|||
{
|
||||
UCHAR Msg[512];
|
||||
|
||||
AGW_frame_header(Msg, 0, 'm', 0, "", "", 0);
|
||||
// Request Monitoring. Add Extended form if connected to BPQ
|
||||
|
||||
AGW_frame_header(Msg, 0, 'm', 0, "", "", 12);
|
||||
|
||||
Msg[AGWHDDRRLEN] = AGWLocalTime;
|
||||
Msg[AGWHDDRRLEN + 1] = AGWMonNodes;
|
||||
Msg[AGWHDDRRLEN + 2] = AGWMonEnable;
|
||||
Msg[AGWHDDRRLEN + 3] = 0;
|
||||
|
||||
memcpy(&Msg[AGWHDDRRLEN + 4], (void *)&AGWUsers->MonSess->portmask, 8);
|
||||
|
||||
socket->write((char *)Msg, AGWHDDRRLEN + 12);
|
||||
}
|
||||
|
||||
void Send_AGW_R_Frame(QTcpSocket* socket)
|
||||
{
|
||||
UCHAR Msg[512];
|
||||
|
||||
// Request Version
|
||||
|
||||
AGW_frame_header(Msg, 0, 'R', 0, "", "", 0);
|
||||
socket->write((char *)Msg, AGWHDDRRLEN);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
|
@ -1034,6 +1064,8 @@ void on_AGW_C_frame(AGWUser * AGW, struct AGWHeader * Frame, byte * Msg)
|
|||
{
|
||||
sprintf(Title, "Connected to %s", CallFrom);
|
||||
|
||||
QApplication::alert(mythis, 0);
|
||||
|
||||
if (TermMode == MDI)
|
||||
{
|
||||
Sess->setWindowTitle(Title);
|
||||
|
@ -1062,7 +1094,7 @@ void on_AGW_C_frame(AGWUser * AGW, struct AGWHeader * Frame, byte * Msg)
|
|||
setMenus(true);
|
||||
|
||||
if (ConnectBeep)
|
||||
myBeep();
|
||||
myBeep(&ConnectWAV);
|
||||
|
||||
// Send CText if defined
|
||||
|
||||
|
@ -1073,7 +1105,7 @@ void on_AGW_C_frame(AGWUser * AGW, struct AGWHeader * Frame, byte * Msg)
|
|||
|
||||
char Msg[80];
|
||||
|
||||
sprintf(Msg, "Incoming Connect from %s\r\r", CallFrom);
|
||||
sprintf(Msg, "Incoming AGW Connection from %s\r\r", CallFrom);
|
||||
|
||||
WritetoOutputWindow(Sess, (unsigned char *)Msg, (int)strlen(Msg));
|
||||
return;
|
||||
|
@ -1121,21 +1153,27 @@ void on_AGW_D_frame(int snd_ch, char * CallFrom, char * CallTo, byte * Msg, int
|
|||
}
|
||||
}
|
||||
|
||||
extern "C" void WritetoMonWindow(Ui_ListenSession * Sess, unsigned char * Msg, int len);
|
||||
|
||||
void on_AGW_Mon_frame(byte * Msg, int Len, char Type)
|
||||
{
|
||||
if (AGWUsers && AGWUsers->MonSess && AGWUsers->MonSess->monWindow)
|
||||
{
|
||||
unsigned char copy[512];
|
||||
|
||||
copy[0] = 0x1b;
|
||||
if (Type == 'T')
|
||||
WritetoOutputWindowEx(AGWUsers->MonSess, Msg, Len,
|
||||
AGWUsers->MonSess->monWindow, &AGWUsers->MonSess->OutputSaveLen, AGWUsers->MonSess->OutputSave, monTxText); // Red
|
||||
copy[1] = 91;
|
||||
else
|
||||
WritetoOutputWindowEx(AGWUsers->MonSess, Msg, Len,
|
||||
AGWUsers->MonSess->monWindow, &AGWUsers->MonSess->OutputSaveLen, AGWUsers->MonSess->OutputSave, monRxText); // Blue
|
||||
copy[1] = 17;
|
||||
|
||||
memcpy(©[2], Msg, Len);
|
||||
WritetoMonWindow(AGWUsers->MonSess, copy, Len + 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void on_AGW_Ds_frame(int AGWChan, char * CallFrom, char * CallTo, struct AGWHeader * Frame)
|
||||
{
|
||||
TAGWPort * AX25Sess;
|
||||
|
@ -1170,7 +1208,7 @@ void on_AGW_Ds_frame(int AGWChan, char * CallFrom, char * CallTo, struct AGWHead
|
|||
tabWidget->setTabText(Sess->Tab, "Monitor");
|
||||
else
|
||||
{
|
||||
char Label[16];
|
||||
char Label[32];
|
||||
sprintf(Label, "Sess %d", Sess->Tab + 1);
|
||||
tabWidget->setTabText(Sess->Tab, Label);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,545 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>AlertDialog</class>
|
||||
<widget class="QDialog" name="AlertDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>554</width>
|
||||
<height>433</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>94</x>
|
||||
<y>376</y>
|
||||
<width>351</width>
|
||||
<height>33</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="okButton">
|
||||
<property name="text">
|
||||
<string>OK</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="InboundBeep">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>40</y>
|
||||
<width>201</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Beep on Inbound connect</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="InactivityBeep">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>65</y>
|
||||
<width>221</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Beep on message after inactivity</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="KeywordBeep">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>90</y>
|
||||
<width>201</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Beep on keyword</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="Interval">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>350</x>
|
||||
<y>65</y>
|
||||
<width>51</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="keywordFile">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>350</x>
|
||||
<y>95</y>
|
||||
<width>137</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="useBeep">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>204</y>
|
||||
<width>82</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use Beep</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">buttonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="useFiles">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>148</x>
|
||||
<y>204</y>
|
||||
<width>193</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use Audio Files</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">buttonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>258</x>
|
||||
<y>65</y>
|
||||
<width>47</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Interval</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>263</y>
|
||||
<width>107</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Interval .wav File</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>288</y>
|
||||
<width>169</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Inbound Connect .wav File</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>313</y>
|
||||
<width>165</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Keyword Alert .wav File</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>258</x>
|
||||
<y>95</y>
|
||||
<width>89</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Keyword File</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>134</y>
|
||||
<width>465</width>
|
||||
<height>65</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>The System Beep function doesn't work on all platform, so you can configure QtTermTCP to play a sound file instead of using Beep. You can set different files for each event if you wish. Select from the supplied sounds or choose your own .wav files. </string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="chooseInterval">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>416</x>
|
||||
<y>263</y>
|
||||
<width>61</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="chooseInbound">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>416</x>
|
||||
<y>288</y>
|
||||
<width>61</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="chooseKeyAlert">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>416</x>
|
||||
<y>313</y>
|
||||
<width>61</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="Bells">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>15</y>
|
||||
<width>289</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use Bells (ascii BELL char makes a sound)</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="chooseBells">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>416</x>
|
||||
<y>238</y>
|
||||
<width>61</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>24</x>
|
||||
<y>238</y>
|
||||
<width>107</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Bells .wav File</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="TestInbound">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>484</x>
|
||||
<y>288</y>
|
||||
<width>47</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Test</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="testInterval">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>484</x>
|
||||
<y>263</y>
|
||||
<width>47</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Test</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="TestKeyAlert">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>484</x>
|
||||
<y>313</y>
|
||||
<width>47</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Test</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="testBells">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>484</x>
|
||||
<y>238</y>
|
||||
<width>47</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Test</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>36</x>
|
||||
<y>336</y>
|
||||
<width>471</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>It may take a second or two for sound to play after pressing Test button</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="bellsFile">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>238</y>
|
||||
<width>207</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::InsertAtTop</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/PCBeep</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/LowTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/HighTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ring</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ding</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="intervalFile">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>264</y>
|
||||
<width>207</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::InsertAtTop</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/PCBeep</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/LowTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/HighTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ring</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ding</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="connectFile">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>288</y>
|
||||
<width>207</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::InsertAtTop</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/PCBeep</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/LowTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/HighTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ring</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ding</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="keywordWAV">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>200</x>
|
||||
<y>314</y>
|
||||
<width>207</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::InsertAtTop</enum>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/PCBeep</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/LowTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/HighTone</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ring</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>:/Ding</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
<buttongroups>
|
||||
<buttongroup name="buttonGroup"/>
|
||||
</buttongroups>
|
||||
</ui>
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>432</width>
|
||||
<height>286</height>
|
||||
<height>319</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -17,7 +17,7 @@
|
|||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>238</y>
|
||||
<y>262</y>
|
||||
<width>351</width>
|
||||
<height>33</height>
|
||||
</rect>
|
||||
|
@ -58,7 +58,7 @@
|
|||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>96</y>
|
||||
<y>120</y>
|
||||
<width>401</width>
|
||||
<height>57</height>
|
||||
</rect>
|
||||
|
@ -69,7 +69,7 @@
|
|||
<widget class="QLineEdit" name="Host">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<x>78</x>
|
||||
<y>20</y>
|
||||
<width>111</width>
|
||||
<height>22</height>
|
||||
|
@ -79,7 +79,7 @@
|
|||
<widget class="QLineEdit" name="Port">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>330</x>
|
||||
<x>290</x>
|
||||
<y>21</y>
|
||||
<width>47</width>
|
||||
<height>22</height>
|
||||
|
@ -102,7 +102,7 @@
|
|||
<widget class="QLabel" name="label_21">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>280</x>
|
||||
<x>222</x>
|
||||
<y>24</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
|
@ -139,8 +139,8 @@
|
|||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>46</y>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>411</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
|
@ -151,7 +151,7 @@
|
|||
<widget class="QComboBox" name="SerialPort">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>150</x>
|
||||
<x>138</x>
|
||||
<y>20</y>
|
||||
<width>111</width>
|
||||
<height>22</height>
|
||||
|
@ -174,7 +174,7 @@
|
|||
<widget class="QLabel" name="label_23">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>280</x>
|
||||
<x>276</x>
|
||||
<y>20</y>
|
||||
<width>47</width>
|
||||
<height>22</height>
|
||||
|
@ -187,7 +187,7 @@
|
|||
<widget class="QLineEdit" name="Speed">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>335</x>
|
||||
<x>328</x>
|
||||
<y>21</y>
|
||||
<width>51</width>
|
||||
<height>22</height>
|
||||
|
@ -201,9 +201,9 @@
|
|||
<widget class="QLabel" name="label_14">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<x>12</x>
|
||||
<y>12</y>
|
||||
<width>161</width>
|
||||
<width>149</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -214,7 +214,7 @@
|
|||
<widget class="QCheckBox" name="KISSEnable">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>150</x>
|
||||
<x>158</x>
|
||||
<y>10</y>
|
||||
<width>23</width>
|
||||
<height>25</height>
|
||||
|
@ -230,7 +230,7 @@
|
|||
<widget class="QLabel" name="label_22">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>230</x>
|
||||
<x>214</x>
|
||||
<y>13</y>
|
||||
<width>61</width>
|
||||
<height>17</height>
|
||||
|
@ -243,7 +243,7 @@
|
|||
<widget class="QLineEdit" name="MYCALL">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>300</x>
|
||||
<x>286</x>
|
||||
<y>10</y>
|
||||
<width>91</width>
|
||||
<height>22</height>
|
||||
|
@ -254,7 +254,7 @@
|
|||
<property name="geometry">
|
||||
<rect>
|
||||
<x>25</x>
|
||||
<y>168</y>
|
||||
<y>192</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
|
@ -266,8 +266,8 @@
|
|||
<widget class="QLineEdit" name="Paclen">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>165</y>
|
||||
<x>98</x>
|
||||
<y>189</y>
|
||||
<width>47</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
|
@ -276,8 +276,8 @@
|
|||
<widget class="QLabel" name="label_26">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>265</x>
|
||||
<y>168</y>
|
||||
<x>213</x>
|
||||
<y>192</y>
|
||||
<width>66</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
|
@ -289,8 +289,8 @@
|
|||
<widget class="QLineEdit" name="Maxframe">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>340</x>
|
||||
<y>165</y>
|
||||
<x>288</x>
|
||||
<y>189</y>
|
||||
<width>47</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
|
@ -300,7 +300,7 @@
|
|||
<property name="geometry">
|
||||
<rect>
|
||||
<x>25</x>
|
||||
<y>202</y>
|
||||
<y>226</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
|
@ -312,8 +312,8 @@
|
|||
<widget class="QLineEdit" name="Frack">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>199</y>
|
||||
<x>98</x>
|
||||
<y>223</y>
|
||||
<width>36</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
|
@ -322,8 +322,8 @@
|
|||
<widget class="QLabel" name="label_28">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>265</x>
|
||||
<y>201</y>
|
||||
<x>213</x>
|
||||
<y>225</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
|
@ -335,13 +335,42 @@
|
|||
<widget class="QLineEdit" name="Retries">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>340</x>
|
||||
<y>198</y>
|
||||
<x>288</x>
|
||||
<y>222</y>
|
||||
<width>36</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>12</x>
|
||||
<y>38</y>
|
||||
<width>149</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Allow incoming connects</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="KISSListen">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>158</x>
|
||||
<y>38</y>
|
||||
<width>23</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
|
|
Binary file not shown.
904
QtTermTCP.cpp
904
QtTermTCP.cpp
File diff suppressed because it is too large
Load Diff
42
QtTermTCP.h
42
QtTermTCP.h
|
@ -2,8 +2,8 @@
|
|||
|
||||
#include <QMainWindow>
|
||||
#include "ui_QtTermTCP.h"
|
||||
//#include "ui_AGWParams.h"
|
||||
//#include "ui_AGWConnect.h"
|
||||
#include "ui_AlertSetup.h"
|
||||
#include "ui_YAPPRxSize.h"
|
||||
#include "ui_ColourConfig.h"
|
||||
#include "ui_VARAConfig.h"
|
||||
#include "ui_KISSConfig.h"
|
||||
|
@ -28,6 +28,8 @@
|
|||
#include <QMenuBar>
|
||||
#include <QProcess>
|
||||
#include <QtSerialPort/QSerialPort>
|
||||
#include <QtMultimedia/QSound>
|
||||
#include <QtMultimedia/QSoundEffect>
|
||||
|
||||
#define MAXHOSTS 16
|
||||
#define MAXPORTS 64
|
||||
|
@ -83,8 +85,10 @@ public:
|
|||
int MonSaveLen;
|
||||
char MonSave[4096];
|
||||
|
||||
char PortMonString[1024]; // 32 ports 32 Bytes
|
||||
unsigned long long portmask;
|
||||
char PortMonString[2048]; // 64 ports 32 Bytes
|
||||
uint64_t portmask;
|
||||
int EnableMonitor;
|
||||
int mlocaltime;
|
||||
int mtxparam;
|
||||
int mcomparam;
|
||||
int monUI;
|
||||
|
@ -109,6 +113,11 @@ public:
|
|||
char pageBuffer[4096];
|
||||
QBasicTimer timer;
|
||||
|
||||
int sessNo; // Used to create unique log filename;
|
||||
bool LogMonitor;
|
||||
QFile * monLogfile;
|
||||
char * monSpan;
|
||||
|
||||
protected:
|
||||
|
||||
void timerEvent(QTimerEvent *event) override;
|
||||
|
@ -130,17 +139,22 @@ public:
|
|||
QtTermTCP(QWidget *parent = NULL);
|
||||
void closeEvent(QCloseEvent * event);
|
||||
static void setFonts();
|
||||
|
||||
~QtTermTCP();
|
||||
|
||||
private slots:
|
||||
void Disconnect();
|
||||
void doYAPPSend();
|
||||
void doYAPPSetRX();
|
||||
void doYAPPSetSize();
|
||||
void sizeaccept();
|
||||
void sizereject();
|
||||
void menuChecked();
|
||||
void Connect();
|
||||
void displayError(QAbstractSocket::SocketError socketError);
|
||||
void readyRead();
|
||||
|
||||
void showContextMenu(const QPoint & point);
|
||||
void autoConnectChecked();
|
||||
void LreturnPressed(Ui_ListenSession * LUI);
|
||||
void LDisconnect(Ui_ListenSession * LUI);
|
||||
void SetupHosts();
|
||||
|
@ -148,6 +162,17 @@ private slots:
|
|||
void KISSTimerSlot();
|
||||
void ListenSlot();
|
||||
void AGWSlot();
|
||||
void AlertSlot();
|
||||
void chooseInboundWAV();
|
||||
void chooseBellsWAV();
|
||||
void chooseIntervalWAV();
|
||||
void chooseAlertWAV();
|
||||
void testInboundWAV();
|
||||
void testBellsWAV();
|
||||
void testIntervalWAV();
|
||||
void testAlertWAV();
|
||||
void alertAccept();
|
||||
void alertReject();
|
||||
void VARASlot();
|
||||
void KISSSlot();
|
||||
void deviceaccept();
|
||||
|
@ -244,6 +269,7 @@ private:
|
|||
QAction *AGWAction;
|
||||
QAction *VARAAction;
|
||||
QAction *KISSAction;
|
||||
QAction *AlertAction;
|
||||
QAction *quitAction;
|
||||
|
||||
QList<myTcpSocket*> _sockets;
|
||||
|
@ -265,15 +291,19 @@ extern "C"
|
|||
void setTraceOff(Ui_ListenSession * Sess);
|
||||
void SetPortMonLine(int i, char * Text, int visible, int enabled);
|
||||
void SaveSettings();
|
||||
void myBeep();
|
||||
void myBeep(QString * WAV);
|
||||
void YAPPSendFile(Ui_ListenSession * Sess, char * FN);
|
||||
int SocketSend(Ui_ListenSession * Sess, char * Buffer, int len);
|
||||
void SendTraceOptions(Ui_ListenSession * Sess);
|
||||
int SocketFlush(Ui_ListenSession * Sess);
|
||||
extern void mySleep(int ms);
|
||||
extern void setTraceOff(Ui_ListenSession * Sess);
|
||||
void GetKeyWordFile();
|
||||
}
|
||||
|
||||
extern QString ConnectWAV;
|
||||
extern QString BellWAV;
|
||||
extern QString AlertWAV;
|
||||
|
||||
char * strlop(char * buf, char delim);
|
||||
extern "C" void setMenus(int State);
|
||||
|
|
Binary file not shown.
121
QtTermTCP.ini
121
QtTermTCP.ini
|
@ -1,121 +0,0 @@
|
|||
[General]
|
||||
HostParams0=nottm.g8bpq.net|8011|gm8bpq|password|5 1 1 0 1 0 0 1\r|Pogo4
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xea\0\0\0\xaf\0\0\x3\xf6\0\0\x3h\0\0\0\xea\0\0\0\xaf\0\0\x3\xf6\0\0\x3h\0\0\0\0\0\0\0\0\a\x80\0\0\0\xea\0\0\0\xaf\0\0\x3\xf6\0\0\x3h)
|
||||
HostParams1=192.168.1.63|8011|john|password||Pogo2
|
||||
windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x3\r\0\0\x2\x8c\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x3\0\0\0\x1\0\0\0\x16\0m\0\x61\0i\0n\0T\0o\0o\0l\0\x62\0\x61\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
|
||||
HostParams2=127.0.0.1|8011|gm8bpq|password|c000000100000000 1 1 0 1 0 0 1\r|
|
||||
HostParams3=192.168.1.131|8011|john|password|1 1 1 0 1 0 0 1\r|Slack
|
||||
HostParams4=127.0.0.1|8021|john|password|c000000100000006 1 1 0 1 0 0 1\r|LinBPQ
|
||||
HostParams5=192.168.1.18|8011|john|password|c00000010000002e 1 1 0 1 0 0 1\r|
|
||||
HostParams6=|0||||
|
||||
HostParams7=|0||||
|
||||
HostParams8=|0||||
|
||||
HostParams9=|0||||
|
||||
HostParams10=|0||||
|
||||
HostParams11=|0||||
|
||||
HostParams12=|0||||
|
||||
HostParams13=|0||||
|
||||
HostParams14=|0||||
|
||||
HostParams15=|0||||
|
||||
Split=41
|
||||
ChatMode=1
|
||||
AutoTeletext=1
|
||||
Bells=1
|
||||
StripLF=1
|
||||
AlertBeep=1
|
||||
ConnectBeep=1
|
||||
CurrentHost=0
|
||||
YAPPPath=
|
||||
listenPort=8015
|
||||
listenEnable=1
|
||||
listenCText=[PMS-2.3-C]\rHello>\r
|
||||
convUTF8=0
|
||||
PTT=None
|
||||
PTTBAUD=0
|
||||
PTTMode=1
|
||||
CATHex=1
|
||||
PTTOffString=
|
||||
PTTOnString=
|
||||
pttGPIOPin=17
|
||||
pttGPIOPinR=17
|
||||
CM108Addr=0xD8C:0x08
|
||||
HamLibPort=4532
|
||||
HamLibHost=127.0.0.1
|
||||
FLRigPort=12345
|
||||
FLRigHost=127.0.0.1
|
||||
AGWEnable=0
|
||||
AGWMonEnable=1
|
||||
AGWTermCall=G8BPQ
|
||||
AGWBeaconDest=
|
||||
AGWBeaconPath=
|
||||
AGWBeaconInterval=0
|
||||
AGWBeaconPorts=
|
||||
AGWBeaconText=
|
||||
AGWHost=127.0.0.1
|
||||
AGWPort=8001
|
||||
AGWPaclen=80
|
||||
AGWToCalls=G8BPQ-2, SWITCH,
|
||||
KISSEnable=0
|
||||
MYCALL=GM8BPQ
|
||||
KISSHost=127.0.0.1
|
||||
KISSMode=0
|
||||
KISSPort=8110
|
||||
KISSSerialPort=TCP
|
||||
KISSBAUD=19200
|
||||
VARAEnable=0
|
||||
VARATermCall=G8BPQ
|
||||
VARAHost=127.0.0.1
|
||||
VARAPort=8310
|
||||
VARAPath=C:\\VARA\\VARA.exe
|
||||
VARAHostHF=127.0.0.1
|
||||
VARAPortHF=8310
|
||||
VARAPathHF=C:\\VARA\\VARA.exe
|
||||
VARAHostFM=127.0.0.1
|
||||
VARAPortFM=8300
|
||||
VARAPathFM=C:\\VARA\\VARAFM.exe
|
||||
VARAHostSAT=127.0.0.1
|
||||
VARAPortSAT=8300
|
||||
VARAPathSAT=C:\\VARA\\VARASAT.exe
|
||||
VARA500=0
|
||||
VARA2300=1
|
||||
VARA2750=0
|
||||
VARAHF=1
|
||||
VARAFM=0
|
||||
VARASAT=0
|
||||
TabType=1 3 1 1 1 1 1 2 2 0
|
||||
monBackground=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0)
|
||||
monRxText=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\xff\xff\0\0)
|
||||
monTxText=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\0\0\0\0)
|
||||
monOtherText=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
|
||||
termBackground=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0)
|
||||
outputText=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\xff\xff\0\0)
|
||||
EchoText=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
|
||||
WarningText=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\0\0\0\0\0\0)
|
||||
inputBackground=@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0)
|
||||
inputText=@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)
|
||||
TermMode=2
|
||||
singlemodeFormat=3
|
||||
FontFamily=Courier
|
||||
PointSize=10
|
||||
Weight=50
|
||||
Sessions="1|1, 17, 40, 205, 625, 990|"
|
||||
VARAInit="P2P SESSION,WINLINK SESSION"
|
||||
|
||||
[AX25_A]
|
||||
Retries=10
|
||||
Maxframe=4
|
||||
Paclen=128
|
||||
FrackTime=8
|
||||
IdleTime=180
|
||||
SlotTime=100
|
||||
Persist=128
|
||||
RespTime=1500
|
||||
TXFrmMode=1
|
||||
FrameCollector=6
|
||||
ExcludeCallsigns=
|
||||
ExcludeAPRSFrmType=
|
||||
KISSOptimization=0
|
||||
DynamicFrack=0
|
||||
BitRecovery=0
|
||||
IPOLL=80
|
||||
MyDigiCall=
|
|
@ -3,6 +3,7 @@ QT += core gui
|
|||
QT += network
|
||||
QT += widgets
|
||||
QT += serialport
|
||||
QT += multimedia
|
||||
|
||||
|
||||
TARGET = QtTermTCP
|
||||
|
@ -40,7 +41,9 @@ FORMS += QtTermTCP.ui\
|
|||
VARAConfig.ui \
|
||||
KISSConfig.ui \
|
||||
ColourConfig.ui \
|
||||
AGWConnect.ui
|
||||
YAPPRxSize.ui \
|
||||
AGWConnect.ui \
|
||||
AlertSetup.ui
|
||||
|
||||
RESOURCES += QtTermTCP.qrc
|
||||
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
<RCC>
|
||||
<qresource prefix="/QtTermTCP">
|
||||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource>
|
||||
<file alias="LowTone">250x600Hz.wav</file>
|
||||
<file alias="HighTone">250x1000Hz.wav</file>
|
||||
<file alias="Ding">ding.wav</file>
|
||||
<file alias="PCBeep">PCBeep.wav</file>
|
||||
<file alias="Ring">Ring.wav</file>
|
||||
<file>QtTermTCP.ico</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<ProjectGuid>{14F3B24E-473C-324E-A99D-3B679FCF5F67}</ProjectGuid>
|
||||
<RootNamespace>QtTermTCP</RootNamespace>
|
||||
<Keyword>QtVS_v304</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
||||
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
|
||||
</PropertyGroup>
|
||||
|
@ -153,7 +153,7 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>shell32.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>shell32.lib;setupapi.lib;C:\Qt\Qt5.14.2\5.14.2\msvc2017\lib\Qt5Multimedia.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>-no-pie "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
|
@ -279,7 +279,7 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>shell32.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>shell32.lib;setupapi.lib;%(AdditionalDependencies);C:\Qt\Qt5.14.2\5.14.2\msvc2017\lib\Qt5Multimediad.lib</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>-no-pie "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
|
@ -435,6 +435,7 @@
|
|||
</QtUic>
|
||||
<QtUic Include="AGWParams.ui">
|
||||
</QtUic>
|
||||
<QtUic Include="AlertSetup.ui" />
|
||||
<QtUic Include="ColourConfig.ui" />
|
||||
<QtUic Include="KISSConfig.ui">
|
||||
</QtUic>
|
||||
|
@ -444,6 +445,7 @@
|
|||
</QtUic>
|
||||
<QtUic Include="VARAConfig.ui">
|
||||
</QtUic>
|
||||
<QtUic Include="YAPPRxSize.ui" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="QtTermTCP.ico" />
|
||||
|
|
|
@ -15,36 +15,36 @@
|
|||
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Generated Files">
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
|
||||
<Extensions>qrc;*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
|
||||
<Extensions>qrc;*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Form Files\Generated Files">
|
||||
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
|
||||
<Extensions>qrc;*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
|
||||
<Extensions>qrc;*</Extensions>
|
||||
<ParseFiles>false</ParseFiles>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AGWCode.cpp">
|
||||
|
@ -83,30 +83,21 @@
|
|||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<QtMoc Include="TabDialog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
<Filter>Form Files\Generated Files</Filter>
|
||||
</QtMoc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="debug\moc_predefs.h.cbt">
|
||||
<Filter>Generated Files</Filter>
|
||||
<Filter>Form Files\Generated Files</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="release\moc_predefs.h.cbt">
|
||||
<Filter>Generated Files</Filter>
|
||||
<Filter>Form Files\Generated Files</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtUic Include="AGWConnect.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="AGWParams.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="KISSConfig.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="ListenPort.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="QtTermTCP.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
|
@ -116,6 +107,21 @@
|
|||
<QtUic Include="ColourConfig.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="YAPPRxSize.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="AGWConnect.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="ListenPort.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="KISSConfig.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="AlertSetup.ui">
|
||||
<Filter>Form Files</Filter>
|
||||
</QtUic>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="QtTermTCP.ico">
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>$(APPDATA)</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>..\..\..\..\..\DevProgs\BPQ32</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<QtLastBackgroundBuild>2022-05-19T07:28:47.9186341Z</QtLastBackgroundBuild>
|
||||
</PropertyGroup>
|
||||
|
@ -8,15 +15,15 @@
|
|||
<QtLastBackgroundBuild>2022-05-19T07:28:58.9302359Z</QtLastBackgroundBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<QtLastBackgroundBuild>2023-04-12T13:14:53.1644359Z</QtLastBackgroundBuild>
|
||||
<QtLastBackgroundBuild>2023-10-14T13:14:56.5532991Z</QtLastBackgroundBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="QtSettings">
|
||||
<QtLastBackgroundBuild>2023-02-08T10:47:28.1396474Z</QtLastBackgroundBuild>
|
||||
<QtLastBackgroundBuild>2023-10-14T13:14:56.7231497Z</QtLastBackgroundBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<QtLastBackgroundBuild>2023-03-06T08:27:08.3742630Z</QtLastBackgroundBuild>
|
||||
<QtLastBackgroundBuild>2023-10-14T13:14:55.9367569Z</QtLastBackgroundBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="QtSettings">
|
||||
<QtLastBackgroundBuild>2023-02-08T10:47:27.7430420Z</QtLastBackgroundBuild>
|
||||
<QtLastBackgroundBuild>2023-10-14T13:14:56.2561805Z</QtLastBackgroundBuild>
|
||||
</PropertyGroup>
|
||||
</Project>
|
BIN
QtTermTCP52.zip
BIN
QtTermTCP52.zip
Binary file not shown.
|
@ -264,6 +264,22 @@ void AGWConnect::myaccept()
|
|||
strcpy(CallTo, wCallTo->currentText().toUpper().toUtf8());
|
||||
strcpy(Via, Digis->text().toUpper().toUtf8());
|
||||
|
||||
if (CallFrom[0] == 0)
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Call From missing");
|
||||
msgBox.exec();
|
||||
return;
|
||||
}
|
||||
|
||||
if (CallTo[0] == 0)
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Call To missing");
|
||||
msgBox.exec();
|
||||
return;
|
||||
}
|
||||
|
||||
// if digis have to form block with byte count followed by n 10 byte calls
|
||||
|
||||
if (Via[0])
|
||||
|
|
|
@ -38,7 +38,6 @@ void DecodeTeleText(Ui_ListenSession * Sess, char * page);
|
|||
|
||||
int Bells = TRUE;
|
||||
int StripLF = FALSE;
|
||||
int LogMonitor = FALSE;
|
||||
int LogOutput = FALSE;
|
||||
int SendDisconnected = TRUE;
|
||||
int ChatMode = TRUE;
|
||||
|
@ -56,12 +55,12 @@ TCHAR AlertFileName[256] = { 0 };
|
|||
int ConnectBeep = TRUE;
|
||||
int UseKeywords = TRUE;
|
||||
|
||||
char KeyWordsName[MAX_PATH] = "Keywords.sys";
|
||||
QString KeyWordsFile = "Keywords.sys";
|
||||
|
||||
char ** KeyWords = NULL;
|
||||
int NumberofKeyWords = 0;
|
||||
|
||||
|
||||
|
||||
// YAPP stuff
|
||||
|
||||
#define SOH 1
|
||||
|
@ -112,6 +111,96 @@ char * strlop(char * buf, char delim)
|
|||
return ptr;
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
char * strcasestr(char *ch1, char *ch2)
|
||||
{
|
||||
char *chN1, *chN2;
|
||||
char *chNdx;
|
||||
char *chRet = NULL;
|
||||
|
||||
chN1 = _strdup(ch1);
|
||||
chN2 = _strdup(ch2);
|
||||
|
||||
if (chN1 && chN2)
|
||||
{
|
||||
chNdx = chN1;
|
||||
while (*chNdx)
|
||||
{
|
||||
*chNdx = (char)tolower(*chNdx);
|
||||
chNdx++;
|
||||
}
|
||||
chNdx = chN2;
|
||||
|
||||
while (*chNdx)
|
||||
{
|
||||
*chNdx = (char)tolower(*chNdx);
|
||||
chNdx++;
|
||||
}
|
||||
|
||||
chNdx = strstr(chN1, chN2);
|
||||
|
||||
if (chNdx)
|
||||
chRet = ch1 + (chNdx - chN1);
|
||||
}
|
||||
|
||||
free(chN1);
|
||||
free(chN2);
|
||||
return chRet;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void GetKeyWordFile()
|
||||
{
|
||||
DWORD FileSize;
|
||||
char * ptr1, *ptr2;
|
||||
char * KeyWordFile;
|
||||
|
||||
QFile file(KeyWordsFile);
|
||||
|
||||
if (!file.open(QIODevice::ReadOnly))
|
||||
{
|
||||
if (UseKeywords) // Don't need to alert if not being used
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText("Keyword File " + KeyWordsFile + " not found");
|
||||
msgBox.exec();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
FileSize = file.size();
|
||||
|
||||
KeyWordFile = (char *)malloc(FileSize + 1);
|
||||
|
||||
file.read(KeyWordFile, FileSize);
|
||||
|
||||
file.close();
|
||||
|
||||
KeyWordFile[FileSize] = 0;
|
||||
|
||||
ptr1 = KeyWordFile;
|
||||
|
||||
while (ptr1)
|
||||
{
|
||||
if (*ptr1 == '\n') ptr1++;
|
||||
|
||||
ptr2 = strtok_s(NULL, "\r\n", &ptr1);
|
||||
if (ptr2)
|
||||
{
|
||||
if (*ptr2 != '#')
|
||||
{
|
||||
KeyWords = (char **)realloc(KeyWords, (++NumberofKeyWords + 1) * 4);
|
||||
KeyWords[NumberofKeyWords] = ptr2;
|
||||
}
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int CheckKeyWord(char * Word, char * Msg)
|
||||
{
|
||||
char * ptr1 = Msg, *ptr2;
|
||||
|
@ -119,7 +208,7 @@ int CheckKeyWord(char * Word, char * Msg)
|
|||
|
||||
while (*ptr1) // Stop at end
|
||||
{
|
||||
ptr2 = strstr(ptr1, Word);
|
||||
ptr2 = strcasestr(ptr1, Word);
|
||||
|
||||
if (ptr2 == NULL)
|
||||
return FALSE; // OK
|
||||
|
@ -140,25 +229,29 @@ int CheckKeyWord(char * Word, char * Msg)
|
|||
|
||||
int CheckKeyWords(UCHAR * Msg, int len)
|
||||
{
|
||||
char dupMsg[2048];
|
||||
int i;
|
||||
|
||||
if (UseKeywords == 0 || NumberofKeyWords == 0)
|
||||
return FALSE;
|
||||
|
||||
memcpy(dupMsg, Msg, len);
|
||||
dupMsg[len] = 0;
|
||||
//_strlwr(dupMsg);
|
||||
// we need to null terminate Msg, so create a copy
|
||||
|
||||
unsigned char * copy = (unsigned char *)malloc(len + 1);
|
||||
|
||||
memcpy(copy, Msg, len);
|
||||
copy[len] = 0;
|
||||
|
||||
for (i = 1; i <= NumberofKeyWords; i++)
|
||||
{
|
||||
if (CheckKeyWord(KeyWords[i], dupMsg))
|
||||
if (CheckKeyWord(KeyWords[i], (char *)copy))
|
||||
{
|
||||
// Beep(660, 250);
|
||||
myBeep(&AlertWAV);
|
||||
free (copy);
|
||||
return TRUE; // Alert
|
||||
}
|
||||
}
|
||||
|
||||
free(copy);
|
||||
return FALSE; // OK
|
||||
|
||||
}
|
||||
|
@ -316,13 +409,13 @@ MonLoop:
|
|||
|
||||
// Save for changes of Window
|
||||
|
||||
if (len < 1024)
|
||||
if (len < 2048)
|
||||
memcpy(Sess->PortMonString, ptr, len);
|
||||
|
||||
|
||||
// Remove old menu
|
||||
|
||||
for (i = 0; i < 33; i++)
|
||||
for (i = 0; i < 65; i++)
|
||||
{
|
||||
SetPortMonLine(i, (char *)"", 0, 0);
|
||||
}
|
||||
|
@ -339,7 +432,7 @@ MonLoop:
|
|||
sprintf(msg, "Port %s", p);
|
||||
|
||||
if (m == 0)
|
||||
m = 33;
|
||||
m = 64;
|
||||
|
||||
if (Sess->portmask & (1ll << (m - 1)))
|
||||
SetPortMonLine(portnum, msg, 1, 1);
|
||||
|
@ -563,7 +656,7 @@ int InnerProcessYAPPMessage(Ui_ListenSession * Sess, UCHAR * Msg, int Len)
|
|||
{
|
||||
Mess[0] = NAK;
|
||||
Mess[1] = sprintf(&Mess[2], "File %s size %d larger than limit %d\r", ARQFilename, FileSize, MaxRXSize);
|
||||
mySleep(1000); // To give YAPP Msg tome to be sent
|
||||
mySleep(1000); // To give YAPP Msg time to be sent
|
||||
QueueMsg(Sess, Mess, Mess[1] + 2);
|
||||
|
||||
len = sprintf((char *)Buffer, "YAPP File %s size %d larger than limit %d\r", ARQFilename, FileSize, MaxRXSize);
|
||||
|
@ -871,6 +964,8 @@ int InnerProcessYAPPMessage(Ui_ListenSession * Sess, UCHAR * Msg, int Len)
|
|||
|
||||
YAPPDate = 0; // Switch to Normal (No Checksum) Mode
|
||||
|
||||
// Drop through
|
||||
|
||||
case 6: // Send using YAPPC
|
||||
|
||||
// Start sending message
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>TeleTextDialog</class>
|
||||
<widget class="QDialog" name="TeleTextDialog">
|
||||
<class>SizeDialog</class>
|
||||
<widget class="QDialog" name="SizeDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>665</width>
|
||||
<height>551</height>
|
||||
<width>243</width>
|
||||
<height>157</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -16,10 +16,10 @@
|
|||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>224</x>
|
||||
<y>516</y>
|
||||
<width>153</width>
|
||||
<height>31</height>
|
||||
<x>20</x>
|
||||
<y>80</y>
|
||||
<width>181</width>
|
||||
<height>33</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout">
|
||||
|
@ -54,17 +54,27 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Page">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>28</x>
|
||||
<y>20</y>
|
||||
<width>600</width>
|
||||
<height>475</height>
|
||||
<x>20</x>
|
||||
<y>30</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
<string>Max RX Size</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="maxSize">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>30</y>
|
||||
<width>61</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
|
@ -73,7 +83,7 @@
|
|||
<connection>
|
||||
<sender>okButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>TeleTextDialog</receiver>
|
||||
<receiver>SizeDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
|
@ -89,7 +99,7 @@
|
|||
<connection>
|
||||
<sender>cancelButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>TeleTextDialog</receiver>
|
||||
<receiver>SizeDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
37
ax25.c
37
ax25.c
|
@ -312,7 +312,7 @@ void AX25_conn(TAX25Port * AX25Sess, int snd_ch, Byte mode)
|
|||
{
|
||||
case MODE_OTHER:
|
||||
|
||||
Len = sprintf(Msg, "Incomming Connection from %s\r", AX25Sess->corrcall);
|
||||
Len = sprintf(Msg, "Incoming KISS Connection from %s\r", AX25Sess->corrcall);
|
||||
break;
|
||||
|
||||
case MODE_OUR:
|
||||
|
@ -1405,7 +1405,7 @@ end;
|
|||
|
||||
boolean is_last_digi(Byte *path)
|
||||
{
|
||||
int len = strlen(path);
|
||||
int len = strlen((char *)path);
|
||||
|
||||
if (len == 14)
|
||||
return TRUE;
|
||||
|
@ -1469,7 +1469,7 @@ boolean is_correct_path(Byte * path, Byte pid)
|
|||
int i;
|
||||
|
||||
|
||||
if (pid == 0 || strchr(networks, pid))
|
||||
if (pid == 0 || strchr((char *)networks, pid))
|
||||
{
|
||||
// Validate calls
|
||||
|
||||
|
@ -1678,7 +1678,7 @@ int number_digi(unsigned char * path)
|
|||
|
||||
void get_monitor_path(Byte * path, char * mycall, char * corrcall, char * digi)
|
||||
{
|
||||
Byte * digiptr = digi;
|
||||
char * digiptr = digi;
|
||||
|
||||
digi[0] = 0;
|
||||
|
||||
|
@ -2622,7 +2622,7 @@ void KISS_add_stream(void * Socket)
|
|||
|
||||
KissConnections = realloc(KissConnections, (KISSConCount + 1) * sizeof(void *));
|
||||
|
||||
KISS = KissConnections[KISSConCount++] = malloc(sizeof(KISS));
|
||||
KISS = KissConnections[KISSConCount++] = malloc(sizeof(TKISSMode));
|
||||
|
||||
KISS->Socket = Socket;
|
||||
KISS->data_in = newString();
|
||||
|
@ -2681,7 +2681,7 @@ TAX25Port * KISSConnectOut(void * Sess, char * CallFrom, char * CallTo, char * D
|
|||
|
||||
sprintf(path, "%s,%s", CallTo, CallFrom);
|
||||
|
||||
if (Digis)
|
||||
if (Digis && Digis[0])
|
||||
{
|
||||
strcat(path, ",");
|
||||
strcat(path, Digis);
|
||||
|
@ -2744,11 +2744,18 @@ TAX25Port * KISSConnectOut(void * Sess, char * CallFrom, char * CallTo, char * D
|
|||
|
||||
char ShortDT[] = "HH:MM:SS";
|
||||
|
||||
int KISSLocalTime = 0;
|
||||
int KISSMonEnable = 0;
|
||||
int KISSMonNodes = 0;
|
||||
|
||||
char * ShortDateTime()
|
||||
{
|
||||
struct tm * tm;
|
||||
time_t NOW = time(NULL);
|
||||
|
||||
if (KISSLocalTime)
|
||||
tm = localtime(&NOW);
|
||||
else
|
||||
tm = gmtime(&NOW);
|
||||
|
||||
sprintf(ShortDT, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
|
@ -2756,7 +2763,6 @@ char * ShortDateTime()
|
|||
}
|
||||
|
||||
|
||||
|
||||
char FrameData[1024] = "";
|
||||
|
||||
char * frame_monitor(string * frame, char * code, int tx_stat)
|
||||
|
@ -2769,7 +2775,6 @@ char * frame_monitor(string * frame, char * code, int tx_stat)
|
|||
Byte _data[512] = "";
|
||||
Byte * p_data = _data;
|
||||
int _datalen;
|
||||
;
|
||||
char CallFrom[10], CallTo[10], Digi[80];
|
||||
|
||||
char TR = 'R';
|
||||
|
@ -2799,11 +2804,25 @@ char * frame_monitor(string * frame, char * code, int tx_stat)
|
|||
else
|
||||
decode_frame(frame->Data, frame->Length, path, data, &pid, &nr, &ns, &f_type, &f_id, &rpt, &pf, &cr);
|
||||
|
||||
|
||||
datap = data->Data;
|
||||
|
||||
len = data->Length;
|
||||
|
||||
// if (pid == 0xCF)
|
||||
if (pid == 0xCF)
|
||||
{
|
||||
if (datap[0] == 255) //Nodes broadcast
|
||||
{
|
||||
if (KISSMonNodes == 0)
|
||||
{
|
||||
freeString(data);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// data = parse_NETROM(data, f_id);
|
||||
// IP parsing
|
||||
// else if (pid == 0xCC)
|
||||
|
|
11
ax25.h
11
ax25.h
|
@ -125,17 +125,6 @@ typedef struct TStringList_T
|
|||
} TStringList;
|
||||
|
||||
|
||||
typedef struct AGWUser_t
|
||||
{
|
||||
void *socket;
|
||||
string * data_in;
|
||||
TStringList AGW_frame_buf;
|
||||
boolean Monitor;
|
||||
boolean Monitor_raw;
|
||||
boolean reportFreqAndModem; // Can report modem and frequency to host
|
||||
|
||||
} AGWUser;
|
||||
|
||||
typedef struct TAX25Info_t
|
||||
{
|
||||
longint stat_s_pkt;
|
||||
|
|
|
@ -25,6 +25,8 @@ along with QtSoundModem. If not, see http://www.gnu.org/licenses
|
|||
UCHAR TimerEvent = TIMER_EVENT_OFF;
|
||||
extern int busy;
|
||||
int listenEnable;
|
||||
int KISSListen = 1;
|
||||
|
||||
void * KISSSockCopy[4];
|
||||
extern UCHAR axMYCALL[7] = ""; // Mycall in ax.25
|
||||
|
||||
|
@ -1023,7 +1025,7 @@ void on_I(void * socket, TAX25Port * AX25Sess, int PID, Byte * path, string * d
|
|||
}
|
||||
/////////////////////////// U-FRAMES ////////////////////////////////////
|
||||
|
||||
void * ax25IncommingConnect(TAX25Port * AX25Sess);
|
||||
void * ax25IncomingConnect(TAX25Port * AX25Sess);
|
||||
|
||||
void on_SABM(void * socket, TAX25Port * AX25Sess)
|
||||
{
|
||||
|
@ -1087,7 +1089,7 @@ void on_SABM(void * socket, TAX25Port * AX25Sess)
|
|||
|
||||
add_pkt_buf(AX25Sess, make_frame(NULL, AX25Sess->Path, 0, 0, 0, U_FRM, U_UA, FALSE, SET_P, SET_R));
|
||||
|
||||
if (ax25IncommingConnect(AX25Sess)) // Attach to Terminal
|
||||
if (ax25IncomingConnect(AX25Sess)) // Attach to Terminal
|
||||
AX25_conn(AX25Sess, AX25Sess->snd_ch, MODE_OTHER);
|
||||
|
||||
return;
|
||||
|
@ -1550,7 +1552,7 @@ void analiz_frame(int snd_ch, string * frame, void * socket, boolean fecflag)
|
|||
if (memcmp(path, axMYCALL, 7) != 0)
|
||||
return; // ignore
|
||||
|
||||
if (listenEnable == 0)
|
||||
if (KISSListen == 0)
|
||||
{
|
||||
set_DM(snd_ch, path);
|
||||
freeString(data);
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
#define _MSC_EXTENSIONS
|
||||
#define _INTEGRAL_MAX_BITS 64
|
||||
#define _MSC_VER 1916
|
||||
#define _MSC_FULL_VER 191627043
|
||||
#define _MSC_BUILD 0
|
||||
#define _WIN32
|
||||
#define _M_IX86 600
|
||||
#define _M_IX86_FP 2
|
||||
#define _CPPRTTI
|
||||
#define _DEBUG
|
||||
#define _MT
|
||||
#define _DLL
|
15
makeit
15
makeit
|
@ -1,10 +1,11 @@
|
|||
cp --preserve /mnt/Source/QT/QtTermTCP/*.cpp ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP/*.c ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP/*.h ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP/*.ui ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP/*.pro ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP/*.qrc ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP/*.ico ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.cpp ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.c ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.h ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.ui ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.pro ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.qrc ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.ico ./
|
||||
cp --preserve /mnt/Source/QT/QtTermTCP2/*.wav ./
|
||||
qmake
|
||||
|
||||
make -j4
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#define _MSC_EXTENSIONS
|
||||
#define _INTEGRAL_MAX_BITS 64
|
||||
#define _MSC_VER 1916
|
||||
#define _MSC_FULL_VER 191627043
|
||||
#define _MSC_BUILD 0
|
||||
#define _WIN32
|
||||
#define _M_IX86 600
|
||||
#define _M_IX86_FP 2
|
||||
#define _CPPRTTI
|
||||
#define _MT
|
||||
#define _DLL
|
|
@ -1,65 +0,0 @@
|
|||
/********************************************************************************
|
||||
** Form generated from reading UI file 'TCPHostConfig.ui'
|
||||
**
|
||||
** Created by: Qt User Interface Compiler version 5.14.2
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef UI_TCPHOSTCONFIG_H
|
||||
#define UI_TCPHOSTCONFIG_H
|
||||
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtGui/QIcon>
|
||||
#include <QtWidgets/QApplication>
|
||||
#include <QtWidgets/QDialog>
|
||||
#include <QtWidgets/QDialogButtonBox>
|
||||
#include <QtWidgets/QTextEdit>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class Ui_Dialog
|
||||
{
|
||||
public:
|
||||
QDialogButtonBox *buttonBox;
|
||||
QTextEdit *Host;
|
||||
|
||||
void setupUi(QDialog *Dialog)
|
||||
{
|
||||
if (Dialog->objectName().isEmpty())
|
||||
Dialog->setObjectName(QString::fromUtf8("Dialog"));
|
||||
Dialog->resize(400, 300);
|
||||
QIcon icon;
|
||||
icon.addFile(QString::fromUtf8("QtTermTCP.ico"), QSize(), QIcon::Normal, QIcon::Off);
|
||||
Dialog->setWindowIcon(icon);
|
||||
buttonBox = new QDialogButtonBox(Dialog);
|
||||
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
|
||||
buttonBox->setGeometry(QRect(30, 240, 341, 32));
|
||||
buttonBox->setOrientation(Qt::Horizontal);
|
||||
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Save);
|
||||
buttonBox->setCenterButtons(true);
|
||||
Host = new QTextEdit(Dialog);
|
||||
Host->setObjectName(QString::fromUtf8("Host"));
|
||||
Host->setGeometry(QRect(184, 44, 104, 23));
|
||||
|
||||
retranslateUi(Dialog);
|
||||
QObject::connect(buttonBox, SIGNAL(accepted()), Dialog, SLOT(accept()));
|
||||
QObject::connect(buttonBox, SIGNAL(rejected()), Dialog, SLOT(reject()));
|
||||
|
||||
QMetaObject::connectSlotsByName(Dialog);
|
||||
} // setupUi
|
||||
|
||||
void retranslateUi(QDialog *Dialog)
|
||||
{
|
||||
Dialog->setWindowTitle(QCoreApplication::translate("Dialog", "TCP Host Config", nullptr));
|
||||
} // retranslateUi
|
||||
|
||||
};
|
||||
|
||||
namespace Ui {
|
||||
class Dialog: public Ui_Dialog {};
|
||||
} // namespace Ui
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // UI_TCPHOSTCONFIG_H
|
Loading…
Reference in New Issue