114 AisError DecodeN0183(
const wxString &str);
115 std::unordered_map<int, std::shared_ptr<AisTargetData>> &GetTargetList() {
116 return AISTargetList;
118 std::unordered_map<int, std::shared_ptr<AisTargetData>> &
119 GetAreaNoticeSourcesList() {
120 return AIS_AreaNotice_Sources;
122 std::shared_ptr<AisTargetData> Get_Target_Data_From_MMSI(
unsigned mmsi);
123 int GetNumTargets()
const {
return m_n_targets; }
124 bool IsAISSuppressed()
const {
return m_bSuppressed; }
125 bool IsAISAlertGeneral()
const {
return m_bGeneralAlert; }
126 void UpdateMMSItoNameFile(
const wxString &mmsi,
const wxString &name);
127 wxString GetMMSItoNameEntry(
const wxString &mmsi);
130 void DeletePersistentTrack(
const Track *track);
131 std::map<int, Track *> m_persistent_tracks;
132 bool AIS_AlertPlaying()
const {
return m_bAIS_AlertPlaying; };
156 void OnTimerAIS(wxTimerEvent &event);
157 void OnTimerDSC(wxTimerEvent &event);
159 bool NMEACheckSumOK(
const wxString &str);
162 void UpdateAllAlarms();
163 void UpdateAllTracks();
165 std::shared_ptr<AisTargetData> ProcessDSx(
const wxString &str,
166 bool b_take_dsc =
false);
168 void getAISTarget(
long mmsi, std::shared_ptr<AisTargetData> &pTargetData,
169 std::shared_ptr<AisTargetData> &pStaleTarget,
170 bool &bnewtarget,
int &last_report_ticks, wxDateTime &now);
171 void handleUpdate(
const std::shared_ptr<AisTargetData> &pTargetData,
172 bool bnewtarget,
const rapidjson::Value &update);
173 void updateItem(
const std::shared_ptr<AisTargetData> &pTargetData,
174 bool bnewtarget,
const rapidjson::Value &item,
175 wxString &sfixtime)
const;
176 void CommitAISTarget(
const std::shared_ptr<AisTargetData> &pTargetData,
177 const wxString &str,
bool message_valid,
179 void InitCommListeners();
180 bool HandleN0183_AIS(
const N0183MsgPtr &n0183_msg);
181 void HandleSignalK(
const SignalKMsgPtr &sK_msg);
183 bool HandleN2K_129038(
const N2000MsgPtr &n2k_msg);
184 bool HandleN2K_129039(
const N2000MsgPtr &n2k_msg);
185 bool HandleN2K_129041(
const N2000MsgPtr &n2k_msg);
186 bool HandleN2K_129794(
const N2000MsgPtr &n2k_msg);
187 bool HandleN2K_129809(
const N2000MsgPtr &n2k_msg);
188 bool HandleN2K_129810(
const N2000MsgPtr &n2k_msg);
189 bool HandleN2K_129793(
const N2000MsgPtr &n2k_msg);
191 wxString m_signalk_selfid;
192 std::unordered_map<int, std::shared_ptr<AisTargetData>> AISTargetList;
193 std::unordered_map<int, std::shared_ptr<AisTargetData>>
194 AIS_AreaNotice_Sources;
195 AIS_Target_Name_Hash *AISTargetNamesC;
196 AIS_Target_Name_Hash *AISTargetNamesNC;
218 wxFrame *m_parent_frame;
223 wxString sentence_accumulator;
226 std::shared_ptr<AisTargetData> m_pLatestTargetData;
228 bool m_bAIS_Audio_Alert_On;
229 wxTimer m_AIS_Audio_Alert_Timer;
232 bool m_bGeneralAlert;
233 std::shared_ptr<AisTargetData> m_ptentative_dsctarget;
235 wxString m_dsc_last_string;
236 std::vector<int> m_MMSI_MismatchVec;
238 bool m_bAIS_AlertPlaying;
239 DECLARE_EVENT_TABLE()