98 bool SetOutputSocketOptions(wxSocketBase* tsock);
99 void OnServerSocketEvent(wxSocketEvent& event);
100 void OnTimerSocket(wxTimerEvent& event) { OnTimerSocket(); }
101 void OnTimerSocket();
103 void OpenNetworkGPSD();
104 void OpenNetworkTCP(
unsigned int addr);
105 void OpenNetworkUDP(
unsigned int addr);
106 void OnSocketReadWatchdogTimer(wxTimerEvent& event);
108 bool SendMessage(std::shared_ptr<const NavMsg> msg,
109 std::shared_ptr<const NavAddr> addr)
override;
110 wxSocketBase* GetSock()
const {
return m_sock; }
117 wxString GetNetPort()
const {
return m_net_port; }
118 wxIPV4address GetAddr()
const {
return m_addr; }
119 wxTimer* GetSocketThreadWatchdogTimer() {
120 return &m_socketread_watchdog_timer;
122 wxTimer* GetSocketTimer() {
return &m_socket_timer; }
123 void SetSock(wxSocketBase* sock) { m_sock = sock; }
124 void SetTSock(wxSocketBase* sock) { m_tsock = sock; }
125 wxSocketBase* GetTSock()
const {
return m_tsock; }
126 void SetSockServer(wxSocketServer* sock) { m_socket_server = sock; }
127 wxSocketServer* GetSockServer()
const {
return m_socket_server; }
128 void SetMulticast(
bool multicast) { m_is_multicast = multicast; }
129 bool GetMulticast()
const {
return m_is_multicast; }
131 NetworkProtocol GetProtocol() {
return m_net_protocol; }
132 void SetBrxConnectEvent(
bool event) { m_brx_connect_event = event; }
133 bool GetBrxConnectEvent()
const {
return m_brx_connect_event; }
135 void SetConnectTime(wxDateTime time) { m_connect_time = time; }
136 wxDateTime GetConnectTime() {
return m_connect_time; }
138 dsPortType GetPortType()
const {
return m_io_select; }
139 wxString GetPort()
const {
return m_portstring; }
141 std::vector<unsigned char> PushFastMsgFragment(
const CanHeader& header,
143 std::vector<unsigned char> PushCompleteMsg(
const CanHeader& header,
145 const can_frame& frame);
147 void HandleCanFrameInput(
const can_frame& frame);
149 ConnectionType GetConnectionType()
const {
return m_connection_type; }
151 bool ChecksumOK(
const std::string& sentence);
152 void SetOk(
bool ok) { m_bok = ok; };
154 N2K_Format DetectFormat(
const std::vector<unsigned char>& packet);
155 bool ProcessActisense_ASCII_RAW(
const std::vector<unsigned char>& packet);
156 bool ProcessActisense_ASCII_N2K(
const std::vector<unsigned char>& packet);
157 bool ProcessActisense_N2K(
const std::vector<unsigned char>& packet);
158 bool ProcessActisense_RAW(
const std::vector<unsigned char>& packet);
159 bool ProcessActisense_NGT(
const std::vector<unsigned char>& packet);
160 bool ProcessSeaSmart(
const std::vector<unsigned char>& packet);
161 bool ProcessMiniPlex(
const std::vector<unsigned char>& packet);
163 bool SendN2KNetwork(
const std::shared_ptr<const Nmea2000Msg>& msg,
164 const std::shared_ptr<const NavAddr2000>& dest_addr);
166 std::vector<std::vector<unsigned char>> GetTxVector(
167 const std::shared_ptr<const Nmea2000Msg>& msg,
168 const std::shared_ptr<const NavAddr2000>& dest_addr);
169 bool SendSentenceNetwork(
170 const std::vector<std::vector<unsigned char>>& payload);
171 bool HandleMgntMsg(uint64_t pgn,
const std::vector<unsigned char>& payload);
173 std::vector<unsigned char> PrepareLogPayload(
174 const std::shared_ptr<const Nmea2000Msg>& msg,
175 const std::shared_ptr<const NavAddr2000>& addr);
176 void OnProdInfoTimer(wxTimerEvent& ev);
182 NetworkProtocol m_net_protocol;
183 wxIPV4address m_addr;
184 wxSocketBase* m_sock;
185 wxSocketBase* m_tsock;
186 wxSocketServer* m_socket_server;
192 std::string m_sock_buffer;
193 wxString m_portstring;
194 dsPortType m_io_select;
195 wxDateTime m_connect_time;
196 bool m_brx_connect_event;
197 bool m_bchecksumCheck;
198 ConnectionType m_connection_type;
200 wxTimer m_socket_timer;
201 wxTimer m_socketread_watchdog_timer;
204 bool m_bInMsg, m_bGotESC, m_bGotSOT;
207 unsigned char* rx_buffer;
208 std::string m_sentence;
211 N2K_Format m_n2k_format;
215 wxTimer m_prodinfo_timer;
218 obs::Listener resume_listener;
220 DECLARE_EVENT_TABLE()