115 AisError DecodeN0183(
const wxString &str);
116 std::unordered_map<int, std::shared_ptr<AisTargetData>> &GetTargetList() {
117 return AISTargetList;
119 std::unordered_map<int, std::shared_ptr<AisTargetData>> &
120 GetAreaNoticeSourcesList() {
121 return AIS_AreaNotice_Sources;
123 std::shared_ptr<AisTargetData> Get_Target_Data_From_MMSI(
unsigned mmsi);
124 int GetNumTargets()
const {
return m_n_targets; }
125 bool IsAISSuppressed()
const {
return m_bSuppressed; }
126 bool IsAISAlertGeneral()
const {
return m_bGeneralAlert; }
127 void UpdateMMSItoNameFile(
const wxString &mmsi,
const wxString &name);
128 wxString GetMMSItoNameEntry(
const wxString &mmsi);
131 void DeletePersistentTrack(
const Track *track);
132 std::map<int, Track *> m_persistent_tracks;
133 bool AIS_AlertPlaying()
const {
return m_bAIS_AlertPlaying; };
157 void OnTimerAIS(wxTimerEvent &event);
158 void OnTimerDSC(wxTimerEvent &event);
160 bool NMEACheckSumOK(
const wxString &str);
163 void UpdateAllAlarms();
164 void UpdateAllTracks();
166 std::shared_ptr<AisTargetData> ProcessDSx(
const wxString &str,
167 bool b_take_dsc =
false);
169 void getAISTarget(
long mmsi, std::shared_ptr<AisTargetData> &pTargetData,
170 std::shared_ptr<AisTargetData> &pStaleTarget,
171 bool &bnewtarget,
int &last_report_ticks, wxDateTime &now);
172 void handleUpdate(
const std::shared_ptr<AisTargetData> &pTargetData,
173 bool bnewtarget,
const rapidjson::Value &update);
174 void updateItem(
const std::shared_ptr<AisTargetData> &pTargetData,
175 bool bnewtarget,
const rapidjson::Value &item,
176 wxString &sfixtime)
const;
177 void CommitAISTarget(
const std::shared_ptr<AisTargetData> &pTargetData,
178 const wxString &str,
bool message_valid,
180 void InitCommListeners();
181 bool HandleN0183_AIS(
const N0183MsgPtr &n0183_msg);
182 void HandleSignalK(
const SignalKMsgPtr &sK_msg);
184 bool HandleN2K_129038(
const N2000MsgPtr &n2k_msg);
185 bool HandleN2K_129039(
const N2000MsgPtr &n2k_msg);
186 bool HandleN2K_129041(
const N2000MsgPtr &n2k_msg);
187 bool HandleN2K_129794(
const N2000MsgPtr &n2k_msg);
188 bool HandleN2K_129809(
const N2000MsgPtr &n2k_msg);
189 bool HandleN2K_129810(
const N2000MsgPtr &n2k_msg);
190 bool HandleN2K_129793(
const N2000MsgPtr &n2k_msg);
192 wxString m_signalk_selfid;
193 std::unordered_map<int, std::shared_ptr<AisTargetData>> AISTargetList;
194 std::unordered_map<int, std::shared_ptr<AisTargetData>>
195 AIS_AreaNotice_Sources;
196 AIS_Target_Name_Hash *AISTargetNamesC;
197 AIS_Target_Name_Hash *AISTargetNamesNC;
219 wxFrame *m_parent_frame;
224 wxString sentence_accumulator;
227 std::shared_ptr<AisTargetData> m_pLatestTargetData;
229 bool m_bAIS_Audio_Alert_On;
230 wxTimer m_AIS_Audio_Alert_Timer;
233 bool m_bGeneralAlert;
234 std::shared_ptr<AisTargetData> m_ptentative_dsctarget;
236 wxString m_dsc_last_string;
237 std::vector<int> m_MMSI_MismatchVec;
239 bool m_bAIS_AlertPlaying;
240 DECLARE_EVENT_TABLE()