117 AisError DecodeN0183(
const wxString &str);
118 std::unordered_map<int, std::shared_ptr<AisTargetData>> &GetTargetList() {
119 return AISTargetList;
121 std::unordered_map<int, std::shared_ptr<AisTargetData>> &
122 GetAreaNoticeSourcesList() {
123 return AIS_AreaNotice_Sources;
125 std::shared_ptr<AisTargetData> Get_Target_Data_From_MMSI(
unsigned mmsi);
126 int GetNumTargets()
const {
return m_n_targets; }
127 bool IsAISSuppressed()
const {
return m_bSuppressed; }
128 bool IsAISAlertGeneral()
const {
return m_bGeneralAlert; }
129 void UpdateMMSItoNameFile(
const wxString &mmsi,
const wxString &name);
130 wxString GetMMSItoNameEntry(
const wxString &mmsi);
133 void DeletePersistentTrack(
const Track *track);
134 std::map<int, Track *> m_persistent_tracks;
135 bool AIS_AlertPlaying()
const {
return m_bAIS_AlertPlaying; };
159 void OnTimerAIS(wxTimerEvent &event);
160 void OnTimerDSC(wxTimerEvent &event);
162 bool NMEACheckSumOK(
const wxString &str);
165 void UpdateAllAlarms();
166 void UpdateAllTracks();
168 std::shared_ptr<AisTargetData> ProcessDSx(
const wxString &str,
169 bool b_take_dsc =
false);
171 void getAISTarget(
long mmsi, std::shared_ptr<AisTargetData> &pTargetData,
172 std::shared_ptr<AisTargetData> &pStaleTarget,
173 bool &bnewtarget,
int &last_report_ticks, wxDateTime &now);
174 void handleUpdate(
const std::shared_ptr<AisTargetData> &pTargetData,
175 bool bnewtarget,
const rapidjson::Value &update);
176 void updateItem(
const std::shared_ptr<AisTargetData> &pTargetData,
177 bool bnewtarget,
const rapidjson::Value &item,
178 wxString &sfixtime)
const;
179 void CommitAISTarget(
const std::shared_ptr<AisTargetData> &pTargetData,
180 const wxString &str,
bool message_valid,
182 void InitCommListeners();
183 bool HandleN0183_AIS(
const N0183MsgPtr &n0183_msg);
184 void HandleSignalK(
const SignalKMsgPtr &sK_msg);
186 bool HandleN2K_129038(
const N2000MsgPtr &n2k_msg);
187 bool HandleN2K_129039(
const N2000MsgPtr &n2k_msg);
188 bool HandleN2K_129041(
const N2000MsgPtr &n2k_msg);
189 bool HandleN2K_129794(
const N2000MsgPtr &n2k_msg);
190 bool HandleN2K_129809(
const N2000MsgPtr &n2k_msg);
191 bool HandleN2K_129810(
const N2000MsgPtr &n2k_msg);
192 bool HandleN2K_129793(
const N2000MsgPtr &n2k_msg);
194 wxString m_signalk_selfid;
195 std::unordered_map<int, std::shared_ptr<AisTargetData>> AISTargetList;
196 std::unordered_map<int, std::shared_ptr<AisTargetData>>
197 AIS_AreaNotice_Sources;
198 AIS_Target_Name_Hash *AISTargetNamesC;
199 AIS_Target_Name_Hash *AISTargetNamesNC;
201 ObservableListener listener_N0183_VDM;
202 ObservableListener listener_N0183_FRPOS;
203 ObservableListener listener_N0183_CDDSC;
204 ObservableListener listener_N0183_CDDSE;
205 ObservableListener listener_N0183_TLL;
206 ObservableListener listener_N0183_TTM;
207 ObservableListener listener_N0183_OSD;
208 ObservableListener listener_N0183_WPL;
209 ObservableListener listener_SignalK;
211 ObservableListener listener_N2K_129038;
212 ObservableListener listener_N2K_129039;
213 ObservableListener listener_N2K_129041;
214 ObservableListener listener_N2K_129794;
215 ObservableListener listener_N2K_129809;
216 ObservableListener listener_N2K_129810;
217 ObservableListener listener_N2K_129793;
221 wxFrame *m_parent_frame;
226 wxString sentence_accumulator;
229 std::shared_ptr<AisTargetData> m_pLatestTargetData;
231 bool m_bAIS_Audio_Alert_On;
232 wxTimer m_AIS_Audio_Alert_Timer;
235 bool m_bGeneralAlert;
236 std::shared_ptr<AisTargetData> m_ptentative_dsctarget;
238 wxString m_dsc_last_string;
239 std::vector<int> m_MMSI_MismatchVec;
241 bool m_bAIS_AlertPlaying;
242 DECLARE_EVENT_TABLE()