118 bool SetOutputSocketOptions(wxSocketBase* tsock);
119 void OnServerSocketEvent(wxSocketEvent& event);
120 void OnTimerSocket(wxTimerEvent& event) { OnTimerSocket(); }
121 void OnTimerSocket();
123 void OpenNetworkGPSD();
124 void OpenNetworkTCP(
unsigned int addr);
125 void OpenNetworkUDP(
unsigned int addr);
126 void OnSocketReadWatchdogTimer(wxTimerEvent& event);
129 bool SendMessage(std::shared_ptr<const NavMsg> msg,
130 std::shared_ptr<const NavAddr> addr)
override;
131 wxSocketBase* GetSock()
const {
return m_sock; }
138 wxString GetNetPort()
const {
return m_net_port; }
139 wxIPV4address GetAddr()
const {
return m_addr; }
140 wxTimer* GetSocketThreadWatchdogTimer() {
141 return &m_socketread_watchdog_timer;
143 wxTimer* GetSocketTimer() {
return &m_socket_timer; }
144 void SetSock(wxSocketBase* sock) { m_sock = sock; }
145 void SetTSock(wxSocketBase* sock) { m_tsock = sock; }
146 wxSocketBase* GetTSock()
const {
return m_tsock; }
147 void SetSockServer(wxSocketServer* sock) { m_socket_server = sock; }
148 wxSocketServer* GetSockServer()
const {
return m_socket_server; }
149 void SetMulticast(
bool multicast) { m_is_multicast = multicast; }
150 bool GetMulticast()
const {
return m_is_multicast; }
152 NetworkProtocol GetProtocol() {
return m_net_protocol; }
153 void SetBrxConnectEvent(
bool event) { m_brx_connect_event = event; }
154 bool GetBrxConnectEvent() {
return m_brx_connect_event; }
156 void SetConnectTime(wxDateTime time) { m_connect_time = time; }
157 wxDateTime GetConnectTime() {
return m_connect_time; }
159 dsPortType GetPortType()
const {
return m_io_select; }
160 wxString GetPort()
const {
return m_portstring; }
162 std::vector<unsigned char> PushFastMsgFragment(
const CanHeader& header,
164 std::vector<unsigned char> PushCompleteMsg(
const CanHeader header,
166 const can_frame frame);
168 void HandleCanFrameInput(can_frame frame);
170 ConnectionType GetConnectionType()
const {
return m_connection_type; }
172 bool ChecksumOK(
const std::string& sentence);
173 void SetOk(
bool ok) { m_bok = ok; };
175 N2K_Format DetectFormat(std::vector<unsigned char> packet);
176 bool ProcessActisense_ASCII_RAW(std::vector<unsigned char> packet);
177 bool ProcessActisense_ASCII_N2K(std::vector<unsigned char> packet);
178 bool ProcessActisense_N2K(std::vector<unsigned char> packet);
179 bool ProcessActisense_RAW(std::vector<unsigned char> packet);
180 bool ProcessActisense_NGT(std::vector<unsigned char> packet);
181 bool ProcessSeaSmart(std::vector<unsigned char> packet);
182 bool ProcessMiniPlex(std::vector<unsigned char> packet);
184 bool SendN2KNetwork(std::shared_ptr<const Nmea2000Msg>& msg,
185 std::shared_ptr<const NavAddr2000> dest_addr);
187 std::vector<std::vector<unsigned char>> GetTxVector(
188 const std::shared_ptr<const Nmea2000Msg>& msg,
189 std::shared_ptr<const NavAddr2000> dest_addr);
190 bool SendSentenceNetwork(std::vector<std::vector<unsigned char>> payload);
191 bool HandleMgntMsg(uint64_t pgn, std::vector<unsigned char>& payload);
195 NetworkProtocol m_net_protocol;
196 wxIPV4address m_addr;
197 wxSocketBase* m_sock;
198 wxSocketBase* m_tsock;
199 wxSocketServer* m_socket_server;
205 std::string m_sock_buffer;
206 wxString m_portstring;
207 dsPortType m_io_select;
208 wxDateTime m_connect_time;
209 bool m_brx_connect_event;
210 bool m_bchecksumCheck;
211 ConnectionType m_connection_type;
213 wxTimer m_socket_timer;
214 wxTimer m_socketread_watchdog_timer;
218 bool m_bInMsg, m_bGotESC, m_bGotSOT;
221 unsigned char* rx_buffer;
222 std::string m_sentence;
225 N2K_Format m_n2k_format;
231 DECLARE_EVENT_TABLE()