diff --git a/AGWCode.cpp b/AGWCode.cpp
index 42f5f36..10bed29 100644
--- a/AGWCode.cpp
+++ b/AGWCode.cpp
@@ -495,6 +495,15 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
AGWUsers->MonSess = nullptr;
}
+ if (TermMode == Single && (singlemodeFormat & Mon))
+ {
+ //Re-renable TCP connects
+
+ for (int i = 0; i < MAXHOSTS; i++)
+ actHost[i]->setVisible(1);
+ }
+
+
AGWConnected = 0;
}
else if (socketState == QAbstractSocket::ConnectedState)
@@ -580,7 +589,15 @@ void QtTermTCP::onAGWSocketStateChanged(QAbstractSocket::SocketState socketState
else if (TermMode == Single)
mythis->setWindowTitle("AGW Monitor Window");
- if (TermMode != Tabbed) // Not ideal, but AGW mon window is unlikely to be active window
+ if (TermMode == Single && (singlemodeFormat & Mon))
+ {
+ // Can't be connected, so leave state alone, but disable TCP connects
+
+ for (int i = 0; i < MAXHOSTS; i++)
+ actHost[i]->setVisible(0);
+
+ }
+ else if (TermMode != Tabbed) // Not ideal, but AGW mon window is unlikely to be active window
{
discAction->setEnabled(false);
YAPPSend->setEnabled(false);
diff --git a/DialogButtonBottom.ui b/DialogButtonBottom.ui
new file mode 100644
index 0000000..5159f82
--- /dev/null
+++ b/DialogButtonBottom.ui
@@ -0,0 +1,100 @@
+
+
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ Dialog
+
+
+
+
+ 20
+ 250
+ 351
+ 33
+
+
+
+
+ 0
+
+
+ 6
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 131
+ 31
+
+
+
+
+ -
+
+
+ OK
+
+
+
+ -
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+
+ okButton
+ clicked()
+ Dialog
+ accept()
+
+
+ 278
+ 253
+
+
+ 96
+ 254
+
+
+
+
+ cancelButton
+ clicked()
+ Dialog
+ reject()
+
+
+ 369
+ 253
+
+
+ 179
+ 282
+
+
+
+
+
diff --git a/QtTermTCP.cpp b/QtTermTCP.cpp
index 07f0c1c..a9aebbd 100644
--- a/QtTermTCP.cpp
+++ b/QtTermTCP.cpp
@@ -1,6 +1,6 @@
// Qt Version of BPQTermTCP
-#define VersionString "0.0.0.58"
+#define VersionString "0.0.0.63"
// .12 Save font weight
// .13 Display incomplete lines (ie without CR)
@@ -64,6 +64,12 @@
// .57 Fix KISS mode incoming call handling
// .58 Add method to toggle Normal/Teletext Mode
// Fix KISS multiple session protection
+// .59 Add Teletext double height mode
+// .60 Add option to name sessions Jan 2023
+// .61 Add VARA Init Script Feb 2023
+// .62 Fix running AGW in single session mode Feb 2023
+// .63 Fix handling split monitor frame (no fe in buffer) Apr 2023
+
#define _CRT_SECURE_NO_WARNINGS
@@ -99,9 +105,6 @@
#include "ax25.h"
-#define MAXHOSTS 16
-#define MAXPORTS 32
-
#define UNREFERENCED_PARAMETER(P) (P)
void DecodeTeleText(Ui_ListenSession * Sess, char * text);
@@ -111,6 +114,7 @@ int Port[MAXHOSTS + 1] = { 0 };
char UserName[MAXHOSTS + 1][80] = { "" };
char Password[MAXHOSTS + 1][80] = { "" };
char MonParams[MAXHOSTS + 1][80] = { "" };
+char SessName[MAXHOSTS + 1][80] = { "" };
int ListenPort = 8015;
// Session Type Equates
@@ -264,6 +268,7 @@ int VARAPortFM = 8000;
int VARAPortSAT = 8000;
char VARATermCall[12] = "";
char VARAPath[256] = "";
+char VARAInit[256] = "";
char VARAPathHF[256] = "";
char VARAPathFM[256] = "";
char VARAPathSAT[256] = "";
@@ -457,7 +462,7 @@ int checkUTF8(unsigned char * Msg, int Len, unsigned char * out);
void EncodeSettingsLine(int n, char * String)
{
- sprintf(String, "%s|%d|%s|%s|%s", Host[n], Port[n], UserName[n], Password[n], MonParams[n]);
+ sprintf(String, "%s|%d|%s|%s|%s|%s", Host[n], Port[n], UserName[n], Password[n], MonParams[n], SessName[n]);
return;
}
@@ -516,9 +521,13 @@ void DecodeSettingsLine(int n, char * String)
Rest = strlop(Param, '|');
strcpy(Password[n], Param);
+ Param = Rest;
- strcpy(MonParams[n], Rest);
+ Rest = strlop(Param, '|');
+ strcpy(MonParams[n], Param);
+ if (Rest)
+ strcpy(SessName[n], Rest);
free(Save);
return;
@@ -918,6 +927,7 @@ Ui_ListenSession * newWindow(QObject * parent, int Type, const char * Label)
Sess->TTBitmap = new QImage(40 * 15, 25 * 19, QImage::Format_RGB32);
Sess->TTBitmap->fill(Qt::black);
+
/*
char Page[4096];
@@ -930,6 +940,7 @@ Ui_ListenSession * newWindow(QObject * parent, int Type, const char * Label)
Sess->TTActive = 1;
strcpy(Sess->pageBuffer, Page);
DecodeTeleText(Sess, Sess->pageBuffer);
+
*/
Sess->TTLabel->setPixmap(QPixmap::fromImage(*Sess->TTBitmap));
@@ -1183,9 +1194,18 @@ QtTermTCP::QtTermTCP(QWidget *parent) : QMainWindow(parent)
connectMenu->addAction(actHost[18]);
connect(actHost[18], SIGNAL(triggered()), this, SLOT(Connect()));
+
for (i = 0; i < MAXHOSTS; i++)
{
- actHost[i] = new QAction(Host[i], this);
+ if (SessName[i][0])
+ {
+ char Lable[256];
+ sprintf(Lable, "%s(%s)", Host[i], SessName[i]);
+ actHost[i] = new QAction(Lable, this);
+ }
+ else
+ actHost[i] = new QAction(Host[i], this);
+
actHost[i]->setFont(*menufont);
connectMenu->addAction(actHost[i]);
connect(actHost[i], SIGNAL(triggered()), this, SLOT(Connect()));
@@ -1233,7 +1253,16 @@ QtTermTCP::QtTermTCP(QWidget *parent) : QMainWindow(parent)
for (i = 0; i < MAXHOSTS; i++)
{
if (Host[i][0])
- actSetup[i] = new QAction(Host[i], this);
+ {
+ char Label[256];
+
+ if (SessName[i][0])
+ sprintf(Label, "%s(%s)", Host[i], SessName[i]);
+ else
+ strcpy(Label, Host[i]);
+
+ actSetup[i] = new QAction(Label, this);
+ }
else
actSetup[i] = new QAction("New Host", this);
@@ -3108,6 +3137,7 @@ void GetSettings()
VARAHF = settings->value("VARAHF", 1).toInt();
VARAFM = settings->value("VARAFM", 0).toInt();
VARASAT = settings->value("VARASAT", 0).toInt();
+ strcpy(VARAInit, settings->value("VARAInit", "").toString().toUtf8());
strcpy(PTTPort, settings->value("PTT", "None").toString().toUtf8());
PTTMode = settings->value("PTTMode", 19200).toInt();
@@ -3290,6 +3320,7 @@ extern "C" void SaveSettings()
settings->setValue("VARATermCall", VARATermCall);
settings->setValue("VARAHost", VARAHost);
settings->setValue("VARAPort", VARAPortNum);
+ settings->setValue("VARAInit", VARAInit);
settings->setValue("VARAPath", VARAPath);
settings->setValue("VARAHostHF", VARAHostHF);
settings->setValue("VARAPortHF", VARAPortHF);
@@ -3763,6 +3794,7 @@ void QtTermTCP::deviceaccept()
VARAPortNum = Q.toInt();
strcpy(VARAHost, Dev->Host->text().toUtf8().toUpper());
strcpy(VARAPath, Dev->Path->text().toUtf8());
+ strcpy(VARAInit, Dev->InitCommands->text().toUtf8());
VARA500 = Dev->VARA500->isChecked();
VARA2300 = Dev->VARA2300->isChecked();
@@ -4087,12 +4119,26 @@ void QtTermTCP::onSocketStateChanged(QAbstractSocket::SocketState socketState)
if (Sess->SessionType == Mon) // Mon Only
sprintf(Title, "Monitor Session Connected to %s", Host[Sess->CurrentHost]);
else
- sprintf(Title, "Connected to %s", Host[Sess->CurrentHost]);
+ {
+ char Label[256];
+
+ if (SessName[Sess->CurrentHost][0])
+ sprintf(Label, "%s(%s)", Host[Sess->CurrentHost], SessName[Sess->CurrentHost]);
+ else
+ strcpy(Label, Host[Sess->CurrentHost]);
+
+ sprintf(Title, "Connected to %s", Label);
+ }
if (TermMode == MDI)
Sess->setWindowTitle(Title);
else if (TermMode == Tabbed)
- tabWidget->setTabText(tabWidget->currentIndex(), Host[Sess->CurrentHost]);
+ {
+ if (SessName[Sess->CurrentHost][0])
+ tabWidget->setTabText(tabWidget->currentIndex(), SessName[Sess->CurrentHost]);
+ else
+ tabWidget->setTabText(tabWidget->currentIndex(), Host[Sess->CurrentHost]);
+ }
else if (TermMode == Single)
this->setWindowTitle(Title);
}
@@ -4983,7 +5029,7 @@ void QtTermTCP::onVARADataSocketStateChanged(QAbstractSocket::SocketState socket
}
else if (socketState == QAbstractSocket::ConnectedState)
{
- char MyCall[32];
+ char VARACommand[256];
VARAConnected = 1;
VARAConnecting = 0;
@@ -4992,8 +5038,8 @@ void QtTermTCP::onVARADataSocketStateChanged(QAbstractSocket::SocketState socket
actHost[17]->setVisible(1); // Enable VARA Connect Line
- sprintf(MyCall, "MYCALL %s\r", VARATermCall);
- VARASock->write(MyCall);
+ sprintf(VARACommand, "MYCALL %s\r", VARATermCall);
+ VARASock->write(VARACommand);
if (VARA500)
VARASock->write("BW500\r");
@@ -5004,6 +5050,23 @@ void QtTermTCP::onVARADataSocketStateChanged(QAbstractSocket::SocketState socket
VARASock->write("COMPRESSION FILES\r");
+ if (VARAInit[0])
+ {
+ char Copy[512];
+ char * param, *context;
+
+ strcpy(Copy, VARAInit);
+
+ param = strtok_s(Copy, ",", &context);
+
+ while (param && param[0])
+ {
+ sprintf(VARACommand, "%s\r", param);
+ VARASock->write(VARACommand);
+ param = strtok_s(nullptr, ",", &context);
+ }
+ }
+
if (listenEnable)
VARASock->write("LISTEN ON\r");
}
@@ -5295,6 +5358,7 @@ void QtTermTCP::SetVARAParams()
Dev->Host->setText(VARAHost);
Dev->Port->setText(QString::number(VARAPortNum));
Dev->Path->setText(VARAPath);
+ Dev->InitCommands->setText(VARAInit);
}
void QtTermTCP::PTTPortChanged(int Selected)
@@ -6539,7 +6603,7 @@ void DecodeTeleText(Ui_ListenSession * Sess, char * page)
switch (echar)
{
case '@':
-// fg = Qt::black;
+ fg = Qt::black;
concealed = false; // Side effect of colour. It cancels a conceal.
graphicsMode = false;
// hold = false;
@@ -6895,10 +6959,41 @@ void DecodeTeleText(Ui_ListenSession * Sess, char * page)
s[2] = 0x88;
}
+// if (doubleHeight)
+ // p.drawText(col * 15, line * 19 + 25, s);
+ // else
+ // p.drawText(col * 15, line * 19 + 15, s);
+
+ // if double height draw normally then copy pixels each row of pixels to two scanlines (starting at the bottom)
+
if (doubleHeight)
- p.drawText(col * 15, line * 19 + 25, s);
- else
- p.drawText(col * 15, line * 19 + 15, s);
+ {
+ int inscanline = line * 19 + 18;
+ int outscanline = line * 19 + 35;
+ unsigned char * inptr = Sess->TTBitmap->scanLine(inscanline);
+ unsigned char * outptr = Sess->TTBitmap->scanLine(outscanline);
+ int linelen = Sess->TTBitmap->bytesPerLine();
+ int charlen = linelen / 40; // bytes per char position
+
+ p.drawText(col * 15, line * 19 + 16, s);
+
+ inptr += col * charlen;
+ outptr += col * charlen;
+
+ for (int i = 0; i < 18; i++)
+ {
+ memcpy(outptr, inptr, charlen);
+ outptr -= linelen;
+ memcpy(outptr, inptr, charlen);
+
+ inptr -= linelen;
+ outptr -= linelen;
+
+ }
+ }
+ else
+ p.drawText(col * 15, line * 19 + 15, s);
+
}
}
}
diff --git a/QtTermTCP.h b/QtTermTCP.h
index 82270cb..0ec6b4d 100644
--- a/QtTermTCP.h
+++ b/QtTermTCP.h
@@ -29,7 +29,8 @@
#include
#include
-
+#define MAXHOSTS 16
+#define MAXPORTS 32
QT_BEGIN_NAMESPACE
class QComboBox;
diff --git a/QtTermTCP.ini b/QtTermTCP.ini
new file mode 100644
index 0000000..b6675f7
--- /dev/null
+++ b/QtTermTCP.ini
@@ -0,0 +1,121 @@
+[General]
+HostParams0=192.168.1.44|8011|g8bpq|password|5 1 1 0 1 0 0 1\r|Pogo4
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xfc\0\0\0\x33\0\0\x4\b\0\0\x2\xea\0\0\0\xfc\0\0\0\x33\0\0\x4\b\0\0\x2\xea\0\0\0\0\0\0\0\0\x5\0\0\0\0\xfc\0\0\0\x33\0\0\x4\b\0\0\x2\xea)
+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\x8a\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|john|password|1 1 1 0 1 0 0 1\r|
+HostParams3=|0||||
+HostParams4=|0||||
+HostParams5=|0||||
+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=0
+listenCText=
+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=1
+AGWMonEnable=1
+AGWTermCall=GM8BPQ
+AGWBeaconDest=
+AGWBeaconPath=
+AGWBeaconInterval=0
+AGWBeaconPorts=
+AGWBeaconText=
+AGWHost=127.0.0.1
+AGWPort=8888
+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=
diff --git a/QtTermTCP.pro.user b/QtTermTCP.pro.user
new file mode 100644
index 0000000..4e70805
--- /dev/null
+++ b/QtTermTCP.pro.user
@@ -0,0 +1,357 @@
+
+
+
+
+
+ EnvironmentId
+ {49a2cf38-2251-47e3-97df-4ecaa9d41931}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ -fno-delayed-template-parsing
+
+ true
+ Builtin.Questionable
+
+ true
+ Builtin.DefaultTidyAndClazy
+ 3
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop Qt 5.14.2 MSVC2015 64bit
+ Desktop Qt 5.14.2 MSVC2015 64bit
+ qt.qt5.5142.win64_msvc2015_64_kit
+ 0
+ 0
+ 0
+
+ true
+ 0
+ C:\Users\John\OneDrive\Dev\Source\QT\build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Debug
+ C:/Users/John/OneDrive/Dev/Source/QT/build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ false
+
+
+ false
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ true
+ clean
+
+ false
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Debug
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 2
+ 2
+
+
+ true
+ 2
+ C:\Users\John\OneDrive\Dev\Source\QT\build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Release
+ C:/Users/John/OneDrive/Dev/Source/QT/build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ false
+
+
+ false
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ true
+ clean
+
+ false
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Release
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 2
+
+
+ true
+ 0
+ C:\Users\John\OneDrive\Dev\Source\QT\build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Profile
+ C:/Users/John/OneDrive/Dev/Source/QT/build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ false
+
+
+ false
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ true
+ clean
+
+ false
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+
+ Profile
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Deploy
+ Deploy
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+ 2
+
+ Qt4ProjectManager.Qt4RunConfiguration:C:/Users/John/OneDrive/Dev/Source/QT/QtTermTCP/QtTermTCP.pro
+ C:/Users/John/OneDrive/Dev/Source/QT/QtTermTCP/QtTermTCP.pro
+
+ false
+
+ false
+ true
+ true
+ false
+ false
+ true
+
+ C:/Users/John/OneDrive/Dev/Source/QT/build-QtTermTCP-Desktop_Qt_5_14_2_MSVC2015_64bit-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 1
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/QtTermTCP.vcxproj b/QtTermTCP.vcxproj
index f62e99a..e47863b 100644
--- a/QtTermTCP.vcxproj
+++ b/QtTermTCP.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ x64
+
Release
Win32
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ x64
+
{14F3B24E-473C-324E-A99D-3B679FCF5F67}
@@ -28,6 +36,15 @@
release\
QtTermTCP
+
+ v141
+ release\
+ false
+ NotSet
+ Application
+ release\
+ QtTermTCP
+
v141
debug\
@@ -37,6 +54,15 @@
debug\
QtTermTCP
+
+ v141
+ debug\
+ false
+ NotSet
+ Application
+ debug\
+ QtTermTCP
+
@@ -45,9 +71,15 @@
+
+
+
+
+
+
@@ -59,6 +91,13 @@
true
true
+
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)Intermed\$(Platform)\$(Configuration)\
+ QtTermTCP
+ true
+ true
+
$(SolutionDir)$(Platform)\$(Configuration)\
$(SolutionDir)Intermed\$(Platform)\$(Configuration)\
@@ -66,12 +105,27 @@
true
false
+
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(SolutionDir)Intermed\$(Platform)\$(Configuration)\
+ QtTermTCP
+ true
+ false
+
- msvc2017 5.14
+ 5.14.2
+ core;network;gui;widgets;serialport
+
+
+ 5.14.2_msvc2017
core;network;gui;widgets;serialport
- msvc2017 5.14
+ 5.14.2
+ core;network;gui;widgets;serialport
+
+
+ 5.14.2_msvc2017_64
core;network;gui;widgets;serialport
@@ -141,6 +195,70 @@
ui_%(Filename).h
+
+
+ GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;release;/include;%(AdditionalIncludeDirectories)
+ -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)
+ $(IntDir)
+ false
+ None
+ 4577;4467;%(DisableSpecificWarnings)
+ Sync
+ $(IntDir)
+ MaxSpeed
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QT_DISABLE_DEPRECATED_BEFORE=0x050000;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)
+ false
+
+
+ MultiThreadedDLL
+ true
+ true
+ Level3
+ true
+
+
+ shell32.lib;setupapi.lib;%(AdditionalDependencies)
+ C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)
+ -no-pie "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)
+ true
+ false
+ true
+ false
+ true
+ $(OutDir)\QtTermTCP.exe
+ true
+ Windows
+ true
+
+
+ Unsigned
+ None
+ 0
+
+
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QT_DISABLE_DEPRECATED_BEFORE=0x050000;NDEBUG;QT_NO_DEBUG;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)
+
+
+ msvc
+ ./$(Configuration)/moc_predefs.h
+ Moc'ing %(Identity)...
+ output
+ $(IntDir)
+ moc_%(Filename).cpp
+
+
+ QtTermTCP
+ default
+ Rcc'ing %(Identity)...
+ $(IntDir)
+ qrc_%(Filename).cpp
+
+
+ Uic'ing %(Identity)...
+ $(IntDir)
+ ui_%(Filename).h
+
+
GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;debug;/include;%(AdditionalIncludeDirectories)
@@ -202,11 +320,73 @@
ui_%(Filename).h
+
+
+ GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;debug;/include;%(AdditionalIncludeDirectories)
+ -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)
+ $(IntDir)
+ false
+ ProgramDatabase
+ 4577;4467;%(DisableSpecificWarnings)
+ Sync
+ $(intdir)
+ Disabled
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QT_DISABLE_DEPRECATED_BEFORE=0x050000;%(PreprocessorDefinitions)
+ false
+ MultiThreadedDebugDLL
+ true
+ true
+ Level3
+ true
+
+
+ shell32.lib;setupapi.lib;%(AdditionalDependencies)
+ C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)
+ -no-pie "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)
+ true
+ true
+ true
+ $(OutDir)\QtTermTCP.exe
+ true
+ Windows
+ true
+ false
+
+
+ Unsigned
+ None
+ 0
+
+
+ _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QT_DISABLE_DEPRECATED_BEFORE=0x050000;QT_WIDGETS_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)
+
+
+ msvc
+ ./$(Configuration)/moc_predefs.h
+ Moc'ing %(Identity)...
+ output
+ $(IntDir)
+ moc_%(Filename).cpp
+
+
+ QtTermTCP
+ default
+ Rcc'ing %(Identity)...
+ $(IntDir)
+ qrc_%(Filename).cpp
+
+
+ Uic'ing %(Identity)...
+ $(IntDir)
+ ui_%(Filename).h
+
+
EditAndContinue
+ ProgramDatabase
@@ -226,18 +406,28 @@
Document
true
+ true
$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)
+ $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)
cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >debug\moc_predefs.h
+ cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >debug\moc_predefs.h
Generate moc_predefs.h
+ Generate moc_predefs.h
debug\moc_predefs.h;%(Outputs)
+ debug\moc_predefs.h;%(Outputs)
Document
$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)
+ $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)
cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >release\moc_predefs.h
+ cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >release\moc_predefs.h
Generate moc_predefs.h
+ Generate moc_predefs.h
release\moc_predefs.h;%(Outputs)
+ release\moc_predefs.h;%(Outputs)
true
+ true
diff --git a/QtTermTCP.vcxproj.user b/QtTermTCP.vcxproj.user
index 1ec8733..a562388 100644
--- a/QtTermTCP.vcxproj.user
+++ b/QtTermTCP.vcxproj.user
@@ -8,9 +8,15 @@
2022-05-19T07:28:58.9302359Z
- 2022-11-21T13:52:08.2843113Z
+ 2023-04-12T13:14:53.1644359Z
+
+
+ 2023-02-08T10:47:28.1396474Z
- 2022-11-20T17:39:52.6268704Z
+ 2023-03-06T08:27:08.3742630Z
+
+
+ 2023-02-08T10:47:27.7430420Z
\ No newline at end of file
diff --git a/TabDialog.cpp b/TabDialog.cpp
index 7bd6410..2e2d665 100644
--- a/TabDialog.cpp
+++ b/TabDialog.cpp
@@ -41,6 +41,7 @@ QLineEdit *hostEdit;
QLineEdit *portEdit;
QLineEdit *userEdit;
QLineEdit *passEdit;
+QLineEdit *SNameEdit;
extern QAction *actHost[17];
extern QAction *actSetup[16];
@@ -53,6 +54,8 @@ extern char Host[MAXHOSTS + 1][100];
extern int Port[MAXHOSTS + 1];
extern char UserName[MAXHOSTS + 1][80];
extern char Password[MAXHOSTS + 1][80];
+extern char SessName[MAXHOSTS + 1][80];
+
extern char MYCALL[32];
QLineEdit *TermCall;
@@ -734,6 +737,9 @@ TabDialog::TabDialog(QWidget *parent) : QDialog(parent)
QLabel *passLabel = new QLabel(tr("Password:"));
passEdit = new QLineEdit(Password[ConfigHost]);
+ QLabel *SNameLabel = new QLabel(tr("Session Name"));
+ SNameEdit = new QLineEdit(SessName[ConfigHost]);
+
layout->addWidget(hostLabel);
layout->addWidget(hostEdit);
layout->addWidget(portLabel);
@@ -742,6 +748,8 @@ TabDialog::TabDialog(QWidget *parent) : QDialog(parent)
layout->addWidget(userEdit);
layout->addWidget(passLabel);
layout->addWidget(passEdit);
+ layout->addWidget(SNameLabel);
+ layout->addWidget(SNameEdit);
layout->addStretch(1);
layout->addWidget(buttonBox);
@@ -838,12 +846,23 @@ void TabDialog::myaccept()
ptr = qb.data();
strcpy(Password[ConfigHost], ptr);
- actHost[ConfigHost]->setText(Host[ConfigHost]);
- actSetup[ConfigHost]->setText(Host[ConfigHost]);
+ val = SNameEdit->text();
+ qb = val.toLatin1();
+ ptr = qb.data();
+ strcpy(SessName[ConfigHost], ptr);
+
+ char Label[256];
+
+ if (ptr[0])
+ sprintf(Label, "%s(%s)", Host[ConfigHost], SessName[ConfigHost]);
+ else
+ strcpy(Label, Host[ConfigHost]);
+
+ actHost[ConfigHost]->setText(Label);
+ actSetup[ConfigHost]->setText(Label);
SaveSettings();
-
TabDialog::accept();
}
diff --git a/TeleText.ui b/TeleText.ui
index 54fe94e..f3b5797 100644
--- a/TeleText.ui
+++ b/TeleText.ui
@@ -1,106 +1,106 @@
-
-
- TeleTextDialog
-
-
-
- 0
- 0
- 665
- 551
-
-
-
- Dialog
-
-
-
-
- 224
- 516
- 153
- 31
-
-
-
-
- 6
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
- -
-
-
- OK
-
-
-
- -
-
-
- Cancel
-
-
-
-
-
-
-
-
- 28
- 20
- 600
- 475
-
-
-
- TextLabel
-
-
-
-
-
-
- okButton
- clicked()
- TeleTextDialog
- accept()
-
-
- 278
- 253
-
-
- 96
- 254
-
-
-
-
- cancelButton
- clicked()
- TeleTextDialog
- reject()
-
-
- 369
- 253
-
-
- 179
- 282
-
-
-
-
-
+
+
+ TeleTextDialog
+
+
+
+ 0
+ 0
+ 665
+ 551
+
+
+
+ Dialog
+
+
+
+
+ 224
+ 516
+ 153
+ 31
+
+
+
+
+ 6
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+ OK
+
+
+
+ -
+
+
+ Cancel
+
+
+
+
+
+
+
+
+ 28
+ 20
+ 600
+ 475
+
+
+
+ TextLabel
+
+
+
+
+
+
+ okButton
+ clicked()
+ TeleTextDialog
+ accept()
+
+
+ 278
+ 253
+
+
+ 96
+ 254
+
+
+
+
+ cancelButton
+ clicked()
+ TeleTextDialog
+ reject()
+
+
+ 369
+ 253
+
+
+ 179
+ 282
+
+
+
+
+
diff --git a/TermTCPCommon.cpp b/TermTCPCommon.cpp
index 99816a9..78464a0 100644
--- a/TermTCPCommon.cpp
+++ b/TermTCPCommon.cpp
@@ -349,6 +349,7 @@ MonLoop:
return;
}
+ MonLen = len; // in case no fe
Sess->MonData = 1;
diff --git a/VARAConfig.ui b/VARAConfig.ui
index 7992b6a..c4baacd 100644
--- a/VARAConfig.ui
+++ b/VARAConfig.ui
@@ -7,7 +7,7 @@
0
0
571
- 517
+ 589
@@ -17,7 +17,7 @@
170
- 460
+ 490
211
33
@@ -59,8 +59,8 @@
10
120
- 537
- 123
+ 551
+ 161
@@ -79,8 +79,8 @@
- 130
- 54
+ 400
+ 20
47
22
@@ -90,7 +90,7 @@
130
- 90
+ 57
391
22
@@ -112,8 +112,8 @@
- 16
- 53
+ 286
+ 19
47
22
@@ -126,7 +126,7 @@
16
- 89
+ 56
47
22
@@ -135,12 +135,54 @@
Path
+
+
+
+ 130
+ 91
+ 391
+ 22
+
+
+
+
+
+
+ 16
+ 90
+ 101
+ 22
+
+
+
+ Init Commands
+
+
+
+
+
+ 80
+ 120
+ 371
+ 31
+
+
+
+ You can specify more than one command, but the separator must be just a comma with no spaces
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
8
- 280
+ 300
541
181
@@ -558,9 +600,9 @@
-
-
+
+
diff --git a/ax25_l2.c b/ax25_l2.c
index 582592a..b9003c2 100644
--- a/ax25_l2.c
+++ b/ax25_l2.c
@@ -1497,7 +1497,6 @@ void analiz_frame(int snd_ch, string * frame, void * socket, boolean fecflag)
if (!is_correct_path(path, pid))
{
// Duff path - if Non-AX25 filter active log and discard
-
}
monitor_frame(snd_ch, frame, "", 0, excluded); // Monitor
@@ -1512,7 +1511,7 @@ void analiz_frame(int snd_ch, string * frame, void * socket, boolean fecflag)
return; // Don't process if still unused digis
}
- // Clear reapeated bits from digi path
+ // Clear repeated bits from digi path
ptr = &path[13];
@@ -1560,7 +1559,7 @@ void analiz_frame(int snd_ch, string * frame, void * socket, boolean fecflag)
if (f_id != U_SABM) // Not SABM
{
- // // send DM if P set
+ // send DM if P set
if (cr == SET_C)
{
diff --git a/debug/moc_predefs.h b/debug/moc_predefs.h
index 6eb1f1e..8247e15 100644
--- a/debug/moc_predefs.h
+++ b/debug/moc_predefs.h
@@ -1,12 +1,12 @@
-#define _MSC_EXTENSIONS
-#define _INTEGRAL_MAX_BITS 64
-#define _MSC_VER 1916
-#define _MSC_FULL_VER 191627045
-#define _MSC_BUILD 0
-#define _WIN32
-#define _M_IX86 600
-#define _M_IX86_FP 2
-#define _CPPRTTI
-#define _DEBUG
-#define _MT
-#define _DLL
+#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
diff --git a/makeit b/makeit
index f008177..bdf2910 100644
--- a/makeit
+++ b/makeit
@@ -2,8 +2,10 @@ 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 ./
qmake
+
make -j4
cp QtTermTCP /mnt/Source
-
diff --git a/release/moc_predefs.h b/release/moc_predefs.h
index c985d0f..4c9c0c7 100644
--- a/release/moc_predefs.h
+++ b/release/moc_predefs.h
@@ -1,11 +1,11 @@
-#define _MSC_EXTENSIONS
-#define _INTEGRAL_MAX_BITS 64
-#define _MSC_VER 1916
-#define _MSC_FULL_VER 191627045
-#define _MSC_BUILD 0
-#define _WIN32
-#define _M_IX86 600
-#define _M_IX86_FP 2
-#define _CPPRTTI
-#define _MT
-#define _DLL
+#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