NetBurner 3.5.6
PDF Version
serialrecord.h
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
5#ifndef _SERIAL_RECORD_H_
6#define _SERIAL_RECORD_H_
7#pragma once
8
9#include <basictypes.h>
10#include <buffers.h>
11#include <iosys.h>
12#include <nettypes.h>
13#include <system.h>
14
15#include "nbfactory.h"
16#include "serialburnerdata.h"
17
23{
24 /*
25 * Data
26 */
27 // File descriptor of serial port
28 int FD_SerialPort;
29
30 // File descriptor of listening socket
31 int FD_ListeningSocket;
32
33 // File descriptor of connected socket
34 int FD_ConnectedSocket;
35
36 // TRUE if we established the connection
37 bool bWeInitiatedConnection;
38
39 // Time of last network sourced data in seconds since last boot
40 uint32_t LastNetWorkDataRxed;
41
42 // Time of last transmitted data in seconds since last boot
43 uint32_t LastNetWorkDataTxed;
44
45 // Time of last attempted outgoing connection in seconds since last boot
46 uint32_t LastConnectTry;
47
48 bool bSerialBoundDataBlocked;
49 bool bNetWorkBoundDataBlocked;
50
51 // Circular buffer from serial port to network
52 char Buffer_From_S2N[BUFFER_SIZE];
53 int Buf_S2N_Start;
54 int Buf_S2N_End;
55
56 // Circular buffer from network to serial port
57 char Buffer_From_N2S[BUFFER_SIZE];
58 int Buf_N2S_Start;
59 int Buf_N2S_End;
60
61 IPADDR LearnedUdp;
62 uint32_t RxBufferCount;
63 int port_index; // A global PortRecord array will be declared
64 int uart_num; // Physical UART number
65 int conn_try;
66
67 // Flag verification and tick time-stamping for keep-alive implementation
68 bool tcpKeepAliveSent;
69 uint32_t tcpLastRxTicks;
70 uint32_t tcpkeepAliveTicks;
71
75 void AssignUartNumber(void);
76
77 void ProcessUdpSerialRead(void);
78 void ProcessUdpRead(void);
79 void ProcessUdpTxTo(void);
80 void SetUdpReadFD(fd_set &fd_rd);
81
82 void SetTcpFDs(fd_set &fd_rd, fd_set &fd_wr, fd_set &fd_err);
83 void ProcessTcpFDs(fd_set &fd_rd, fd_set &fd_wr, fd_set &fd_err);
84 void ProcessTCPReadSerialData(void);
86
89 void MakeTcpConnection(void);
90
91#ifdef SB800EX
92 void TestDSR(void);
93 void TestCD(void);
94#endif // SB800EX
95
96 void SendSerialMessage(const char *msg);
97 int SerialBreakWrite(char *start, int len);
98 void CloseListenPort(void);
99 void MakeUdpConnection(void);
100 bool OkToListen(void);
101 void ProcessTimeouts(void);
102 void ProcessAccept(void);
103 void OpenSerialPort(void);
104 void DisableSerialPort(void);
105 void ProcessReadNetworkData(void);
106 void OpenListenPort(void);
107 void ProcessWriteNetworkData(void);
108 void ProcessWriteSerialData(void);
109
110 void ProcessSerialError(void);
111 void ProcessListenError(void);
112 void ProcessNetworkError(void);
113 void EnableATCommands();
114 void DisableATCommands();
115 void GetCurrentChannelStatus(char *buffer);
116};
117
118#endif
NetBurner Buffers API.
Used to hold and manipulate IPv4 and IPv6 addresses in dual stack mode.
Definition ipv6_addr.h:41
NetBurner I/O System Library API.
NetBurner IPADDR4 Class. See the IPADDR4 Class page for complete documentation.
Definition serialrecord.h:23
void OpenSerialPort(void)
Definition serialrecord.cpp:2520
bool OkToListen(void)
Definition serialrecord.cpp:670
void GetCurrentChannelStatus(char *buffer)
Definition serialrecord.cpp:70
void ProcessAccept(void)
Definition serialrecord.cpp:857
void ProcessListenError(void)
Definition serialrecord.cpp:1291
void MakeTcpConnection(void)
Definition serialrecord.cpp:434
void ProcessSpecialFrameWriteTimeout(void)
Definition serialrecord.cpp:3164
void ProcessSerialError(void)
Definition serialrecord.cpp:1279
void AssignUartNumber(void)
Definition serialrecord.cpp:1351
void ProcessWriteSerialData(void)
Definition serialrecord.cpp:1240
void ProcessTCPReadSerialData(void)
Definition serialrecord.cpp:981
void OpenListenPort(void)
Definition serialrecord.cpp:359
void ProcessReadNetworkData(void)
Definition serialrecord.cpp:1095
void ProcessTimeouts(void)
Definition serialrecord.cpp:695
void ProcessNetworkError(void)
Definition serialrecord.cpp:1306
void ProcessWriteNetworkData(void)
Definition serialrecord.cpp:1177
void ProcessSpecialFrameWriteNetworkData(void)
Definition serialrecord.cpp:3153
void MakeUdpConnection(void)
Definition serialrecord.cpp:627
void ProcessSpecialFrameTCPReadSerialData(void)
Definition serialrecord.cpp:3007
void CloseListenPort(void)
Definition serialrecord.cpp:373
NetBurner System Functions.