24#ifndef AIS_TARGET_DATA_H_
25#define AIS_TARGET_DATA_H_
30#include <unordered_map>
32#include <wx/datetime.h>
39#define SHIP_NAME_LEN 35
40#define DESTINATION_LEN 21
41#define CALL_SIGN_LEN 8
44#define AIS_TARGETDATA_MAX_CANVAS 6
46void make_hash_ERI(
int key,
const wxString& description);
47void clear_hash_ERI(
void);
49typedef enum ais_nav_status {
50 UNDERWAY_USING_ENGINE = 0,
53 RESTRICTED_MANOEUVRABILITY,
67 ATON_VIRTUAL_ONPOSITION,
68 ATON_VIRTUAL_OFFPOSITION,
76typedef enum ais_transponder_class {
88} _ais_transponder_class;
91typedef enum ais_alert_type {
94 AIS_ALERT_NO_DIALOG_SET
105enum Ais8_001_22_AreaShapeEnum {
106 AIS8_001_22_SHAPE_ERROR = -1,
107 AIS8_001_22_SHAPE_CIRCLE = 0,
108 AIS8_001_22_SHAPE_RECT = 1,
109 AIS8_001_22_SHAPE_SECTOR = 2,
110 AIS8_001_22_SHAPE_POLYLINE = 3,
111 AIS8_001_22_SHAPE_POLYGON = 4,
112 AIS8_001_22_SHAPE_TEXT = 5,
113 AIS8_001_22_SHAPE_RESERVED_6 = 6,
114 AIS8_001_22_SHAPE_RESERVED_7 = 7
119 float longitude, latitude;
131typedef std::vector<Ais8_001_22_SubArea> Ais8_001_22_SubAreaList;
140 int duration_minutes;
141 wxDateTime start_time;
142 wxDateTime expiry_time;
143 Ais8_001_22_SubAreaList sub_areas;
147 std::function<double(
double)> get_mag;
158 wxString BuildQueryResult(
void);
159 wxString GetRolloverString(
void);
160 wxString Get_vessel_type_string(
bool b_short =
false);
161 wxString Get_class_string(
bool b_short =
false);
162 wxString GetFullName(
void);
163 wxString GetCountryCode(
bool b_CntryLongStr);
164 wxString GetNatureofDistress(
int dscnature);
165 void Toggle_AIS_CPA(
void);
166 void ToggleShowTrack(
void);
168 bool IsValidMID(
int);
172 ais_transponder_class Class;
183 char CallSign[CALL_SIGN_LEN];
184 char ShipName[SHIP_NAME_LEN];
185 char ShipNameExtension[15];
186 unsigned char ShipType;
197 char Euro_VIN[EURO_VIN_LEN];
211 char Destination[DESTINATION_LEN];
213 time_t PositionReportTicks;
214 time_t LastPositionReportTicks;
215 time_t StaticReportTicks;
221 ais_alert_type n_alert_state;
222 bool b_suppress_audio;
223 bool b_positionDoubtful;
224 bool b_positionOnceValid;
230 long dsc_NatureOfDistress;
236 bool b_mPropPersistTrack;
241 wxString m_date_string;
243 wxDateTime m_ack_time;
244 bool b_in_ack_timeout;
249 wxString MSG_14_text;
257 bool b_show_track_old;
260 std::vector<AISTargetTrackPoint> m_ptrack;
262 std::unordered_map<int, Ais8_001_22> area_notices;
263 bool b_SarAircraftPosnReport;
265 bool b_nameFromCache;
267 short last_scale[AIS_TARGETDATA_MAX_CANVAS];
290 std::shared_ptr<AisTargetData> GetTargetData() {
291 return std::make_shared<AisTargetData>(m_callbacks);
300wxString trimAISField(
char* data);
301wxString ais_get_status(
int index);
303wxString ais_get_type(
int index);
304wxString ais_get_short_type(
int index);
Meteo points are Meteorological and Hydrographic data received by NMEA0183 (AIS) VDM message 8 dac:00...
Navigation Utility Functions without GUI dependencies.