101 bool SetOutputSocketOptions(wxSocketBase* tsock);
102 void OnServerSocketEvent(wxSocketEvent& event);
103 void OnTimerSocket(wxTimerEvent& event) { OnTimerSocket(); }
104 void OnTimerSocket();
106 void OpenNetworkGPSD();
107 void OpenNetworkTCP(
unsigned int addr);
108 void OpenNetworkUDP(
unsigned int addr);
109 void OnSocketReadWatchdogTimer(wxTimerEvent& event);
112 bool SendMessage(std::shared_ptr<const NavMsg> msg,
113 std::shared_ptr<const NavAddr> addr)
override;
114 wxSocketBase* GetSock()
const {
return m_sock; }
121 wxString GetNetPort()
const {
return m_net_port; }
122 wxIPV4address GetAddr()
const {
return m_addr; }
123 wxTimer* GetSocketThreadWatchdogTimer() {
124 return &m_socketread_watchdog_timer;
126 wxTimer* GetSocketTimer() {
return &m_socket_timer; }
127 void SetSock(wxSocketBase* sock) { m_sock = sock; }
128 void SetTSock(wxSocketBase* sock) { m_tsock = sock; }
129 wxSocketBase* GetTSock()
const {
return m_tsock; }
130 void SetSockServer(wxSocketServer* sock) { m_socket_server = sock; }
131 wxSocketServer* GetSockServer()
const {
return m_socket_server; }
132 void SetMulticast(
bool multicast) { m_is_multicast = multicast; }
133 bool GetMulticast()
const {
return m_is_multicast; }
135 NetworkProtocol GetProtocol() {
return m_net_protocol; }
136 void SetBrxConnectEvent(
bool event) { m_brx_connect_event = event; }
137 bool GetBrxConnectEvent() {
return m_brx_connect_event; }
139 void SetConnectTime(wxDateTime time) { m_connect_time = time; }
140 wxDateTime GetConnectTime() {
return m_connect_time; }
142 dsPortType GetPortType()
const {
return m_io_select; }
143 wxString GetPort()
const {
return m_portstring; }
145 std::vector<unsigned char> PushFastMsgFragment(
const CanHeader& header,
147 std::vector<unsigned char> PushCompleteMsg(
const CanHeader header,
149 const can_frame frame);
151 void HandleCanFrameInput(can_frame frame);
153 ConnectionType GetConnectionType()
const {
return m_connection_type; }
155 bool ChecksumOK(
const std::string& sentence);
156 void SetOk(
bool ok) { m_bok = ok; };
158 N2K_Format DetectFormat(
const std::vector<unsigned char>& packet);
159 bool ProcessActisense_ASCII_RAW(std::vector<unsigned char> packet);
160 bool ProcessActisense_ASCII_N2K(std::vector<unsigned char> packet);
161 bool ProcessActisense_N2K(std::vector<unsigned char> packet);
162 bool ProcessActisense_RAW(std::vector<unsigned char> packet);
163 bool ProcessActisense_NGT(std::vector<unsigned char> packet);
164 bool ProcessSeaSmart(std::vector<unsigned char> packet);
165 bool ProcessMiniPlex(std::vector<unsigned char> packet);
167 bool SendN2KNetwork(std::shared_ptr<const Nmea2000Msg>& msg,
168 std::shared_ptr<const NavAddr2000> dest_addr);
170 std::vector<std::vector<unsigned char>> GetTxVector(
171 const std::shared_ptr<const Nmea2000Msg>& msg,
172 std::shared_ptr<const NavAddr2000> dest_addr);
173 bool SendSentenceNetwork(std::vector<std::vector<unsigned char>> payload);
174 bool HandleMgntMsg(uint64_t pgn, std::vector<unsigned char>& payload);
176 std::vector<unsigned char> PrepareLogPayload(
177 std::shared_ptr<const Nmea2000Msg>& msg,
178 std::shared_ptr<const NavAddr2000> addr);
179 void OnProdInfoTimer(wxTimerEvent& ev);
185 NetworkProtocol m_net_protocol;
186 wxIPV4address m_addr;
187 wxSocketBase* m_sock;
188 wxSocketBase* m_tsock;
189 wxSocketServer* m_socket_server;
195 std::string m_sock_buffer;
196 wxString m_portstring;
197 dsPortType m_io_select;
198 wxDateTime m_connect_time;
199 bool m_brx_connect_event;
200 bool m_bchecksumCheck;
201 ConnectionType m_connection_type;
203 wxTimer m_socket_timer;
204 wxTimer m_socketread_watchdog_timer;
208 bool m_bInMsg, m_bGotESC, m_bGotSOT;
211 unsigned char* rx_buffer;
212 std::string m_sentence;
215 N2K_Format m_n2k_format;
219 wxTimer m_prodinfo_timer;
223 DECLARE_EVENT_TABLE()