6.0.23.36

This commit is contained in:
John Wiseman 2023-01-06 10:06:45 +00:00
parent 90bdcbe130
commit 9a44d00480
7 changed files with 75 additions and 36 deletions

View File

@ -2038,6 +2038,12 @@ static int APRSProcessLine(char * buf)
return TRUE; return TRUE;
} }
if (_stricmp(ptr, "SaveAPRSMsgs") == 0)
{
SaveAPRSMsgs = TRUE;
return TRUE;
}
p_value = strtok(NULL, " \t\n\r"); p_value = strtok(NULL, " \t\n\r");
if (p_value == NULL) if (p_value == NULL)
@ -4641,6 +4647,20 @@ Dll struct APRSMESSAGE * APIENTRY APRSGetMessageBuffer()
{ {
struct APRSMESSAGE * ptr = MessageRecordPool; struct APRSMESSAGE * ptr = MessageRecordPool;
if (ptr == NULL)
{
// try getting oldest
ptr = SMEM->Messages;
if (ptr)
{
SMEM->Messages = ptr->Next;
memset(ptr, 0, sizeof(struct APRSMESSAGE));
}
return ptr;
}
if (ptr) if (ptr)
{ {
MessageRecordPool = ptr->Next; // Unchain MessageRecordPool = ptr->Next; // Unchain

View File

@ -1131,6 +1131,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// Changes to FreeDATA - Don't use deamon and add txlevel and send text commands (31) // Changes to FreeDATA - Don't use deamon and add txlevel and send text commands (31)
// Fix interactive commands in tracker driver (33) // Fix interactive commands in tracker driver (33)
// Fix SESSIONTIMELIMIT processing // Fix SESSIONTIMELIMIT processing
// Add STOPPORT/STARTPORT for UZ7HO driver
// Fix processing of extended QtSM 'g' frame (36)
#define CKernel #define CKernel

1
Cmd.c
View File

@ -3884,7 +3884,6 @@ VOID ATTACHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
return; return;
} }
Message.PORT = 0; Message.PORT = 0;
ret = PORT->PORTTXCHECKCODE(PORT, Message.PORT); ret = PORT->PORTTXCHECKCODE(PORT, Message.PORT);

View File

@ -1558,12 +1558,12 @@ int Rig_CommandEx(struct RIGPORTINFO * PORT, struct RIGINFO * RIG, int Session,
case YAESU: case YAESU:
if (n < 3) if (n == 2) // Just set freq
{ {
strcpy(Command, "Sorry - Invalid Format - should be Port Freq Mode\r"); ModeNo = -1;
return FALSE;
} }
else
{
for (ModeNo = 0; ModeNo < 15; ModeNo++) for (ModeNo = 0; ModeNo < 15; ModeNo++)
{ {
if (_stricmp(YaesuModes[ModeNo], Mode) == 0) if (_stricmp(YaesuModes[ModeNo], Mode) == 0)
@ -1575,6 +1575,7 @@ int Rig_CommandEx(struct RIGPORTINFO * PORT, struct RIGINFO * RIG, int Session,
sprintf(Command, "Sorry -Invalid Mode\r"); sprintf(Command, "Sorry -Invalid Mode\r");
return FALSE; return FALSE;
} }
}
buffptr = GetBuff(); buffptr = GetBuff();
@ -1597,11 +1598,17 @@ int Rig_CommandEx(struct RIGPORTINFO * PORT, struct RIGINFO * RIG, int Session,
// Send Mode then Freq - setting Mode seems to change frequency // Send Mode then Freq - setting Mode seems to change frequency
FreqPtr->Cmd1Len = 0;
if (ModeNo != -1) // Set freq only
{
*(Poll++) = ModeNo; *(Poll++) = ModeNo;
*(Poll++) = 0; *(Poll++) = 0;
*(Poll++) = 0; *(Poll++) = 0;
*(Poll++) = 0; *(Poll++) = 0;
*(Poll++) = 7; // Set Mode *(Poll++) = 7; // Set Mode
FreqPtr->Cmd1Len = 5;
}
*(Poll++) = (FreqString[1] - 48) | ((FreqString[0] - 48) << 4); *(Poll++) = (FreqString[1] - 48) | ((FreqString[0] - 48) << 4);
*(Poll++) = (FreqString[3] - 48) | ((FreqString[2] - 48) << 4); *(Poll++) = (FreqString[3] - 48) | ((FreqString[2] - 48) << 4);
@ -1609,7 +1616,7 @@ int Rig_CommandEx(struct RIGPORTINFO * PORT, struct RIGINFO * RIG, int Session,
*(Poll++) = (FreqString[7] - 48) | ((FreqString[6] - 48) << 4); *(Poll++) = (FreqString[7] - 48) | ((FreqString[6] - 48) << 4);
*(Poll++) = 1; // Set Freq *(Poll++) = 1; // Set Freq
FreqPtr->Cmd1Len = 10; FreqPtr->Cmd1Len += 5;
if (strcmp(PORT->Rigs[0].RigName, "FT847") == 0) if (strcmp(PORT->Rigs[0].RigName, "FT847") == 0)
{ {
@ -2864,6 +2871,18 @@ BOOL RigWriteCommBlock(struct RIGPORTINFO * PORT)
#endif #endif
if (PORT->TXLen != BytesWritten) if (PORT->TXLen != BytesWritten)
{ {
struct RIGINFO * RIG = &PORT->Rigs[PORT->CurrentRig]; // Only one on Yaseu
if (RIG->RIGOK)
{
SetWindowText(RIG->hFREQ, "Port Closed");
SetWindowText(RIG->hMODE, "----------");
strcpy(RIG->WEB_FREQ, "-----------");;
strcpy(RIG->WEB_MODE, "------");
}
RIG->RIGOK = FALSE;
if (PORT->hDevice) if (PORT->hDevice)
CloseCOMPort(PORT->hDevice); CloseCOMPort(PORT->hDevice);
@ -7758,8 +7777,7 @@ VOID HAMLIBThread(struct RIGPORTINFO * PORT)
err = WSAGetLastError(); err = WSAGetLastError();
sprintf(Msg, "Connect Failed for HAMLIB socket - error code = %d Port %d\r\n", sprintf(Msg, "Connect Failed for HAMLIB socket - error code = %d Addr %s\r\n", err, PORT->IOBASE);
err, htons(destaddr->sin_port));
WritetoConsole(Msg); WritetoConsole(Msg);
PORT->Alerted = TRUE; PORT->Alerted = TRUE;
@ -7811,7 +7829,7 @@ VOID HAMLIBThread(struct RIGPORTINFO * PORT)
if (FD_ISSET(PORT->remoteSock, &errorfs)) if (FD_ISSET(PORT->remoteSock, &errorfs))
{ {
Lost: Lost:
sprintf(Msg, "HAMLIB Connection lost for Port %s\r\n", PORT->IOBASE); sprintf(Msg, "HAMLIB Connection lost for Addr %s\r\n", PORT->IOBASE);
WritetoConsole(Msg); WritetoConsole(Msg);
PORT->CONNECTED = FALSE; PORT->CONNECTED = FALSE;
@ -7830,7 +7848,7 @@ Lost:
{ {
} }
} }
sprintf(Msg, "HAMLIB Thread Terminated Port %s\r\n", PORT->IOBASE); sprintf(Msg, "HAMLIB Thread Terminated Addr %s\r\n", PORT->IOBASE);
WritetoConsole(Msg); WritetoConsole(Msg);
} }

View File

@ -2062,15 +2062,6 @@ VOID ProcessAGWPacket(struct TNCINFO * TNC, UCHAR * Message)
RXHeader->DataLength = reverse(RXHeader->DataLength); RXHeader->DataLength = reverse(RXHeader->DataLength);
#endif #endif
if (RXHeader->DataKind == 'x')
return;
if (RXHeader->DataKind == 'R')
return;
if (RXHeader->DataKind == 'g')
return;
switch (RXHeader->DataKind) switch (RXHeader->DataKind)
{ {
case 'D': // Appl Data case 'D': // Appl Data

11
VARA.c
View File

@ -104,6 +104,8 @@ BOOL VARAStopPort(struct PORTCONTROL * PORT)
if (TNC->Streams[0].Attached) if (TNC->Streams[0].Attached)
TNC->Streams[0].ReportDISC = TRUE; TNC->Streams[0].ReportDISC = TRUE;
TNC->Streams[0].Disconnecting = FALSE;
if (TNC->TCPSock) if (TNC->TCPSock)
{ {
shutdown(TNC->TCPSock, SD_BOTH); shutdown(TNC->TCPSock, SD_BOTH);
@ -328,6 +330,7 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
} }
} }
TNC->Streams[0].Disconnecting = FALSE;
switch (fn) switch (fn)
{ {
@ -486,7 +489,6 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
sprintf(Msg, "%d SCANSTOP", TNC->Port); sprintf(Msg, "%d SCANSTOP", TNC->Port);
Rig_Command(-1, Msg); Rig_Command(-1, Msg);
} }
if (TNC->Streams[0].Attached) if (TNC->Streams[0].Attached)
@ -714,6 +716,8 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
TNC->OverrideBusy = FALSE; TNC->OverrideBusy = FALSE;
VARASendCommand(TNC, Connect, TRUE); VARASendCommand(TNC, Connect, TRUE);
TNC->Streams[0].ConnectTime = time(NULL);
memset(TNC->Streams[0].RemoteCall, 0, 10); memset(TNC->Streams[0].RemoteCall, 0, 10);
strcpy(TNC->Streams[0].RemoteCall, &buff->L2DATA[2]); strcpy(TNC->Streams[0].RemoteCall, &buff->L2DATA[2]);
@ -2251,6 +2255,9 @@ VOID VARAProcessReceivedData(struct TNCINFO * TNC)
if (TNC->Streams[0].Attached) if (TNC->Streams[0].Attached)
TNC->Streams[0].ReportDISC = TRUE; TNC->Streams[0].ReportDISC = TRUE;
TNC->Streams[0].Disconnecting = FALSE;
closesocket(TNC->TCPDataSock); closesocket(TNC->TCPDataSock);
TNC->TCPSock = 0; TNC->TCPSock = 0;
@ -2296,6 +2303,8 @@ VOID VARAProcessReceivedControl(struct TNCINFO * TNC)
TNC->CONNECTED = FALSE; TNC->CONNECTED = FALSE;
TNC->Streams[0].ReportDISC = TRUE; TNC->Streams[0].ReportDISC = TRUE;
TNC->Streams[0].Disconnecting = FALSE;
sprintf(TNC->WEB_COMMSSTATE, "Connection to TNC lost"); sprintf(TNC->WEB_COMMSSTATE, "Connection to TNC lost");
MySetWindowText(TNC->xIDC_COMMSSTATE, TNC->WEB_COMMSSTATE); MySetWindowText(TNC->xIDC_COMMSSTATE, TNC->WEB_COMMSSTATE);

View File

@ -10,8 +10,8 @@
#endif #endif
#define KVers 6,0,23,34 #define KVers 6,0,23,36
#define KVerstring "6.0.23.34\0" #define KVerstring "6.0.23.36\0"
#ifdef CKernel #ifdef CKernel