6.0.23.77
This commit is contained in:
parent
75b5bcc9a9
commit
ed81fc5267
|
@ -71,7 +71,6 @@ static RECT Rect;
|
||||||
static char status[8][8] = {"STANDBY", "PHASING", "CHGOVER", "IDLE", "TRAFFIC", "ERROR", "RQ", "XXXX"};
|
static char status[8][8] = {"STANDBY", "PHASING", "CHGOVER", "IDLE", "TRAFFIC", "ERROR", "RQ", "XXXX"};
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
BOOL SetupConnection(int);
|
||||||
BOOL CloseConnection(struct TNCINFO * conn);
|
BOOL CloseConnection(struct TNCINFO * conn);
|
||||||
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
||||||
|
|
17
Bpq32.c
17
Bpq32.c
|
@ -1173,6 +1173,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
|
||||||
// Detect loss of DED application (76)
|
// Detect loss of DED application (76)
|
||||||
// Fix connects to Application Alias with UZ7HO Driver (76)
|
// Fix connects to Application Alias with UZ7HO Driver (76)
|
||||||
// Fix Interlock of ports on same UZ7HO modem. (76)
|
// Fix Interlock of ports on same UZ7HO modem. (76)
|
||||||
|
// Add extended Ports command
|
||||||
|
|
||||||
#define CKernel
|
#define CKernel
|
||||||
|
|
||||||
|
@ -2576,6 +2577,22 @@ BOOL APIENTRY DllMain(HANDLE hInst, DWORD ul_reason_being_called, LPVOID lpReser
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sizeof(struct KISSINFO) > PORTENTRYLEN + 200) // 200 bytes of Hardwaredata
|
||||||
|
{
|
||||||
|
// Catastrophic - Refuse to load
|
||||||
|
|
||||||
|
MessageBox(NULL,"BPQ32 Too much KISS data - Recompile","BPQ32", MB_OK);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sizeof(struct _EXTPORTDATA) > PORTENTRYLEN + 200) // 200 bytes of Hardwaredata
|
||||||
|
{
|
||||||
|
// Catastrophic - Refuse to load
|
||||||
|
|
||||||
|
MessageBox(NULL,"BPQ32 Too much _EXTPORTDATA data - Recompile","BPQ32", MB_OK);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (sizeof(LINKTABLE) != LINK_TABLE_LEN)
|
if (sizeof(LINKTABLE) != LINK_TABLE_LEN)
|
||||||
{
|
{
|
||||||
// Catastrophic - Refuse to load
|
// Catastrophic - Refuse to load
|
||||||
|
|
166
Cmd.c
166
Cmd.c
|
@ -37,6 +37,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
|
||||||
|
|
||||||
#include "CHeaders.h"
|
#include "CHeaders.h"
|
||||||
#include "bpqaprs.h"
|
#include "bpqaprs.h"
|
||||||
|
#include "kiss.h"
|
||||||
|
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
|
@ -1313,19 +1314,182 @@ CMDS60:
|
||||||
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
|
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific MPSK or UZ7HO host
|
||||||
|
|
||||||
VOID CMDP00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD)
|
VOID CMDP00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD)
|
||||||
{
|
{
|
||||||
// Process PORTS Message
|
// Process PORTS Message
|
||||||
|
|
||||||
|
// If extended show state of TNC (Open, Active, etc)
|
||||||
|
|
||||||
struct PORTCONTROL * PORT = PORTTABLE;
|
struct PORTCONTROL * PORT = PORTTABLE;
|
||||||
|
char Extended = CmdTail[0];
|
||||||
|
struct PORTCONTROL * SAVEPORT;
|
||||||
|
|
||||||
Bufferptr = Cmdprintf(Session, Bufferptr, "Ports\r");
|
Bufferptr = Cmdprintf(Session, Bufferptr, "Ports\r");
|
||||||
|
|
||||||
while (PORT)
|
while (PORT)
|
||||||
{
|
{
|
||||||
if (PORT->Hide == 0)
|
char Status[32] = "???????";
|
||||||
|
int Portno = PORT->PORTNUMBER;
|
||||||
|
|
||||||
|
if (PORT->Hide)
|
||||||
|
{
|
||||||
|
PORT = PORT->PORTPOINTER;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Extended != 'E')
|
||||||
|
{
|
||||||
Bufferptr = Cmdprintf(Session, Bufferptr, " %2d %s\r", PORT->PORTNUMBER, PORT->PORTDESCRIPTION);
|
Bufferptr = Cmdprintf(Session, Bufferptr, " %2d %s\r", PORT->PORTNUMBER, PORT->PORTDESCRIPTION);
|
||||||
|
|
||||||
|
PORT = PORT->PORTPOINTER;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try to get port status - may not be possible with some
|
||||||
|
|
||||||
|
if (PORT->PortStopped)
|
||||||
|
{
|
||||||
|
strcpy(Status, "Stopped");
|
||||||
|
Bufferptr = Cmdprintf(Session, Bufferptr, " %2d %-7s %s\r", PORT->PORTNUMBER, Status, PORT->PORTDESCRIPTION);
|
||||||
|
|
||||||
|
PORT = PORT->PORTPOINTER;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PORT->PORTTYPE == 0)
|
||||||
|
{
|
||||||
|
struct KISSINFO * KISS = (struct KISSINFO *)PORT;
|
||||||
|
NPASYINFO Port;
|
||||||
|
|
||||||
|
SAVEPORT = PORT;
|
||||||
|
|
||||||
|
if (KISS->FIRSTPORT && KISS->FIRSTPORT != KISS)
|
||||||
|
{
|
||||||
|
// Not first port on device
|
||||||
|
|
||||||
|
PORT = (struct PORTCONTROL *)KISS->FIRSTPORT;
|
||||||
|
Port = KISSInfo[Portno];
|
||||||
|
}
|
||||||
|
|
||||||
|
Port = KISSInfo[PORT->PORTNUMBER];
|
||||||
|
|
||||||
|
if (Port)
|
||||||
|
{
|
||||||
|
// KISS like - see if connected
|
||||||
|
|
||||||
|
if (PORT->PORTIPADDR.s_addr || PORT->KISSSLAVE)
|
||||||
|
{
|
||||||
|
// KISS over UDP or TCP
|
||||||
|
|
||||||
|
if (PORT->KISSTCP)
|
||||||
|
{
|
||||||
|
if (Port->Connected)
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
else
|
||||||
|
if (PORT->KISSSLAVE)
|
||||||
|
strcpy(Status, "Listen");
|
||||||
|
else
|
||||||
|
strcpy(Status, "Closed");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strcpy(Status, "UDP");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (Port->idComDev) // Serial port Open
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
else
|
||||||
|
strcpy(Status, "Closed");
|
||||||
|
|
||||||
|
PORT = SAVEPORT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (PORT->PORTTYPE == 14) // Loopback
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
|
||||||
|
else if (PORT->PORTTYPE == 16) // External
|
||||||
|
{
|
||||||
|
if (PORT->PROTOCOL == 10) // 'HF' Port
|
||||||
|
{
|
||||||
|
struct TNCINFO * TNC = TNCInfo[Portno];
|
||||||
|
|
||||||
|
if (TNC == NULL)
|
||||||
|
{
|
||||||
|
PORT = PORT->PORTPOINTER;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (TNC->Hardware) // Hardware Type
|
||||||
|
{
|
||||||
|
case H_SCS:
|
||||||
|
case H_KAM:
|
||||||
|
case H_AEA:
|
||||||
|
case H_HAL:
|
||||||
|
case H_TRK:
|
||||||
|
case H_SERIAL:
|
||||||
|
|
||||||
|
// Serial
|
||||||
|
|
||||||
|
if (TNC->hDevice)
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
else
|
||||||
|
strcpy(Status, "Closed");
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case H_UZ7HO:
|
||||||
|
|
||||||
|
if (TNCInfo[MasterPort[Portno]]->CONNECTED)
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
else
|
||||||
|
strcpy(Status, "Closed");
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case H_WINMOR:
|
||||||
|
case H_V4:
|
||||||
|
|
||||||
|
case H_MPSK:
|
||||||
|
case H_FLDIGI:
|
||||||
|
case H_UIARQ:
|
||||||
|
case H_ARDOP:
|
||||||
|
case H_VARA:
|
||||||
|
case H_KISSHF:
|
||||||
|
case H_WINRPR:
|
||||||
|
case H_FREEDATA:
|
||||||
|
|
||||||
|
// TCP
|
||||||
|
|
||||||
|
if (TNC->CONNECTED)
|
||||||
|
{
|
||||||
|
if (TNC->Streams[0].Attached)
|
||||||
|
strcpy(Status, "In Use");
|
||||||
|
else
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strcpy(Status, "Closed");
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case H_TELNET:
|
||||||
|
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// External but not HF - AXIP, BPQETHER VKISS, ??
|
||||||
|
|
||||||
|
struct _EXTPORTDATA * EXTPORT = (struct _EXTPORTDATA *)PORT;
|
||||||
|
|
||||||
|
strcpy(Status, "Open ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Bufferptr = Cmdprintf(Session, Bufferptr, " %2d %-7s %s\r", PORT->PORTNUMBER, Status, PORT->PORTDESCRIPTION);
|
||||||
|
|
||||||
PORT = PORT->PORTPOINTER;
|
PORT = PORT->PORTPOINTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,6 @@ static char status[23][50] = {"IDLE", "TFC", "RQ", "ERR", "PHS", "OVER", "FSK TX
|
||||||
"FREE SIGNAL TX (AMTOR)", "FREE SIGNAL TX TIMED OUT (AMTOR)"};
|
"FREE SIGNAL TX (AMTOR)", "FREE SIGNAL TX TIMED OUT (AMTOR)"};
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
BOOL SetupConnection(int);
|
||||||
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
||||||
static void CheckRX(struct TNCINFO * TNC);
|
static void CheckRX(struct TNCINFO * TNC);
|
||||||
|
|
|
@ -252,9 +252,6 @@ ConfigLine:
|
||||||
|
|
||||||
static int MaxStreams = 26;
|
static int MaxStreams = 26;
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
|
||||||
BOOL CloseConnection(struct TNCINFO * conn);
|
BOOL CloseConnection(struct TNCINFO * conn);
|
||||||
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
||||||
BOOL DestroyTTYInfo(int port);
|
BOOL DestroyTTYInfo(int port);
|
||||||
|
|
1
LinBPQ.c
1
LinBPQ.c
|
@ -552,7 +552,6 @@ extern int POP3Timer;
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <stropts.h>
|
|
||||||
|
|
||||||
int _kbhit() {
|
int _kbhit() {
|
||||||
static const int STDIN = 0;
|
static const int STDIN = 0;
|
||||||
|
|
|
@ -84,7 +84,7 @@ extern UCHAR BPQDirectory[];
|
||||||
static int MPSKChannel[MAXBPQPORTS+1]; // BPQ Port to MPSK Port
|
static int MPSKChannel[MAXBPQPORTS+1]; // BPQ Port to MPSK Port
|
||||||
static int BPQPort[MAXMPSKPORTS][MAXBPQPORTS+1]; // MPSK Port and Connection to BPQ Port
|
static int BPQPort[MAXMPSKPORTS][MAXBPQPORTS+1]; // MPSK Port and Connection to BPQ Port
|
||||||
|
|
||||||
static int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific MPSK host
|
extern int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific MPSK host
|
||||||
|
|
||||||
// Each port may be on a different machine. We only open one connection to each MPSK instance
|
// Each port may be on a different machine. We only open one connection to each MPSK instance
|
||||||
|
|
||||||
|
|
|
@ -70,8 +70,6 @@ VOID __cdecl Debugprintf(const char * format, ...);
|
||||||
|
|
||||||
struct RIGINFO * RigConfig(struct TNCINFO * TNC, char * buf, int Port);
|
struct RIGINFO * RigConfig(struct TNCINFO * TNC, char * buf, int Port);
|
||||||
struct RIGPORTINFO * CreateTTYInfo(int port, int speed);
|
struct RIGPORTINFO * CreateTTYInfo(int port, int speed);
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
|
||||||
BOOL RigCloseConnection(struct RIGPORTINFO * PORT);
|
BOOL RigCloseConnection(struct RIGPORTINFO * PORT);
|
||||||
BOOL RigWriteCommBlock(struct RIGPORTINFO * PORT);
|
BOOL RigWriteCommBlock(struct RIGPORTINFO * PORT);
|
||||||
BOOL DestroyTTYInfo(int port);
|
BOOL DestroyTTYInfo(int port);
|
||||||
|
|
|
@ -355,8 +355,7 @@ ConfigLine:
|
||||||
}
|
}
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
|
||||||
BOOL CloseConnection(struct TNCINFO * conn);
|
BOOL CloseConnection(struct TNCINFO * conn);
|
||||||
BOOL WriteCommBlock(struct TNCINFO * TNC);
|
BOOL WriteCommBlock(struct TNCINFO * TNC);
|
||||||
BOOL DestroyTTYInfo(int port);
|
BOOL DestroyTTYInfo(int port);
|
||||||
|
|
|
@ -140,9 +140,7 @@ ConfigLine:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
|
||||||
BOOL CloseConnection(struct TNCINFO * conn);
|
BOOL CloseConnection(struct TNCINFO * conn);
|
||||||
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
||||||
BOOL DestroyTTYInfo(int port);
|
BOOL DestroyTTYInfo(int port);
|
||||||
|
|
|
@ -56,9 +56,6 @@ char * strlop(char * buf, char delim);
|
||||||
|
|
||||||
char NodeCall[11]; // Nodecall, Null Terminated
|
char NodeCall[11]; // Nodecall, Null Terminated
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
|
||||||
BOOL CloseConnection(struct TNCINFO * conn);
|
BOOL CloseConnection(struct TNCINFO * conn);
|
||||||
BOOL TrkWriteCommBlock(struct TNCINFO * TNC);
|
BOOL TrkWriteCommBlock(struct TNCINFO * TNC);
|
||||||
BOOL DestroyTTYInfo(int port);
|
BOOL DestroyTTYInfo(int port);
|
||||||
|
|
|
@ -37,7 +37,6 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
|
||||||
#define IDM_DISCONNECT 2000
|
#define IDM_DISCONNECT 2000
|
||||||
#define IDM_LOGGING 2100
|
#define IDM_LOGGING 2100
|
||||||
|
|
||||||
#define MAXBLOCK 4096
|
|
||||||
#include "CHeaders.h"
|
#include "CHeaders.h"
|
||||||
#include "tncinfo.h"
|
#include "tncinfo.h"
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ static int BPQPort[MAXUZ7HOPORTS][MAXBPQPORTS+1]; // UZ7HO Port and Connection t
|
||||||
static void * UZ7HOtoBPQ_Q[MAXBPQPORTS+1]; // Frames for BPQ, indexed by BPQ Port
|
static void * UZ7HOtoBPQ_Q[MAXBPQPORTS+1]; // Frames for BPQ, indexed by BPQ Port
|
||||||
static void * BPQtoUZ7HO_Q[MAXBPQPORTS+1]; // Frames for UZ7HO. indexed by UZ7HO port. Only used it TCP session is blocked
|
static void * BPQtoUZ7HO_Q[MAXBPQPORTS+1]; // Frames for UZ7HO. indexed by UZ7HO port. Only used it TCP session is blocked
|
||||||
|
|
||||||
static int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific UZ7HO host
|
int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific UZ7HO host
|
||||||
static struct TNCINFO * SlaveTNC[MAXBPQPORTS+1];// TNC Record Slave if present
|
static struct TNCINFO * SlaveTNC[MAXBPQPORTS+1];// TNC Record Slave if present
|
||||||
|
|
||||||
// Each port may be on a different machine. We only open one connection to each UZ7HO instance
|
// Each port may be on a different machine. We only open one connection to each UZ7HO instance
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define KVers 6,0,23,76
|
#define KVers 6,0,23,77
|
||||||
#define KVerstring "6.0.23.76\0"
|
#define KVerstring "6.0.23.77\0"
|
||||||
|
|
||||||
#ifdef CKernel
|
#ifdef CKernel
|
||||||
|
|
||||||
|
|
5
WinRPR.c
5
WinRPR.c
|
@ -67,12 +67,7 @@ char * strlop(char * buf, char delim);
|
||||||
|
|
||||||
char NodeCall[11]; // Nodecall, Null Terminated
|
char NodeCall[11]; // Nodecall, Null Terminated
|
||||||
|
|
||||||
struct TNCINFO * CreateTTYInfo(int port, int speed);
|
|
||||||
BOOL OpenConnection(int);
|
|
||||||
BOOL SetupConnection(int);
|
|
||||||
BOOL CloseConnection(struct TNCINFO * conn);
|
|
||||||
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
static BOOL WriteCommBlock(struct TNCINFO * TNC);
|
||||||
BOOL DestroyTTYInfo(int port);
|
|
||||||
static void DEDCheckRX(struct TNCINFO * TNC);
|
static void DEDCheckRX(struct TNCINFO * TNC);
|
||||||
VOID DEDPoll(int Port);
|
VOID DEDPoll(int Port);
|
||||||
VOID StuffAndSend(struct TNCINFO * TNC, UCHAR * Msg, int Len);
|
VOID StuffAndSend(struct TNCINFO * TNC, UCHAR * Msg, int Len);
|
||||||
|
|
4
cMain.c
4
cMain.c
|
@ -1071,10 +1071,10 @@ BOOL Start()
|
||||||
KISS->KISSCMD = malloc(256);
|
KISS->KISSCMD = malloc(256);
|
||||||
|
|
||||||
KISS->KISSCMDLEN = KissEncode(KissString, KISS->KISSCMD, KissLen);
|
KISS->KISSCMDLEN = KissEncode(KissString, KISS->KISSCMD, KissLen);
|
||||||
realloc(KISS->KISSCMD, KISS->KISSCMDLEN);
|
KISS->KISSCMD = realloc(KISS->KISSCMD, KISS->KISSCMDLEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PortRec->BBSFLAG) // Appl 1 no permitted - BBSFLAG=NOBBS
|
if (PortRec->BBSFLAG) // Appl 1 not permitted - BBSFLAG=NOBBS
|
||||||
PORT->PERMITTEDAPPLS &= 0xfffffffe; // Clear bottom bit
|
PORT->PERMITTEDAPPLS &= 0xfffffffe; // Clear bottom bit
|
||||||
|
|
||||||
|
|
||||||
|
|
33
kiss.c
33
kiss.c
|
@ -34,17 +34,13 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#ifndef RP2040
|
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
#endif
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//#include <netax25/ttyutils.h>
|
//#include <netax25/ttyutils.h>
|
||||||
//#include <netax25/daemon.h>
|
//#include <netax25/daemon.h>
|
||||||
|
|
||||||
|
@ -131,6 +127,9 @@ int lastcount;
|
||||||
|
|
||||||
UCHAR ENCBUFF[600];
|
UCHAR ENCBUFF[600];
|
||||||
|
|
||||||
|
NPASYINFO KISSInfo[MAXBPQPORTS] = {0};
|
||||||
|
|
||||||
|
|
||||||
int ASYSEND(struct PORTCONTROL * PortVector, char * buffer, int count)
|
int ASYSEND(struct PORTCONTROL * PortVector, char * buffer, int count)
|
||||||
{
|
{
|
||||||
NPASYINFO Port = KISSInfo[PortVector->PORTNUMBER];
|
NPASYINFO Port = KISSInfo[PortVector->PORTNUMBER];
|
||||||
|
@ -160,7 +159,7 @@ int ASYSEND(struct PORTCONTROL * PortVector, char * buffer, int count)
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
Debugprintf ("i2c Write Error\r");
|
Debugprintf ("i2c Write Error\r");
|
||||||
Sleep(1);
|
usleep(1000);
|
||||||
ret = i2c_smbus_write_byte(Port->idComDev, *(ptr));
|
ret = i2c_smbus_write_byte(Port->idComDev, *(ptr));
|
||||||
}
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
|
@ -309,15 +308,11 @@ int ASYINIT(int comport, int speed, struct PORTCONTROL * PortVector, char Channe
|
||||||
}
|
}
|
||||||
else if (PortVector->PORTIPADDR.s_addr || PortVector->KISSSLAVE)
|
else if (PortVector->PORTIPADDR.s_addr || PortVector->KISSSLAVE)
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifndef RP2040
|
|
||||||
|
|
||||||
SOCKET sock;
|
SOCKET sock;
|
||||||
u_long param=1;
|
u_long param=1;
|
||||||
BOOL bcopt=TRUE;
|
BOOL bcopt=TRUE;
|
||||||
struct sockaddr_in sinx;
|
struct sockaddr_in sinx;
|
||||||
|
|
||||||
|
|
||||||
// KISS over UDP or TCP
|
// KISS over UDP or TCP
|
||||||
|
|
||||||
if (PortVector->ListenPort == 0)
|
if (PortVector->ListenPort == 0)
|
||||||
|
@ -431,7 +426,6 @@ int ASYINIT(int comport, int speed, struct PORTCONTROL * PortVector, char Channe
|
||||||
npKISSINFO->RXMPTR=&npKISSINFO->RXMSG[0];
|
npKISSINFO->RXMPTR=&npKISSINFO->RXMSG[0];
|
||||||
|
|
||||||
OpenConnection(PortVector);
|
OpenConnection(PortVector);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
npKISSINFO->Portvector = PortVector;
|
npKISSINFO->Portvector = PortVector;
|
||||||
|
@ -621,7 +615,7 @@ static void CheckReceivedData(struct PORTCONTROL * PORT, NPASYINFO npKISSINFO)
|
||||||
struct sockaddr_in rxaddr;
|
struct sockaddr_in rxaddr;
|
||||||
int addrlen = sizeof(struct sockaddr_in);
|
int addrlen = sizeof(struct sockaddr_in);
|
||||||
|
|
||||||
nLength = recvfrom(npKISSINFO->sock, &npKISSINFO->RXBUFFER[0], MAXBLOCK - 1, 0, (struct sockaddr *)&rxaddr, &addrlen);
|
nLength = recvfrom(npKISSINFO->sock, &npKISSINFO->RXBUFFER[0], KISSMAXBLOCK - 1, 0, (struct sockaddr *)&rxaddr, &addrlen);
|
||||||
|
|
||||||
if (nLength < 0)
|
if (nLength < 0)
|
||||||
{
|
{
|
||||||
|
@ -633,7 +627,7 @@ static void CheckReceivedData(struct PORTCONTROL * PORT, NPASYINFO npKISSINFO)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
nLength = ReadCommBlock(npKISSINFO, (char *) &npKISSINFO->RXBUFFER, MAXBLOCK - 1);;
|
nLength = ReadCommBlock(npKISSINFO, (char *) &npKISSINFO->RXBUFFER, KISSMAXBLOCK - 1);;
|
||||||
|
|
||||||
npKISSINFO->RXBCOUNT = nLength;
|
npKISSINFO->RXBCOUNT = nLength;
|
||||||
npKISSINFO->RXBPTR = (UCHAR *)&npKISSINFO->RXBUFFER;
|
npKISSINFO->RXBPTR = (UCHAR *)&npKISSINFO->RXBUFFER;
|
||||||
|
@ -1359,7 +1353,7 @@ int KISSRX(struct KISSINFO * KISS)
|
||||||
PMESSAGE Buffer;
|
PMESSAGE Buffer;
|
||||||
int len;
|
int len;
|
||||||
NPASYINFO Port = KISSInfo[PORT->PORTNUMBER];
|
NPASYINFO Port = KISSInfo[PORT->PORTNUMBER];
|
||||||
struct KISSINFO * SAVEKISS = KISS; // Save so we can restore at SeeifMode
|
struct KISSINFO * SAVEKISS = KISS; // Save so we can restore at SeeifMore
|
||||||
|
|
||||||
if (Port == NULL)
|
if (Port == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1596,13 +1590,13 @@ SeeifMore:
|
||||||
}
|
}
|
||||||
|
|
||||||
// checksum if necessary
|
// checksum if necessary
|
||||||
#ifndef RP2040
|
|
||||||
if (KISS->PORT.KISSFLAGS & DRATS)
|
if (KISS->PORT.KISSFLAGS & DRATS)
|
||||||
{
|
{
|
||||||
processDRATSFrame(&Port->RXMSG[1], len - 2, 0);
|
processDRATSFrame(&Port->RXMSG[1], len - 2, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (len < 15)
|
if (len < 15)
|
||||||
return 0; // too short for AX25
|
return 0; // too short for AX25
|
||||||
|
|
||||||
|
@ -1829,7 +1823,6 @@ int ConnecttoTCP(NPASYINFO ASY)
|
||||||
|
|
||||||
VOID ConnecttoTCPThread(NPASYINFO ASY)
|
VOID ConnecttoTCPThread(NPASYINFO ASY)
|
||||||
{
|
{
|
||||||
#ifndef RP2040
|
|
||||||
char Msg[255];
|
char Msg[255];
|
||||||
int err,i;
|
int err,i;
|
||||||
u_long param=1;
|
u_long param=1;
|
||||||
|
@ -1926,13 +1919,10 @@ VOID ConnecttoTCPThread(NPASYINFO ASY)
|
||||||
}
|
}
|
||||||
Sleep (57000/2); // 1/2 Mins
|
Sleep (57000/2); // 1/2 Mins
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int KISSGetTCPMessage(NPASYINFO ASY)
|
int KISSGetTCPMessage(NPASYINFO ASY)
|
||||||
{
|
{
|
||||||
#ifndef RP2040
|
|
||||||
|
|
||||||
int index=0;
|
int index=0;
|
||||||
ULONG param = 1;
|
ULONG param = 1;
|
||||||
|
|
||||||
|
@ -1973,7 +1963,7 @@ int KISSGetTCPMessage(NPASYINFO ASY)
|
||||||
|
|
||||||
// May have several messages per packet, or message split over packets
|
// May have several messages per packet, or message split over packets
|
||||||
|
|
||||||
InputLen = recv(ASY->sock, ASY->RXBUFFER, MAXBLOCK - 1, 0);
|
InputLen = recv(ASY->sock, ASY->RXBUFFER, KISSMAXBLOCK - 1, 0);
|
||||||
|
|
||||||
if (InputLen < 0)
|
if (InputLen < 0)
|
||||||
{
|
{
|
||||||
|
@ -2008,8 +1998,6 @@ int KISSGetTCPMessage(NPASYINFO ASY)
|
||||||
{
|
{
|
||||||
// Reopen Listening Socket
|
// Reopen Listening Socket
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SOCKET sock;
|
SOCKET sock;
|
||||||
u_long param=1;
|
u_long param=1;
|
||||||
BOOL bcopt=TRUE;
|
BOOL bcopt=TRUE;
|
||||||
|
@ -2042,6 +2030,5 @@ int KISSGetTCPMessage(NPASYINFO ASY)
|
||||||
ASY->Listening = TRUE;
|
ASY->Listening = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
9
kiss.h
9
kiss.h
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
#define MAXBLOCK 512
|
#define KISSMAXBLOCK 512
|
||||||
|
|
||||||
// KISS over TCP Slave now allows multiple connections
|
// KISS over TCP Slave now allows multiple connections
|
||||||
// so need a struct to keep track of them
|
// so need a struct to keep track of them
|
||||||
|
@ -9,7 +9,7 @@ typedef struct _KISSTCPSess
|
||||||
{
|
{
|
||||||
struct _KISSTCPSesssion * Next;
|
struct _KISSTCPSesssion * Next;
|
||||||
SOCKET Socket;
|
SOCKET Socket;
|
||||||
UCHAR RXBuffer[MAXBLOCK];
|
UCHAR RXBuffer[KISSMAXBLOCK];
|
||||||
int RXLen;
|
int RXLen;
|
||||||
|
|
||||||
time_t Timeout;
|
time_t Timeout;
|
||||||
|
@ -30,7 +30,7 @@ typedef struct tagASYINFO
|
||||||
struct sockaddr_in destaddr;
|
struct sockaddr_in destaddr;
|
||||||
struct PORTCONTROL * Portvector;
|
struct PORTCONTROL * Portvector;
|
||||||
UCHAR RXMSG[512]; // Msg being built
|
UCHAR RXMSG[512]; // Msg being built
|
||||||
UCHAR RXBUFFER[MAXBLOCK]; // Raw chars from Comms
|
UCHAR RXBUFFER[KISSMAXBLOCK]; // Raw chars from Comms
|
||||||
int RXBCOUNT; // chars in RXBUFFER
|
int RXBCOUNT; // chars in RXBUFFER
|
||||||
UCHAR * RXBPTR; // get pointer for RXBUFFER (put ptr is RXBCOUNT)
|
UCHAR * RXBPTR; // get pointer for RXBUFFER (put ptr is RXBCOUNT)
|
||||||
UCHAR * RXMPTR; // put pointer for RXMSG
|
UCHAR * RXMPTR; // put pointer for RXMSG
|
||||||
|
@ -45,8 +45,7 @@ typedef struct tagASYINFO
|
||||||
|
|
||||||
} ASYINFO, *NPASYINFO ;
|
} ASYINFO, *NPASYINFO ;
|
||||||
|
|
||||||
NPASYINFO KISSInfo[MAXBPQPORTS] = {0};
|
extern NPASYINFO KISSInfo[MAXBPQPORTS];
|
||||||
|
|
||||||
|
|
||||||
#define _fmemset memset
|
#define _fmemset memset
|
||||||
#define _fmemmove memmove
|
#define _fmemmove memmove
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
#define IDI_ICON2 2
|
#define IDI_ICON2 2
|
||||||
|
|
||||||
#define MAXBLOCK 4096
|
|
||||||
|
|
||||||
struct TimeScan
|
struct TimeScan
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue