diff --git a/QtTermTCP-DESKTOP-MHE5LO8.ini b/QtTermTCP-DESKTOP-MHE5LO8.ini new file mode 100644 index 0000000..6e94632 --- /dev/null +++ b/QtTermTCP-DESKTOP-MHE5LO8.ini @@ -0,0 +1,121 @@ +[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\x2\x32\0\0\0\xa8\0\0\x5>\0\0\x3\x61\0\0\x2\x32\0\0\0\xa8\0\0\x5>\0\0\x3\x61\0\0\0\0\0\0\0\0\a\x80\0\0\x2\x32\0\0\0\xa8\0\0\x5>\0\0\x3\x61) +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\xa4\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=127.0.0.1|8121|john|password|3 1 1 0 1 0 0 1\r|CB +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=6 +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= diff --git a/QtTermTCP.cpp b/QtTermTCP.cpp index b029b7e..456a835 100644 --- a/QtTermTCP.cpp +++ b/QtTermTCP.cpp @@ -1,6 +1,6 @@ // Qt Version of BPQTermTCP -#define VersionString "0.0.0.66" +#define VersionString "0.0.0.67" // .12 Save font weight // .13 Display incomplete lines (ie without CR) @@ -72,6 +72,8 @@ // .64 Add Clear Screen command to context menu Apr 2023 // .65 Fixes for 63 port version of BPQ May 2023 // .66 Colour Tab of incoming calls June 2023 +// .67 Add config Yapp RX Size dialog July 2023 +// Fix 63 port montoring #define _CRT_SECURE_NO_WARNINGS @@ -215,6 +217,7 @@ extern int AlertBeep; extern int AlertFreq; extern int AlertDuration; extern int ConnectBeep; +extern int MaxRXSize; extern int AutoTeletext; @@ -397,6 +400,7 @@ QAction *actColours; QAction *actmyFonts; QAction *YAPPSend; QAction *YAPPSetRX; +QAction *YAPPSetSize; QAction *singleAct; QAction *singleAct2; QAction *MDIAct; @@ -458,6 +462,8 @@ void closeSerialPort(); extern void initUTF8(); int checkUTF8(unsigned char * Msg, int Len, unsigned char * out); +QDialog * deviceUI; + #include #include #include @@ -1343,7 +1349,7 @@ QtTermTCP::QtTermTCP(QWidget *parent) : QMainWindow(parent) KISSAction->setFont(*menufont); - actChatMode = setupMenuLine(setupMenu, (char *)"Chat Terminal Mode", this, ChatMode); + actChatMode = setupMenuLine(setupMenu, (char *)"Chat Terminal Mode (Send Keepalives)", this, ChatMode); actAutoTeletext = setupMenuLine(setupMenu, (char *)"Auto switch to Teletext", this, AutoTeletext); actBells = setupMenuLine(setupMenu, (char *)"Enable Bells", this, Bells); actStripLF = setupMenuLine(setupMenu, (char *)"Strip Line Feeds", this, StripLF); @@ -1408,15 +1414,19 @@ QtTermTCP::QtTermTCP(QWidget *parent) : QMainWindow(parent) YAPPSend = new QAction("Send File", this); YAPPSetRX = new QAction("Set Receive Directory", this); + YAPPSetSize = new QAction("Set Max Size", this); YAPPSend->setFont(*menufont); YAPPSetRX->setFont(*menufont); + YAPPSetSize->setFont(*menufont); YAPPMenu->addAction(YAPPSend); YAPPMenu->addAction(YAPPSetRX); + YAPPMenu->addAction(YAPPSetSize); YAPPSend->setEnabled(false); connect(YAPPSend, SIGNAL(triggered()), this, SLOT(doYAPPSend())); connect(YAPPSetRX, SIGNAL(triggered()), this, SLOT(doYAPPSetRX())); + connect(YAPPSetSize, SIGNAL(triggered()), this, SLOT(doYAPPSetSize())); but3 = new QToolButton(); @@ -1852,8 +1862,8 @@ void QtTermTCP::tabSelected(int Current) if (Sess->PortMonString[0]) { - char * ptr = (char *)malloc(1024); - memcpy(ptr, Sess->PortMonString, 1024); + char * ptr = (char *)malloc(2048); + memcpy(ptr, Sess->PortMonString, 2048); int NumberofPorts = atoi((char *)&ptr[2]); char *p, *Context; @@ -1863,7 +1873,7 @@ void QtTermTCP::tabSelected(int Current) // Remove old Monitor menu - for (int i = 0; i < 32; i++) + for (int i = 0; i < 64; i++) { SetPortMonLine(i, (char *)"", 0, 0); // Set all hidden } @@ -1881,9 +1891,9 @@ void QtTermTCP::tabSelected(int Current) sprintf(msg, "Port %s", p); if (m == 0) - m = 33; + m = 64; - if (Sess->portmask & (1ll << (m - 1))) + if (Sess->portmask & ((uint64_t)1 << (m - 1))) SetPortMonLine(portnum, msg, 1, 1); else SetPortMonLine(portnum, msg, 1, 0); @@ -2017,7 +2027,7 @@ void QtTermTCP::Connect() // Remove old Monitor menu - for (i = 0; i < 32; i++) + for (i = 0; i < 64; i++) { SetPortMonLine(i, (char *)"", 0, 0); // Set all hidden } @@ -2182,6 +2192,51 @@ void QtTermTCP::doYAPPSetRX() } } +Ui_SizeDialog * YappSize; + +void QtTermTCP::doYAPPSetSize() +{ + // This runs the VARA Configuration dialog + + char valChar[80]; + + YappSize = new(Ui_SizeDialog); + + QDialog UI; + + YappSize->setupUi(&UI); + + UI.setFont(*menufont); + deviceUI = &UI; + + sprintf(valChar, "%d", MaxRXSize); + + YappSize->maxSize->setText(valChar); + + QObject::connect(YappSize->okButton, SIGNAL(clicked()), this, SLOT(sizeaccept())); + QObject::connect(YappSize->cancelButton, SIGNAL(clicked()), this, SLOT(sizereject())); + + UI.exec(); +} + +void QtTermTCP::sizeaccept() +{ + QVariant Q; + Q = YappSize->maxSize->text(); + + MaxRXSize = Q.toInt(); + SaveSettings(); + delete(YappSize); +} + + +void QtTermTCP::sizereject() +{ + delete(YappSize); + deviceUI->reject(); +} + + void QtTermTCP::menuChecked() { QAction * Act = static_cast(QObject::sender()); @@ -2281,12 +2336,12 @@ void QtTermTCP::menuChecked() { if (Act == MonPort[i]) { - unsigned long long mmask; + uint64_t mmask; if (i == 0) // BBS Mon - use bit 63 (Port 64) - mmask = 1ll << 63; + mmask = (uint64_t)1 << 63; else - mmask = 1ll << (i - 1); + mmask = (uint64_t)1 << (i - 1); if (state) ActiveSession->portmask |= mmask; @@ -3154,6 +3209,7 @@ void GetSettings() ConnectBeep = settings->value("ConnectBeep", 1).toInt(); SavedHost = settings->value("CurrentHost", 0).toInt(); strcpy(YAPPPath, settings->value("YAPPPath", "").toString().toUtf8()); + MaxRXSize = settings->value("MaxRXSize", 100000).toInt(); listenPort = settings->value("listenPort", 8015).toInt(); listenEnable = settings->value("listenEnable", false).toBool(); @@ -3316,6 +3372,8 @@ extern "C" void SaveSettings() settings->setValue("CurrentHost", SavedHost); settings->setValue("YAPPPath", YAPPPath); + settings->setValue("MaxRXSize", MaxRXSize); + settings->setValue("listenPort", listenPort); settings->setValue("listenEnable", listenEnable); settings->setValue("listenCText", listenCText); @@ -3580,8 +3638,6 @@ Ui_Dialog * Dev; static Ui_KISSDialog * KISS; static Ui_ColourDialog * COLOURS; -QDialog * deviceUI; - char NewPTTPort[80]; @@ -4441,8 +4497,8 @@ void QtTermTCP::xon_mdiArea_changed() if (Sess->PortMonString[0]) { - char * ptr = (char *)malloc(1024); - memcpy(ptr, Sess->PortMonString, 1024); + char * ptr = (char *)malloc(2048); + memcpy(ptr, Sess->PortMonString, 2048); int NumberofPorts = atoi((char *)&ptr[2]); char *p, *Context; @@ -4452,7 +4508,7 @@ void QtTermTCP::xon_mdiArea_changed() // Remove old Monitor menu - for (int i = 0; i < 32; i++) + for (int i = 0; i < 64; i++) { SetPortMonLine(i, (char *)"", 0, 0); // Set all hidden } @@ -4470,7 +4526,7 @@ void QtTermTCP::xon_mdiArea_changed() sprintf(msg, "Port %s", p); if (portnum == 0) - portnum = 33; + portnum = 64; if (Sess->portmask & (1ll << (portnum - 1))) SetPortMonLine(portnum, msg, 1, 1); diff --git a/QtTermTCP.h b/QtTermTCP.h index 89e1524..c154c28 100644 --- a/QtTermTCP.h +++ b/QtTermTCP.h @@ -3,7 +3,7 @@ #include #include "ui_QtTermTCP.h" //#include "ui_AGWParams.h" -//#include "ui_AGWConnect.h" +#include "ui_YAPPRxSize.h" #include "ui_ColourConfig.h" #include "ui_VARAConfig.h" #include "ui_KISSConfig.h" @@ -83,8 +83,8 @@ 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 mtxparam; int mcomparam; int monUI; @@ -136,6 +136,9 @@ private slots: void Disconnect(); void doYAPPSend(); void doYAPPSetRX(); + void doYAPPSetSize(); + void sizeaccept(); + void sizereject(); void menuChecked(); void Connect(); void displayError(QAbstractSocket::SocketError socketError); diff --git a/QtTermTCP.ini b/QtTermTCP.ini index 9d58bbb..0a3358a 100644 --- a/QtTermTCP.ini +++ b/QtTermTCP.ini @@ -1,13 +1,13 @@ [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) +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\x83\0\0\0\x1f\0\0\x4\x17\0\0\x2\xd6\0\0\0\x83\0\0\0\x1f\0\0\x4\x17\0\0\x2\xd6\0\0\0\0\0\0\0\0\x5\0\0\0\0\x83\0\0\0\x1f\0\0\x4\x17\0\0\x2\xd6) 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 +windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x3\x95\0\0\x2\xa2\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|c000000100000000 1 1 0 1 0 0 1\r| +HostParams3=192.168.1.44|8011|john|password|8000000000000002 1 1 1 1 0 0 1\r|Pogo4 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|||| +HostParams5=192.168.1.14|8011|john|password|c00000010000002e 1 1 0 1 0 0 1\r| +HostParams6=127.0.0.1|8121|john|password|3 1 1 0 1 0 0 1\r|CB HostParams7=|0|||| HostParams8=|0|||| HostParams9=|0|||| @@ -17,14 +17,14 @@ HostParams12=|0|||| HostParams13=|0|||| HostParams14=|0|||| HostParams15=|0|||| -Split=41 +Split=58 ChatMode=1 AutoTeletext=1 Bells=1 StripLF=1 AlertBeep=1 ConnectBeep=1 -CurrentHost=0 +CurrentHost=5 YAPPPath= listenPort=8015 listenEnable=1 @@ -100,6 +100,7 @@ PointSize=10 Weight=50 Sessions="1|1, 17, 40, 205, 625, 990|" VARAInit="P2P SESSION,WINLINK SESSION" +MaxRXSize=100000 [AX25_A] Retries=10 diff --git a/QtTermTCP.pro b/QtTermTCP.pro index da12fb3..8719faf 100644 --- a/QtTermTCP.pro +++ b/QtTermTCP.pro @@ -40,6 +40,7 @@ FORMS += QtTermTCP.ui\ VARAConfig.ui \ KISSConfig.ui \ ColourConfig.ui \ + YAPPRxSize.ui \ AGWConnect.ui RESOURCES += QtTermTCP.qrc diff --git a/QtTermTCP.vcxproj b/QtTermTCP.vcxproj index e47863b..cc0795c 100644 --- a/QtTermTCP.vcxproj +++ b/QtTermTCP.vcxproj @@ -444,6 +444,7 @@ + diff --git a/QtTermTCP.vcxproj.filters b/QtTermTCP.vcxproj.filters index 5347f44..9b27731 100644 --- a/QtTermTCP.vcxproj.filters +++ b/QtTermTCP.vcxproj.filters @@ -116,6 +116,9 @@ Form Files + + Form Files + diff --git a/QtTermTCP.vcxproj.user b/QtTermTCP.vcxproj.user index a562388..235118b 100644 --- a/QtTermTCP.vcxproj.user +++ b/QtTermTCP.vcxproj.user @@ -8,15 +8,15 @@ 2022-05-19T07:28:58.9302359Z - 2023-04-12T13:14:53.1644359Z + 2023-07-16T07:55:42.3394911Z - 2023-02-08T10:47:28.1396474Z + 2023-07-16T07:55:42.4544961Z - 2023-03-06T08:27:08.3742630Z + 2023-07-16T07:55:41.8664763Z - 2023-02-08T10:47:27.7430420Z + 2023-07-16T07:55:42.1214867Z \ No newline at end of file diff --git a/QtTermTCP52.zip b/QtTermTCP52.zip deleted file mode 100644 index e36d5dc..0000000 Binary files a/QtTermTCP52.zip and /dev/null differ diff --git a/TermTCPCommon.cpp b/TermTCPCommon.cpp index 78464a0..920a3ee 100644 --- a/TermTCPCommon.cpp +++ b/TermTCPCommon.cpp @@ -316,13 +316,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 +339,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 +563,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); diff --git a/TeleText.ui b/YAPPRxSize.ui similarity index 71% rename from TeleText.ui rename to YAPPRxSize.ui index f3b5797..597f84a 100644 --- a/TeleText.ui +++ b/YAPPRxSize.ui @@ -1,13 +1,13 @@ - TeleTextDialog - + SizeDialog + 0 0 - 665 - 551 + 243 + 157 @@ -16,10 +16,10 @@ - 224 - 516 - 153 - 31 + 20 + 80 + 181 + 33 @@ -54,17 +54,27 @@ - + - 28 - 20 - 600 - 475 + 20 + 30 + 81 + 20 - TextLabel + Max RX Size + + + + + + 120 + 30 + 61 + 20 + @@ -73,7 +83,7 @@ okButton clicked() - TeleTextDialog + SizeDialog accept() @@ -89,7 +99,7 @@ cancelButton clicked() - TeleTextDialog + SizeDialog reject() diff --git a/debug/moc_predefs.h b/debug/moc_predefs.h new file mode 100644 index 0000000..8247e15 --- /dev/null +++ b/debug/moc_predefs.h @@ -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