120 bool SetOutputSocketOptions(wxSocketBase* tsock);
121 void OnServerSocketEvent(wxSocketEvent& event);
122 void OnTimerSocket(wxTimerEvent& event) { OnTimerSocket(); }
123 void OnTimerSocket();
125 void OpenNetworkGPSD();
126 void OpenNetworkTCP(
unsigned int addr);
127 void OpenNetworkUDP(
unsigned int addr);
128 void OnSocketReadWatchdogTimer(wxTimerEvent& event);
131 bool SendMessage(std::shared_ptr<const NavMsg> msg,
132 std::shared_ptr<const NavAddr> addr)
override;
133 wxSocketBase* GetSock()
const {
return m_sock; }
140 wxString GetNetPort()
const {
return m_net_port; }
141 wxIPV4address GetAddr()
const {
return m_addr; }
142 wxTimer* GetSocketThreadWatchdogTimer() {
143 return &m_socketread_watchdog_timer;
145 wxTimer* GetSocketTimer() {
return &m_socket_timer; }
146 void SetSock(wxSocketBase* sock) { m_sock = sock; }
147 void SetTSock(wxSocketBase* sock) { m_tsock = sock; }
148 wxSocketBase* GetTSock()
const {
return m_tsock; }
149 void SetSockServer(wxSocketServer* sock) { m_socket_server = sock; }
150 wxSocketServer* GetSockServer()
const {
return m_socket_server; }
151 void SetMulticast(
bool multicast) { m_is_multicast = multicast; }
152 bool GetMulticast()
const {
return m_is_multicast; }
154 NetworkProtocol GetProtocol() {
return m_net_protocol; }
155 void SetBrxConnectEvent(
bool event) { m_brx_connect_event = event; }
156 bool GetBrxConnectEvent() {
return m_brx_connect_event; }
158 void SetConnectTime(wxDateTime time) { m_connect_time = time; }
159 wxDateTime GetConnectTime() {
return m_connect_time; }
161 dsPortType GetPortType()
const {
return m_io_select; }
162 wxString GetPort()
const {
return m_portstring; }
164 std::vector<unsigned char> PushFastMsgFragment(
const CanHeader& header,
166 std::vector<unsigned char> PushCompleteMsg(
const CanHeader header,
168 const can_frame frame);
170 void HandleCanFrameInput(can_frame frame);
172 ConnectionType GetConnectionType()
const {
return m_connection_type; }
174 bool ChecksumOK(
const std::string& sentence);
175 void SetOk(
bool ok) { m_bok = ok; };
177 N2K_Format DetectFormat(std::vector<unsigned char> packet);
178 bool ProcessActisense_ASCII_RAW(std::vector<unsigned char> packet);
179 bool ProcessActisense_ASCII_N2K(std::vector<unsigned char> packet);
180 bool ProcessActisense_N2K(std::vector<unsigned char> packet);
181 bool ProcessActisense_RAW(std::vector<unsigned char> packet);
182 bool ProcessActisense_NGT(std::vector<unsigned char> packet);
183 bool ProcessSeaSmart(std::vector<unsigned char> packet);
184 bool ProcessMiniPlex(std::vector<unsigned char> packet);
186 bool SendN2KNetwork(std::shared_ptr<const Nmea2000Msg>& msg,
187 std::shared_ptr<const NavAddr2000> dest_addr);
189 std::vector<std::vector<unsigned char>> GetTxVector(
190 const std::shared_ptr<const Nmea2000Msg>& msg,
191 std::shared_ptr<const NavAddr2000> dest_addr);
192 bool SendSentenceNetwork(std::vector<std::vector<unsigned char>> payload);
193 bool HandleMgntMsg(uint64_t pgn, std::vector<unsigned char>& payload);
195 std::vector<unsigned char> PrepareLogPayload(
196 std::shared_ptr<const Nmea2000Msg>& msg,
197 std::shared_ptr<const NavAddr2000> addr);
198 void OnProdInfoTimer(wxTimerEvent& ev);
204 NetworkProtocol m_net_protocol;
205 wxIPV4address m_addr;
206 wxSocketBase* m_sock;
207 wxSocketBase* m_tsock;
208 wxSocketServer* m_socket_server;
214 std::string m_sock_buffer;
215 wxString m_portstring;
216 dsPortType m_io_select;
217 wxDateTime m_connect_time;
218 bool m_brx_connect_event;
219 bool m_bchecksumCheck;
220 ConnectionType m_connection_type;
222 wxTimer m_socket_timer;
223 wxTimer m_socketread_watchdog_timer;
227 bool m_bInMsg, m_bGotESC, m_bGotSOT;
230 unsigned char* rx_buffer;
231 std::string m_sentence;
234 N2K_Format m_n2k_format;
238 wxTimer m_prodinfo_timer;
242 DECLARE_EVENT_TABLE()