115 DriverStats GetDriverStats()
const override {
return m_driver_stats; }
123 bool SetOutputSocketOptions(wxSocketBase* tsock);
124 void OnServerSocketEvent(wxSocketEvent& event);
125 void OnTimerSocket(wxTimerEvent& event) { OnTimerSocket(); }
126 void OnTimerSocket();
128 void OpenNetworkGPSD();
129 void OpenNetworkTCP(
unsigned int addr);
130 void OpenNetworkUDP(
unsigned int addr);
131 void OnSocketReadWatchdogTimer(wxTimerEvent& event);
134 bool SendMessage(std::shared_ptr<const NavMsg> msg,
135 std::shared_ptr<const NavAddr> addr)
override;
136 wxSocketBase* GetSock()
const {
return m_sock; }
143 wxString GetNetPort()
const {
return m_net_port; }
144 wxIPV4address GetAddr()
const {
return m_addr; }
145 wxTimer* GetSocketThreadWatchdogTimer() {
146 return &m_socketread_watchdog_timer;
148 wxTimer* GetSocketTimer() {
return &m_socket_timer; }
149 void SetSock(wxSocketBase* sock) { m_sock = sock; }
150 void SetTSock(wxSocketBase* sock) { m_tsock = sock; }
151 wxSocketBase* GetTSock()
const {
return m_tsock; }
152 void SetSockServer(wxSocketServer* sock) { m_socket_server = sock; }
153 wxSocketServer* GetSockServer()
const {
return m_socket_server; }
154 void SetMulticast(
bool multicast) { m_is_multicast = multicast; }
155 bool GetMulticast()
const {
return m_is_multicast; }
157 NetworkProtocol GetProtocol() {
return m_net_protocol; }
158 void SetBrxConnectEvent(
bool event) { m_brx_connect_event = event; }
159 bool GetBrxConnectEvent() {
return m_brx_connect_event; }
161 void SetConnectTime(wxDateTime time) { m_connect_time = time; }
162 wxDateTime GetConnectTime() {
return m_connect_time; }
164 dsPortType GetPortType()
const {
return m_io_select; }
165 wxString GetPort()
const {
return m_portstring; }
167 std::vector<unsigned char> PushFastMsgFragment(
const CanHeader& header,
169 std::vector<unsigned char> PushCompleteMsg(
const CanHeader header,
171 const can_frame frame);
173 void HandleCanFrameInput(can_frame frame);
175 ConnectionType GetConnectionType()
const {
return m_connection_type; }
177 bool ChecksumOK(
const std::string& sentence);
178 void SetOk(
bool ok) { m_bok = ok; };
180 N2K_Format DetectFormat(std::vector<unsigned char> packet);
181 bool ProcessActisense_ASCII_RAW(std::vector<unsigned char> packet);
182 bool ProcessActisense_ASCII_N2K(std::vector<unsigned char> packet);
183 bool ProcessActisense_N2K(std::vector<unsigned char> packet);
184 bool ProcessActisense_RAW(std::vector<unsigned char> packet);
185 bool ProcessActisense_NGT(std::vector<unsigned char> packet);
186 bool ProcessSeaSmart(std::vector<unsigned char> packet);
187 bool ProcessMiniPlex(std::vector<unsigned char> packet);
189 bool SendN2KNetwork(std::shared_ptr<const Nmea2000Msg>& msg,
190 std::shared_ptr<const NavAddr2000> dest_addr);
192 std::vector<std::vector<unsigned char>> GetTxVector(
193 const std::shared_ptr<const Nmea2000Msg>& msg,
194 std::shared_ptr<const NavAddr2000> dest_addr);
195 bool SendSentenceNetwork(std::vector<std::vector<unsigned char>> payload);
196 bool HandleMgntMsg(uint64_t pgn, std::vector<unsigned char>& payload);
198 std::vector<unsigned char> PrepareLogPayload(
199 std::shared_ptr<const Nmea2000Msg>& msg,
200 std::shared_ptr<const NavAddr2000> addr);
201 void OnProdInfoTimer(wxTimerEvent& ev);
207 NetworkProtocol m_net_protocol;
208 wxIPV4address m_addr;
209 wxSocketBase* m_sock;
210 wxSocketBase* m_tsock;
211 wxSocketServer* m_socket_server;
217 std::string m_sock_buffer;
218 wxString m_portstring;
219 dsPortType m_io_select;
220 wxDateTime m_connect_time;
221 bool m_brx_connect_event;
222 bool m_bchecksumCheck;
223 ConnectionType m_connection_type;
225 wxTimer m_socket_timer;
226 wxTimer m_socketread_watchdog_timer;
230 bool m_bInMsg, m_bGotESC, m_bGotSOT;
233 unsigned char* rx_buffer;
234 std::string m_sentence;
237 N2K_Format m_n2k_format;
241 wxTimer m_prodinfo_timer;
245 DECLARE_EVENT_TABLE()