106 AisError DecodeN0183(
const wxString &str);
107 std::unordered_map<int, std::shared_ptr<AisTargetData>> &GetTargetList(
void) {
108 return AISTargetList;
110 std::unordered_map<int, std::shared_ptr<AisTargetData>> &
111 GetAreaNoticeSourcesList(
void) {
112 return AIS_AreaNotice_Sources;
114 std::shared_ptr<AisTargetData> Get_Target_Data_From_MMSI(
int mmsi);
115 int GetNumTargets(
void) {
return m_n_targets; }
116 bool IsAISSuppressed(
void) {
return m_bSuppressed; }
117 bool IsAISAlertGeneral(
void) {
return m_bGeneralAlert; }
118 void UpdateMMSItoNameFile(
const wxString &mmsi,
const wxString &name);
119 wxString GetMMSItoNameEntry(
const wxString &mmsi);
122 void DeletePersistentTrack(
Track *track);
123 std::map<int, Track *> m_persistent_tracks;
124 bool AIS_AlertPlaying(
void) {
return m_bAIS_AlertPlaying; };
148 void OnActivate(wxActivateEvent &event);
149 void OnTimerAIS(wxTimerEvent &event);
150 void OnTimerDSC(wxTimerEvent &event);
152 bool NMEACheckSumOK(
const wxString &str);
154 std::shared_ptr<AisTargetData> ptd);
155 void UpdateAllCPA(
void);
157 void UpdateAllAlarms(
void);
158 void UpdateAllTracks(
void);
160 void BuildERIShipTypeHash(
void);
161 std::shared_ptr<AisTargetData> ProcessDSx(
const wxString &str,
162 bool b_take_dsc =
false);
164 wxString DecodeDSEExpansionCharacters(wxString dseData);
165 void getAISTarget(
long mmsi, std::shared_ptr<AisTargetData> &pTargetData,
166 std::shared_ptr<AisTargetData> &pStaleTarget,
167 bool &bnewtarget,
int &last_report_ticks, wxDateTime &now);
168 void getMmsiProperties(std::shared_ptr<AisTargetData> &pTargetData);
169 void handleUpdate(std::shared_ptr<AisTargetData> pTargetData,
bool bnewtarget,
170 const rapidjson::Value &update);
171 void updateItem(std::shared_ptr<AisTargetData> pTargetData,
bool bnewtarget,
172 const rapidjson::Value &item, wxString &sfixtime)
const;
173 void CommitAISTarget(std::shared_ptr<AisTargetData> pTargetData,
174 const wxString &str,
bool message_valid,
176 void InitCommListeners(
void);
177 bool HandleN0183_AIS(std::shared_ptr<const Nmea0183Msg> n0183_msg);
178 void HandleSignalK(std::shared_ptr<const SignalkMsg> sK_msg);
180 bool HandleN2K_129038(std::shared_ptr<const Nmea2000Msg> n2k_msg);
181 bool HandleN2K_129039(std::shared_ptr<const Nmea2000Msg> n2k_msg);
182 bool HandleN2K_129041(std::shared_ptr<const Nmea2000Msg> n2k_msg);
183 bool HandleN2K_129794(std::shared_ptr<const Nmea2000Msg> n2k_msg);
184 bool HandleN2K_129809(std::shared_ptr<const Nmea2000Msg> n2k_msg);
185 bool HandleN2K_129810(std::shared_ptr<const Nmea2000Msg> n2k_msg);
186 bool HandleN2K_129793(std::shared_ptr<const Nmea2000Msg> n2k_msg);
188 wxString m_signalk_selfid;
189 std::unordered_map<int, std::shared_ptr<AisTargetData>> AISTargetList;
190 std::unordered_map<int, std::shared_ptr<AisTargetData>>
191 AIS_AreaNotice_Sources;
192 AIS_Target_Name_Hash *AISTargetNamesC;
193 AIS_Target_Name_Hash *AISTargetNamesNC;
215 wxFrame *m_parent_frame;
220 wxString sentence_accumulator;
223 std::shared_ptr<AisTargetData> m_pLatestTargetData;
225 bool m_bAIS_Audio_Alert_On;
226 wxTimer m_AIS_Audio_Alert_Timer;
229 bool m_bGeneralAlert;
230 std::shared_ptr<AisTargetData> m_ptentative_dsctarget;
232 wxString m_dsc_last_string;
233 std::vector<int> m_MMSI_MismatchVec;
235 bool m_bAIS_AlertPlaying;
236 DECLARE_EVENT_TABLE()