29#if defined(__WXMSW__) || defined(__CYGWIN__)
30#define DECL_EXP __declspec(dllexport)
31#elif defined __GNUC__ && __GNUC__ >= 4
32#define DECL_EXP __attribute__((visibility("default")))
33#elif defined __WXOSX__
34#define DECL_EXP __attribute__((visibility("default")))
40#if defined(__WXMSW__) && defined(MAKING_PLUGIN)
41#define DECL_IMP __declspec(dllimport)
46#include <wx/xml/xml.h>
47#include <wx/dcmemory.h>
50#include <wx/menuitem.h>
59#include <unordered_map>
67#define API_VERSION_MAJOR 1
68#define API_VERSION_MINOR 19
75class wxScrolledWindow;
86#define WANTS_OVERLAY_CALLBACK 0x00000001
90#define WANTS_CURSOR_LATLON 0x00000002
100#define WANTS_TOOLBAR_CALLBACK 0x00000004
106#define INSTALLS_TOOLBAR_TOOL 0x00000008
109#define WANTS_CONFIG 0x00000010
112#define INSTALLS_TOOLBOX_PAGE 0x00000020
115#define INSTALLS_CONTEXTMENU_ITEMS 0x00000040
118#define WANTS_NMEA_SENTENCES 0x00000080
122#define WANTS_NMEA_EVENTS 0x00000100
125#define WANTS_AIS_SENTENCES 0x00000200
128#define USES_AUI_MANAGER 0x00000400
131#define WANTS_PREFERENCES 0x00000800
134#define INSTALLS_PLUGIN_CHART 0x00001000
137#define WANTS_ONPAINT_VIEWPORT 0x00002000
140#define WANTS_PLUGIN_MESSAGING 0x00004000
141#define WANTS_OPENGL_OVERLAY_CALLBACK 0x00008000
142#define WANTS_DYNAMIC_OPENGL_OVERLAY_CALLBACK 0x00010000
145#define WANTS_LATE_INIT 0x00020000
148#define INSTALLS_PLUGIN_CHART_GL 0x00040000
151#define WANTS_MOUSE_EVENTS 0x00080000
154#define WANTS_VECTOR_CHART_OBJECT_INFO 0x00100000
157#define WANTS_KEYBOARD_EVENTS 0x00200000
160#define WANTS_PRESHUTDOWN_HOOK 0x00400000
167#define OVERLAY_LEGACY 0
168#define OVERLAY_OVER_SHIPS 64
169#define OVERLAY_OVER_EMBOSS 96
170#define OVERLAY_OVER_UI 128
176 PI_GLOBAL_COLOR_SCHEME_RGB,
177 PI_GLOBAL_COLOR_SCHEME_DAY,
178 PI_GLOBAL_COLOR_SCHEME_DUSK,
179 PI_GLOBAL_COLOR_SCHEME_NIGHT,
187 double view_scale_ppm;
197 int m_projection_type;
199 double lat_min, lat_max, lon_min, lon_max;
240enum plugin_ais_alarm_type {
243 PI_AIS_ALARM_ACKNOWLEDGED
260 unsigned char ShipType;
271 plugin_ais_alarm_type alarm_state;
275typedef enum ChartTypeEnumPI {
276 PI_CHART_TYPE_UNKNOWN = 0,
278 PI_CHART_TYPE_DONTCARE,
283 PI_CHART_TYPE_CM93COMP,
288typedef enum ChartFamilyEnumPI {
289 PI_CHART_FAMILY_UNKNOWN = 0,
290 PI_CHART_FAMILY_RASTER,
291 PI_CHART_FAMILY_VECTOR,
292 PI_CHART_FAMILY_DONTCARE
296typedef enum ChartDepthUnitTypePI {
297 PI_DEPTH_UNIT_UNKNOWN,
299 PI_DEPTH_UNIT_METERS,
300 PI_DEPTH_UNIT_FATHOMS
301} _ChartDepthUnitTypePI;
304typedef enum OcpnProjTypePI {
305 PI_PROJECTION_UNKNOWN,
306 PI_PROJECTION_MERCATOR,
307 PI_PROJECTION_TRANSVERSE_MERCATOR,
308 PI_PROJECTION_POLYCONIC,
310 PI_PROJECTION_ORTHOGRAPHIC,
312 PI_PROJECTION_STEREOGRAPHIC,
313 PI_PROJECTION_GNOMONIC,
314 PI_PROJECTION_EQUIRECTANGULAR
325#define PI_FULL_INIT 0
326#define PI_HEADER_ONLY 1
327#define PI_THUMB_ONLY 2
340 virtual wxString GetFileSearchMask(
void);
342 virtual int Init(
const wxString &full_path,
int init_flags);
343 virtual void SetColorScheme(
int cs,
bool bApplyImmediate);
345 virtual double GetNormalScaleMin(
double canvas_scale_factor,
346 bool b_allow_overzoom);
347 virtual double GetNormalScaleMax(
double canvas_scale_factor,
349 virtual double GetNearestPreferredScalePPM(
double target_scale_ppm);
351 virtual bool GetChartExtent(
ExtentPI *pext);
354 const wxRegion &Region);
359 wxRegion *pValidRegion);
361 virtual int GetCOVREntries() {
return 0; }
362 virtual int GetCOVRTablePoints(
int iTable) {
return 0; }
363 virtual int GetCOVRTablenPoints(
int iTable) {
return 0; }
364 virtual float *GetCOVRTableHead(
int iTable) {
return (
float *)NULL; }
366 virtual wxBitmap *GetThumbnail(
int tnx,
int tny,
int cs);
370 virtual wxString GetFullPath()
const {
return m_FullPath; }
371 virtual ChartTypeEnumPI GetChartType() {
return m_ChartType; }
372 virtual ChartFamilyEnumPI GetChartFamily() {
return m_ChartFamily; }
373 virtual OcpnProjTypePI GetChartProjection() {
return m_projection; }
374 virtual wxString GetName() {
return m_Name; }
375 virtual wxString GetDescription() {
return m_Description; }
376 virtual wxString GetID() {
return m_ID; }
377 virtual wxString GetSE() {
return m_SE; }
378 virtual wxString GetDepthUnits() {
return m_DepthUnits; }
379 virtual wxString GetSoundingsDatum() {
return m_SoundingsDatum; }
380 virtual wxString GetDatumString() {
return m_datum_str; }
381 virtual wxString GetExtraInfo() {
return m_ExtraInfo; }
382 virtual wxString GetPubDate() {
return m_PubYear; }
383 virtual double GetChartErrorFactor() {
return m_Chart_Error_Factor; }
384 virtual ChartDepthUnitTypePI GetDepthUnitId() {
return m_depth_unit_id; }
385 virtual bool IsReadyToRender() {
return m_bReadyToRender; }
386 virtual int GetNativeScale() {
return m_Chart_Scale; };
387 virtual double GetChartSkew() {
return m_Chart_Skew; }
388 virtual wxDateTime GetEditionDate(
void) {
return m_EdDate; }
392 wxRect *pSourceRect);
393 virtual double GetRasterScaleFactor();
394 virtual bool GetChartBits(wxRect &source,
unsigned char *pPix,
int sub_samp);
395 virtual int GetSize_X();
396 virtual int GetSize_Y();
397 virtual void latlong_to_chartpix(
double lat,
double lon,
double &pixx,
399 virtual void chartpix_to_latlong(
double pixx,
double pixy,
double *plat,
403 ChartTypeEnumPI m_ChartType;
404 ChartFamilyEnumPI m_ChartFamily;
407 OcpnProjTypePI m_projection;
412 bool m_bReadyToRender;
415 wxString m_Description;
418 wxString m_SoundingsDatum;
419 wxString m_datum_str;
421 wxString m_DepthUnits;
422 wxString m_ExtraInfo;
424 ChartDepthUnitTypePI m_depth_unit_id;
426 double m_Chart_Error_Factor;
453 virtual int Init(
void);
454 virtual bool DeInit(
void);
456 virtual int GetAPIVersionMajor();
457 virtual int GetAPIVersionMinor();
458 virtual int GetPlugInVersionMajor();
459 virtual int GetPlugInVersionMinor();
460 virtual wxBitmap *GetPlugInBitmap();
465 virtual wxString GetCommonName();
466 virtual wxString GetShortDescription();
467 virtual wxString GetLongDescription();
472 virtual void SetDefaults(
476 virtual int GetToolbarToolCount(
void);
478 virtual int GetToolboxPanelCount(
void);
479 virtual void SetupToolboxPanel(
int page_sel, wxNotebook *pnotebook);
480 virtual void OnCloseToolboxPanel(
int page_sel,
int ok_apply_cancel);
482 virtual void ShowPreferencesDialog(wxWindow *parent);
485 virtual void SetCursorLatLon(
double lat,
double lon);
502 virtual void SetNMEASentence(wxString &sentence);
519 virtual void SetAISSentence(wxString &sentence);
521 virtual void ProcessParentResize(
int x,
int y);
522 virtual void SetColorScheme(PI_ColorScheme cs);
524 virtual void OnToolbarToolCallback(
int id);
525 virtual void OnContextMenuItemCallback(
int id);
527 virtual void UpdateAuiStatus(
void);
529 virtual wxArrayString GetDynamicChartClassNameArray(
void);
537#pragma clang diagnostic push
538#pragma clang diagnostic ignored "-Woverloaded-virtual"
546 using opencpn_plugin::RenderOverlay;
550 virtual void SetPluginMessage(wxString &message_id, wxString &message_body);
558 using opencpn_plugin::RenderOverlay;
561 virtual bool RenderGLOverlay(wxGLContext *pcontext,
PlugIn_ViewPort *vp);
563 virtual void SetPluginMessage(wxString &message_id, wxString &message_body);
571 using opencpn_plugin::RenderOverlay;
574 virtual bool RenderGLOverlay(wxGLContext *pcontext,
PlugIn_ViewPort *vp);
575 virtual void SetPluginMessage(wxString &message_id, wxString &message_body);
580#pragma clang diagnostic pop
588 virtual void OnSetupOptions(
void);
596 virtual void LateInit(
void);
610 virtual bool MouseEventHook(wxMouseEvent &event);
611 virtual void SendVectorChartObjectInfo(wxString &chart, wxString &feature,
612 wxString &objname,
double lat,
613 double lon,
double scale,
622 virtual bool KeyboardEventHook(wxKeyEvent &event);
623 virtual void OnToolbarToolDownCallback(
int id);
624 virtual void OnToolbarToolUpCallback(
int id);
643 virtual bool RenderGLOverlayMultiCanvas(wxGLContext *pcontext,
647 virtual void PrepareContextMenu(
int canvasIndex);
657 virtual int GetPlugInVersionPatch();
660 virtual int GetPlugInVersionPost();
663 virtual const char *GetPlugInVersionPre();
666 virtual const char *GetPlugInVersionBuild();
676 using opencpn_plugin_116::RenderGLOverlayMultiCanvas;
677 using opencpn_plugin_116::RenderOverlayMultiCanvas;
688 virtual bool RenderGLOverlayMultiCanvas(wxGLContext *pcontext,
692 virtual bool RenderGLOverlayMultiCanvas(wxGLContext *pcontext,
696 bool RenderGLOverlayMultiCanvas(wxGLContext *pcontext,
PlugIn_ViewPort *vp,
697 int canvas_ix)
override {
698 return RenderGLOverlayMultiCanvas(pcontext, vp, canvas_ix, -1);
712 int canvasIndex,
int priority = -1);
715 int canvas_ix,
int priority);
717 int canvas_ix)
override {
718 return RenderOverlayMultiCanvas(dc, vp, canvas_ix, -1);
727 virtual void PreShutdownHook();
748 const wxString &wp_name,
const wxString &GUID = _T(
""));
757 wxString m_MarkDescription;
758 wxDateTime m_CreateTime;
763 Plugin_HyperlinkList *m_HyperlinkList;
773 wxString m_NameString;
774 wxString m_StartString;
775 wxString m_EndString;
778 Plugin_WaypointList *pWaypointList;
786 wxString m_NameString;
787 wxString m_StartString;
788 wxString m_EndString;
791 Plugin_WaypointList *pWaypointList;
802extern "C" DECL_EXP
int InsertPlugInTool(wxString label, wxBitmap *bitmap,
803 wxBitmap *bmpRollover, wxItemKind kind,
804 wxString shortHelp, wxString longHelp,
805 wxObject *clientData,
int position,
807extern "C" DECL_EXP
void RemovePlugInTool(
int tool_id);
808extern "C" DECL_EXP
void SetToolbarToolViz(
810extern "C" DECL_EXP
void SetToolbarItemState(
int item,
bool toggle);
811extern "C" DECL_EXP
void SetToolbarToolBitmaps(
int item, wxBitmap *bitmap,
812 wxBitmap *bmpRollover);
814extern "C" DECL_EXP
int InsertPlugInToolSVG(
815 wxString label, wxString SVGfile, wxString SVGfileRollover,
816 wxString SVGfileToggled, wxItemKind kind, wxString shortHelp,
817 wxString longHelp, wxObject *clientData,
int position,
int tool_sel,
819extern "C" DECL_EXP
void SetToolbarToolBitmapsSVG(
int item, wxString SVGfile,
820 wxString SVGfileRollover,
821 wxString SVGfileToggled);
823extern "C" DECL_EXP
int AddCanvasContextMenuItem(wxMenuItem *pitem,
825extern "C" DECL_EXP
void RemoveCanvasContextMenuItem(
827extern "C" DECL_EXP
void SetCanvasContextMenuItemViz(
829extern "C" DECL_EXP
void SetCanvasContextMenuItemGrey(
int item,
bool grey);
831extern "C" DECL_EXP wxFileConfig *GetOCPNConfigObject(
void);
833extern "C" DECL_EXP
void RequestRefresh(wxWindow *);
834extern "C" DECL_EXP
bool GetGlobalColor(wxString colorName, wxColour *pcolour);
836extern "C" DECL_EXP
void GetCanvasPixLL(
PlugIn_ViewPort *vp, wxPoint *pp,
837 double lat,
double lon);
839 double *plat,
double *plon);
841extern "C" DECL_EXP wxWindow *GetOCPNCanvasWindow();
881extern "C" DECL_EXP wxFont *
OCPNGetFont(wxString TextElement,
int default_size);
883extern "C" DECL_EXP wxString *GetpSharedDataLocation();
885extern "C" DECL_EXP ArrayOfPlugIn_AIS_Targets *GetAISTargetArray(
void);
887extern "C" DECL_EXP wxAuiManager *GetFrameAuiManager(
void);
889extern "C" DECL_EXP
bool AddLocaleCatalog(wxString catalog);
891extern "C" DECL_EXP
void PushNMEABuffer(wxString str);
893extern DECL_EXP wxXmlDocument GetChartDatabaseEntryXML(
int dbIndex,
896extern DECL_EXP
bool UpdateChartDBInplace(wxArrayString dir_array,
898 bool b_ProgressDialog);
899extern DECL_EXP wxArrayString GetChartDBDirArrayString();
901extern "C" DECL_EXP
void SendPluginMessage(wxString message_id,
902 wxString message_body);
904extern "C" DECL_EXP
void DimeWindow(wxWindow *);
906extern "C" DECL_EXP
void JumpToPosition(
double lat,
double lon,
double scale);
912extern "C" DECL_EXP
void PositionBearingDistanceMercator_Plugin(
913 double lat,
double lon,
double brg,
double dist,
double *dlat,
915extern "C" DECL_EXP
void DistanceBearingMercator_Plugin(
916 double lat0,
double lon0,
double lat1,
double lon1,
double *brg,
918extern "C" DECL_EXP
double DistGreatCircle_Plugin(
double slat,
double slon,
919 double dlat,
double dlon);
921extern "C" DECL_EXP
void toTM_Plugin(
float lat,
float lon,
float lat0,
922 float lon0,
double *x,
double *y);
923extern "C" DECL_EXP
void fromTM_Plugin(
double x,
double y,
double lat0,
924 double lon0,
double *lat,
double *lon);
925extern "C" DECL_EXP
void toSM_Plugin(
double lat,
double lon,
double lat0,
926 double lon0,
double *x,
double *y);
927extern "C" DECL_EXP
void fromSM_Plugin(
double x,
double y,
double lat0,
928 double lon0,
double *lat,
double *lon);
929extern "C" DECL_EXP
void toSM_ECC_Plugin(
double lat,
double lon,
double lat0,
930 double lon0,
double *x,
double *y);
931extern "C" DECL_EXP
void fromSM_ECC_Plugin(
double x,
double y,
double lat0,
932 double lon0,
double *lat,
935extern "C" DECL_EXP
bool DecodeSingleVDOMessage(
const wxString &str,
938extern "C" DECL_EXP
int GetChartbarHeight(
void);
939extern "C" DECL_EXP
bool GetActiveRoutepointGPX(
char *buffer,
940 unsigned int buffer_length);
943typedef enum OptionsParentPI {
944 PI_OPTIONS_PARENT_DISPLAY,
945 PI_OPTIONS_PARENT_CONNECTIONS,
946 PI_OPTIONS_PARENT_CHARTS,
947 PI_OPTIONS_PARENT_SHIPS,
948 PI_OPTIONS_PARENT_UI,
949 PI_OPTIONS_PARENT_PLUGINS
951extern DECL_EXP wxScrolledWindow *AddOptionsPage(OptionsParentPI parent,
953extern DECL_EXP
bool DeleteOptionsPage(wxScrolledWindow *page);
959extern "C" DECL_EXP
double toUsrDistance_Plugin(
double nm_distance,
961extern "C" DECL_EXP
double fromUsrDistance_Plugin(
double usr_distance,
963extern "C" DECL_EXP
double toUsrSpeed_Plugin(
double kts_speed,
int unit = -1);
964extern "C" DECL_EXP
double fromUsrSpeed_Plugin(
double usr_speed,
int unit = -1);
965extern "C" DECL_EXP
double toUsrTemp_Plugin(
double cel_temp,
int unit = -1);
966extern "C" DECL_EXP
double fromUsrTemp_Plugin(
double usr_temp,
int unit = -1);
967extern DECL_EXP wxString getUsrDistanceUnit_Plugin(
int unit = -1);
968extern DECL_EXP wxString getUsrSpeedUnit_Plugin(
int unit = -1);
969extern DECL_EXP wxString getUsrTempUnit_Plugin(
int unit = -1);
970extern DECL_EXP wxString GetNewGUID();
971extern "C" DECL_EXP
bool PlugIn_GSHHS_CrossesLand(
double lat1,
double lon1,
972 double lat2,
double lon2);
980extern DECL_EXP wxBitmap *FindSystemWaypointIcon(wxString &icon_name);
981extern DECL_EXP
bool AddCustomWaypointIcon(wxBitmap *pimage, wxString key,
982 wxString description);
985 bool b_permanent =
true);
986extern DECL_EXP
bool DeleteSingleWaypoint(wxString &GUID);
989extern DECL_EXP
bool AddPlugInRoute(
PlugIn_Route *proute,
990 bool b_permanent =
true);
991extern DECL_EXP
bool DeletePlugInRoute(wxString &GUID);
992extern DECL_EXP
bool UpdatePlugInRoute(
PlugIn_Route *proute);
994extern DECL_EXP
bool AddPlugInTrack(
PlugIn_Track *ptrack,
995 bool b_permanent =
true);
996extern DECL_EXP
bool DeletePlugInTrack(wxString &GUID);
997extern DECL_EXP
bool UpdatePlugInTrack(
PlugIn_Track *ptrack);
1003wxColour DECL_EXP GetBaseGlobalColor(wxString colorName);
1004int DECL_EXP OCPNMessageBox_PlugIn(wxWindow *parent,
const wxString &message,
1005 const wxString &caption = _T(
"Message"),
1006 int style = wxOK,
int x = -1,
int y = -1);
1008extern DECL_EXP wxString toSDMM_PlugIn(
int NEflag,
double a,
1009 bool hi_precision =
true);
1011extern "C" DECL_EXP wxString *GetpPrivateApplicationDataLocation();
1012extern DECL_EXP wxString GetOCPN_ExePath(
void);
1013extern "C" DECL_EXP wxString *GetpPlugInLocation();
1016extern "C" DECL_EXP
int AddChartToDBInPlace(wxString &full_path,
1017 bool b_RefreshCanvas);
1018extern "C" DECL_EXP
int RemoveChartFromDBInPlace(wxString &full_path);
1019extern DECL_EXP wxString GetLocaleCanonicalName();
1027#define PLIB_CAPS_LINE_VBO 1
1028#define PLIB_CAPS_LINE_BUFFER 1 << 1
1029#define PLIB_CAPS_SINGLEGEO_BUFFER 1 << 2
1030#define PLIB_CAPS_OBJSEGLIST 1 << 3
1031#define PLIB_CAPS_OBJCATMUTATE 1 << 4
1035WX_DECLARE_LIST(
PI_S57Obj, ListOfPI_S57Obj);
1047 virtual int RenderRegionViewOnGL(
const wxGLContext &glc,
1049 const wxRegion &Region,
bool b_use_stencil);
1051 virtual ListOfPI_S57Obj *GetObjRuleListAtLatLon(
float lat,
float lon,
1052 float select_radius,
1054 virtual wxString CreateObjDescriptions(ListOfPI_S57Obj *obj_list);
1056 virtual int GetNoCOVREntries();
1057 virtual int GetNoCOVRTablePoints(
int iTable);
1058 virtual int GetNoCOVRTablenPoints(
int iTable);
1059 virtual float *GetNoCOVRTableHead(
int iTable);
1072 virtual ListOfPI_S57Obj *GetLightsObjRuleListVisibleAtLatLon(
1086 virtual int RenderRegionViewOnGL(
const wxGLContext &glc,
1088 const wxRegion &Region,
bool b_use_stencil);
1090 virtual wxBitmap &RenderRegionViewOnDCNoText(
const PlugIn_ViewPort &VPoint,
1091 const wxRegion &Region);
1092 virtual bool RenderRegionViewOnDCTextOnly(wxMemoryDC &dc,
1094 const wxRegion &Region);
1096 virtual int RenderRegionViewOnGLNoText(
const wxGLContext &glc,
1098 const wxRegion &Region,
1099 bool b_use_stencil);
1101 virtual int RenderRegionViewOnGLTextOnly(
const wxGLContext &glc,
1103 const wxRegion &Region,
1104 bool b_use_stencil);
1106 virtual ListOfPI_S57Obj *GetObjRuleListAtLatLon(
float lat,
float lon,
1107 float select_radius,
1109 virtual wxString CreateObjDescriptions(ListOfPI_S57Obj *obj_list);
1111 virtual int GetNoCOVREntries();
1112 virtual int GetNoCOVRTablePoints(
int iTable);
1113 virtual int GetNoCOVRTablenPoints(
int iTable);
1114 virtual float *GetNoCOVRTableHead(
int iTable);
1116 virtual void ClearPLIBTextList();
1130 virtual ListOfPI_S57Obj *GetLightsObjRuleListVisibleAtLatLon(
1134class wxArrayOfS57attVal;
1137typedef enum _PI_LUPname {
1138 PI_SIMPLIFIED =
'L',
1139 PI_PAPER_CHART =
'R',
1141 PI_PLAIN_BOUNDARIES =
'N',
1142 PI_SYMBOLIZED_BOUNDARIES =
'O',
1147typedef enum _PI_DisCat {
1148 PI_DISPLAYBASE =
'D',
1151 PI_MARINERS_STANDARD =
'M',
1157typedef enum _PI_DisPrio {
1158 PI_PRIO_NODATA =
'0',
1159 PI_PRIO_GROUP1 =
'1',
1160 PI_PRIO_AREA_1 =
'2',
1161 PI_PRIO_AREA_2 =
'3',
1162 PI_PRIO_SYMB_POINT =
'4',
1163 PI_PRIO_SYMB_LINE =
'5',
1164 PI_PRIO_SYMB_AREA =
'6',
1165 PI_PRIO_ROUTEING =
'7',
1166 PI_PRIO_HAZARDS =
'8',
1167 PI_PRIO_MARINERS =
'9',
1172typedef enum PI_InitReturn {
1175 PI_INIT_FAIL_REMOVE,
1176 PI_INIT_FAIL_NOERROR
1201 char FeatureName[8];
1205 wxArrayOfS57attVal *attVal;
1225 double chart_ref_lat;
1226 double chart_ref_lon;
1242 int *m_lsindex_array;
1243 int m_n_edge_max_points;
1244 void *m_chart_context;
1246 PI_DisCat m_DisplayCat;
1266 bool m_bcategory_mutable;
1270wxString DECL_EXP PI_GetPLIBColorScheme();
1271int DECL_EXP PI_GetPLIBDepthUnitInt();
1272int DECL_EXP PI_GetPLIBSymbolStyle();
1273int DECL_EXP PI_GetPLIBBoundaryStyle();
1274int DECL_EXP PI_GetPLIBStateHash();
1275double DECL_EXP PI_GetPLIBMarinerSafetyContour();
1276bool DECL_EXP PI_GetObjectRenderBox(
PI_S57Obj *pObj,
double *lat_min,
1277 double *lat_max,
double *lon_min,
1279void DECL_EXP PI_UpdateContext(
PI_S57Obj *pObj);
1282PI_LUPname DECL_EXP PI_GetObjectLUPName(
PI_S57Obj *pObj);
1283PI_DisPrio DECL_EXP PI_GetObjectDisplayPriority(
PI_S57Obj *pObj);
1284PI_DisCat DECL_EXP PI_GetObjectDisplayCategory(
PI_S57Obj *pObj);
1285void DECL_EXP PI_PLIBSetLineFeaturePriority(
PI_S57Obj *pObj,
int prio);
1286void DECL_EXP PI_PLIBPrepareForNewRender(
void);
1287void DECL_EXP PI_PLIBFreeContext(
void *pContext);
1288void DECL_EXP PI_PLIBSetRenderCaps(
unsigned int flags);
1290bool DECL_EXP PI_PLIBSetContext(
PI_S57Obj *pObj);
1292int DECL_EXP PI_PLIBRenderObjectToDC(wxDC *pdc,
PI_S57Obj *pObj,
1294int DECL_EXP PI_PLIBRenderAreaToDC(wxDC *pdc,
PI_S57Obj *pObj,
1296 unsigned char *pixbuf);
1298int DECL_EXP PI_PLIBRenderAreaToGL(
const wxGLContext &glcc,
PI_S57Obj *pObj,
1301int DECL_EXP PI_PLIBRenderObjectToGL(
const wxGLContext &glcc,
PI_S57Obj *pObj,
1332 float lat = 0,
float lon = 0);
1333extern DECL_EXP
void PlugInNormalizeViewport(
PlugIn_ViewPort *vp,
float lat = 0,
1336class wxPoint2DDouble;
1338 wxPoint2DDouble *pp,
double lat,
1345extern DECL_EXP
double fromDMM_Plugin(wxString sdms);
1346extern DECL_EXP
void SetCanvasRotation(
double rotation);
1347extern DECL_EXP
void SetCanvasProjection(
int projection);
1348extern DECL_EXP
bool GetSingleWaypoint(wxString GUID,
1350extern DECL_EXP
bool CheckEdgePan_PlugIn(
int x,
int y,
bool dragging,
1351 int margin,
int delta);
1352extern DECL_EXP wxBitmap GetIcon_PlugIn(
const wxString &name);
1353extern DECL_EXP
void SetCursor_PlugIn(wxCursor *pPlugin_Cursor = NULL);
1389extern DECL_EXP wxFont *GetOCPNScaledFont_PlugIn(wxString TextElement,
1390 int default_size = 0);
1405extern DECL_EXP
double GetOCPNGUIToolScaleFactor_PlugIn(
int GUIScaledFactor);
1406extern DECL_EXP
double GetOCPNGUIToolScaleFactor_PlugIn();
1407extern DECL_EXP
float GetOCPNChartScaleFactor_Plugin();
1417extern DECL_EXP
double GetCanvasTilt();
1418extern DECL_EXP
void SetCanvasTilt(
double tilt);
1426 int deviceIndex = -1);
1427extern DECL_EXP
void AddChartDirectory(wxString &path);
1428extern DECL_EXP
void ForceChartDBUpdate();
1429extern DECL_EXP
void ForceChartDBRebuild();
1431extern DECL_EXP wxString GetWritableDocumentsDir(
void);
1432extern DECL_EXP wxDialog *GetActiveOptionsDialog();
1433extern DECL_EXP wxArrayString GetWaypointGUIDArray(
void);
1434extern DECL_EXP wxArrayString GetIconNameArray(
void);
1447extern DECL_EXP wxString GetActiveStyleName();
1449extern DECL_EXP wxBitmap GetBitmapFromSVGFile(wxString filename,
1451 unsigned int height);
1452extern DECL_EXP
bool IsTouchInterface_PlugIn(
void);
1455extern DECL_EXP
int PlatformDirSelectorDialog(wxWindow *parent,
1456 wxString *file_spec,
1457 wxString Title, wxString initDir);
1459extern DECL_EXP
int PlatformFileSelectorDialog(wxWindow *parent,
1460 wxString *file_spec,
1461 wxString Title, wxString initDir,
1462 wxString suggestedName,
1468typedef enum _OCPN_DLStatus {
1469 OCPN_DL_UNKNOWN = -1,
1470 OCPN_DL_NO_ERROR = 0,
1472 OCPN_DL_ABORTED = 2,
1473 OCPN_DL_USER_TIMEOUT = 4,
1477typedef enum _OCPN_DLCondition {
1478 OCPN_DL_EVENT_TYPE_UNKNOWN = -1,
1479 OCPN_DL_EVENT_TYPE_START = 80,
1480 OCPN_DL_EVENT_TYPE_PROGRESS = 81,
1481 OCPN_DL_EVENT_TYPE_END = 82
1514 OCPN_DLDS_CONN_SETTINGS_ALL,
1530#define ONLINE_CHECK_RETRY \
1535extern DECL_EXP _OCPN_DLStatus OCPN_downloadFile(
1536 const wxString &url,
const wxString &outputFile,
const wxString &title,
1537 const wxString &message,
const wxBitmap &bitmap, wxWindow *parent,
1538 long style,
int timeout_secs);
1542extern DECL_EXP _OCPN_DLStatus
1543OCPN_downloadFileBackground(
const wxString &url,
const wxString &outputFile,
1544 wxEvtHandler *handler,
long *handle);
1546extern DECL_EXP
void OCPN_cancelDownloadFileBackground(
long handle);
1550extern DECL_EXP _OCPN_DLStatus OCPN_postDataHttp(
const wxString &url,
1551 const wxString ¶meters,
1557extern DECL_EXP
bool OCPN_isOnline();
1581 _OCPN_DLStatus getDLEventStatus() {
return m_stat; }
1582 OCPN_DLCondition getDLEventCondition() {
return m_condition; }
1584 void setDLEventStatus(_OCPN_DLStatus stat) { m_stat = stat; }
1585 void setDLEventCondition(OCPN_DLCondition cond) { m_condition = cond; }
1587 void setTotal(
long bytes) { m_totalBytes = bytes; }
1588 void setTransferred(
long bytes) { m_sofarBytes = bytes; }
1589 long getTotal() {
return m_totalBytes; }
1590 long getTransferred() {
return m_sofarBytes; }
1592 void setComplete(
bool b_complete) { m_b_complete = b_complete; }
1593 bool getComplete() {
return m_b_complete; }
1596 wxEvent *Clone()
const;
1599 OCPN_DLStatus m_stat;
1600 OCPN_DLCondition m_condition;
1610extern DECL_IMP wxEventType wxEVT_DOWNLOAD_EVENT;
1612extern DECL_EXP wxEventType wxEVT_DOWNLOAD_EVENT;
1619bool LaunchDefaultBrowser_Plugin(wxString url);
1624extern DECL_EXP
void PlugInAISDrawGL(wxGLCanvas *glcanvas,
1636 const wxColour color);
1639extern DECL_EXP
double PlugInGetDisplaySizeMM();
1654 int point_size, wxFontFamily family, wxFontStyle style, wxFontWeight weight,
1655 bool underline =
false,
const wxString &facename = wxEmptyString,
1656 wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
1658extern DECL_EXP
int PlugInGetMinAvailableGshhgQuality();
1659extern DECL_EXP
int PlugInGetMaxAvailableGshhgQuality();
1661extern DECL_EXP
void PlugInHandleAutopilotRoute(
bool enable);
1682extern DECL_EXP
bool ShuttingDown(
void);
1686extern DECL_EXP wxWindow *PluginGetFocusCanvas();
1687extern DECL_EXP wxWindow *PluginGetOverlayRenderCanvas();
1689extern "C" DECL_EXP
void CanvasJumpToPosition(wxWindow *canvas,
double lat,
1690 double lon,
double scale);
1691extern "C" DECL_EXP
int AddCanvasMenuItem(wxMenuItem *pitem,
1693 const char *name =
"");
1694extern "C" DECL_EXP
void RemoveCanvasMenuItem(
1695 int item,
const char *name =
"");
1696extern "C" DECL_EXP
void SetCanvasMenuItemViz(
1698 const char *name =
"");
1699extern "C" DECL_EXP
void SetCanvasMenuItemGrey(
int item,
bool grey,
1700 const char *name =
"");
1703extern DECL_EXP wxString GetSelectedWaypointGUID_Plugin();
1704extern DECL_EXP wxString GetSelectedRouteGUID_Plugin();
1705extern DECL_EXP wxString GetSelectedTrackGUID_Plugin();
1707extern DECL_EXP std::unique_ptr<PlugIn_Waypoint> GetWaypoint_Plugin(
1709extern DECL_EXP std::unique_ptr<PlugIn_Route> GetRoute_Plugin(
const wxString &);
1710extern DECL_EXP std::unique_ptr<PlugIn_Track> GetTrack_Plugin(
const wxString &);
1712extern DECL_EXP wxWindow *GetCanvasUnderMouse();
1713extern DECL_EXP
int GetCanvasIndexUnderMouse();
1715extern DECL_EXP wxWindow *GetCanvasByIndex(
int canvasIndex);
1716extern DECL_EXP
int GetCanvasCount();
1717extern DECL_EXP
bool CheckMUIEdgePan_PlugIn(
int x,
int y,
bool dragging,
1718 int margin,
int delta,
1720extern DECL_EXP
void SetMUICursor_PlugIn(wxCursor *pCursor,
int canvasIndex);
1724extern DECL_EXP wxRect GetMasterToolbarRect();
1727 DEGREES_DECIMAL_MINUTES = 0,
1729 DEGREES_MINUTES_SECONDS,
1733extern DECL_EXP
int GetLatLonFormat(
void);
1736extern "C" DECL_EXP
void ZeroXTE();
1743 const wxString &wp_name,
const wxString &GUID =
"",
1744 const double ScaMin = 1e9,
const bool bNameVisible =
false,
1745 const int nRanges = 0,
const double RangeDistance = 1.0,
1746 const wxColor RangeColor = wxColor(255, 0, 0));
1748 void InitDefaults();
1756 int GetRouteMembershipCount();
1764 wxString m_MarkName;
1765 wxString m_MarkDescription;
1766 wxDateTime m_CreateTime;
1774 double RangeRingSpace;
1775 wxColour RangeRingColor;
1778 wxString IconDescription;
1780 Plugin_HyperlinkList *m_HyperlinkList;
1790 wxString m_NameString;
1791 wxString m_StartString;
1792 wxString m_EndString;
1796 wxString m_Description;
1798 Plugin_WaypointExList *pWaypointList;
1801extern DECL_EXP wxArrayString GetRouteGUIDArray(
void);
1802extern DECL_EXP wxArrayString GetTrackGUIDArray(
void);
1804extern DECL_EXP
bool GetSingleWaypointEx(wxString GUID,
1808 bool b_permanent =
true);
1812 bool b_permanent =
true);
1815extern DECL_EXP std::unique_ptr<PlugIn_Waypoint_Ex> GetWaypointEx_Plugin(
1817extern DECL_EXP std::unique_ptr<PlugIn_Route_Ex> GetRouteEx_Plugin(
1820extern DECL_EXP wxString
1821GetActiveWaypointGUID(
void);
1822extern DECL_EXP wxString
1823GetActiveRouteGUID(
void);
1828extern DECL_EXP
double OCPN_GetDisplayContentScaleFactor();
1831extern DECL_EXP
double OCPN_GetWinDIPScaleFactor();
1835extern DECL_EXP std::vector<std::string> GetActivePriorityIdentifiers();
1839typedef enum _OBJECT_LAYER_REQ {
1846extern DECL_EXP wxArrayString GetRouteGUIDArray(OBJECT_LAYER_REQ req);
1847extern DECL_EXP wxArrayString GetTrackGUIDArray(OBJECT_LAYER_REQ req);
1848extern DECL_EXP wxArrayString GetWaypointGUIDArray(OBJECT_LAYER_REQ req);
1859#ifndef OBSERVABLE_EVT_H
1860#define OBSERVABLE_EVT_H
1867 ObservedEvt(wxEventType commandType = obsNOTIFY,
int id = 0)
1868 : wxCommandEvent(commandType,
id) {}
1870 this->m_shared_ptr =
event.m_shared_ptr;
1873 wxEvent *Clone()
const {
return new ObservedEvt(*
this); }
1875 std::shared_ptr<const void> GetSharedPtr()
const {
return m_shared_ptr; }
1877 void SetSharedPtr(std::shared_ptr<const void> p) { m_shared_ptr = p; }
1880 std::shared_ptr<const void> m_shared_ptr;
1890 NMEA2000Id(
int value) : id(
static_cast<uint64_t
>(value)) {};
1893extern DECL_EXP std::shared_ptr<ObservableListener> GetListener(
1894 NMEA2000Id id, wxEventType ev, wxEvtHandler *handler);
1898 const std::string id;
1902extern DECL_EXP std::shared_ptr<ObservableListener> GetListener(
1903 NMEA0183Id id, wxEventType ev, wxEvtHandler *handler);
1907 const std::string id;
1908 SignalkId(
const std::string &s) : id(s) {};
1911extern DECL_EXP std::shared_ptr<ObservableListener> GetListener(
1912 SignalkId id, wxEventType ev, wxEvtHandler *handler);
1965extern DECL_EXP std::shared_ptr<ObservableListener> GetListener(
1966 NavDataId id, wxEventType ev, wxEvtHandler *handler);
2010 RESULT_COMM_NO_ERROR = 0,
2011 RESULT_COMM_INVALID_HANDLE,
2012 RESULT_COMM_INVALID_PARMS,
2013 RESULT_COMM_TX_ERROR,
2014 RESULT_COMM_REGISTER_GATEWAY_ERROR,
2015 RESULT_COMM_REGISTER_PGN_ERROR
2035extern DECL_EXP
const std::unordered_map<std::string, std::string>
2049 DriverHandle handle,
const std::shared_ptr<std::vector<uint8_t>> &payload);
2053 DriverHandle handle,
int PGN,
int destinationCANAddress,
int priority,
2054 const std::shared_ptr<std::vector<uint8_t>> &payload);
2099 std::vector<int> &pgn_list);
2105typedef enum _PI_NavMode {
2106 PI_NORTH_UP_MODE = 0,
2113 const std::string id;
2121extern DECL_EXP std::shared_ptr<ObservableListener> GetListener(
2122 PluginMsgId id, wxEventType ev, wxEvtHandler *handler);
2131extern DECL_EXP
void ExitOCPN();
2133extern "C" DECL_EXP
void RequestWindowRefresh(wxWindow *win,
2134 bool eraseBackground);
2136extern DECL_EXP
bool GetFullScreen();
2137extern DECL_EXP
void SetFullScreen(
bool full_screen_on);
2139extern DECL_EXP
void EnableTouchMode(
bool enable);
2140extern DECL_EXP
bool GetTouchMode();
2142extern DECL_EXP
void SetGlobalColor(std::string table, std::string name,
2144extern DECL_EXP wxColor GetGlobalColorD(std::string map_name, std::string name);
2146extern DECL_EXP
void EnableStatusBar(
bool enable);
2147extern DECL_EXP
void EnableMenu(
bool enable);
2148extern DECL_EXP
bool GetEnableStatusBar();
2149extern DECL_EXP
bool GetEnableMenu();
2151extern DECL_EXP
void SetNavigationMode(PI_NavMode mode,
int CanvasIndex);
2152extern DECL_EXP PI_NavMode GetNavigationMode(
int CanvasIndex);
2153extern DECL_EXP
void EnableLookaheadMode(
bool enable,
int CanvasIndex);
2154extern DECL_EXP
bool GetEnableLookaheadMode(
int CanvasIndex);
2156extern DECL_EXP
void EnableMUIBar(
bool enable,
int CanvasIndex);
2157extern DECL_EXP
void EnableCompassGPSIcon(
bool enable,
int CanvasIndex);
2158extern DECL_EXP
void EnableChartBar(
bool enable,
int CanvasIndex);
2159extern DECL_EXP
bool GetEnableMUIBar(
int CanvasIndex);
2160extern DECL_EXP
bool GetEnableCompassGPSIcon(
int CanvasIndex);
2161extern DECL_EXP
bool GetEnableChartBar(
int CanvasIndex);
2163extern DECL_EXP
void EnableCanvasFocusBar(
bool enable,
int CanvasIndex);
2164extern DECL_EXP
bool GetEnableCanvasFocusBar(
int CanvasIndex);
2170extern DECL_EXP
void EnableLatLonGrid(
bool enable,
int CanvasIndex);
2171extern DECL_EXP
void EnableChartOutlines(
bool enable,
int CanvasIndex);
2172extern DECL_EXP
void EnableDepthUnitDisplay(
bool enable,
int CanvasIndex);
2173extern DECL_EXP
void EnableAisTargetDisplay(
bool enable,
int CanvasIndex);
2174extern DECL_EXP
void EnableTideStationsDisplay(
bool enable,
int CanvasIndex);
2175extern DECL_EXP
void EnableCurrentStationsDisplay(
bool enable,
int CanvasIndex);
2176extern DECL_EXP
void EnableENCTextDisplay(
bool enable,
int CanvasIndex);
2177extern DECL_EXP
void EnableENCDepthSoundingsDisplay(
bool enable,
2179extern DECL_EXP
void EnableBuoyLightLabelsDisplay(
bool enable,
int CanvasIndex);
2180extern DECL_EXP
void EnableLightsDisplay(
bool enable,
int CanvasIndex);
2181extern DECL_EXP
void EnableLightDescriptionsDisplay(
bool enable,
2183extern DECL_EXP
void SetENCDisplayCategory(PI_DisCat cat,
int CanvasIndex);
2185extern DECL_EXP
bool GetEnableLatLonGrid(
int CanvasIndex);
2186extern DECL_EXP
bool GetEnableChartOutlines(
int CanvasIndex);
2187extern DECL_EXP
bool GetEnableDepthUnitDisplay(
int CanvasIndex);
2188extern DECL_EXP
bool GetEnableAisTargetDisplay(
int CanvasIndex);
2189extern DECL_EXP
bool GetEnableTideStationsDisplay(
int CanvasIndex);
2190extern DECL_EXP
bool GetEnableCurrentStationsDisplay(
int CanvasIndex);
2191extern DECL_EXP
bool GetEnableENCTextDisplay(
int CanvasIndex);
2192extern DECL_EXP
bool GetEnableENCDepthSoundingsDisplay(
int CanvasIndex);
2193extern DECL_EXP
bool GetEnableBuoyLightLabelsDisplay(
int CanvasIndex);
2194extern DECL_EXP
bool GetEnableLightsDisplay(
int CanvasIndex);
2195extern DECL_EXP
bool GetEnableLightDescriptionsDisplay(
int CanvasIndex);
2196extern DECL_EXP PI_DisCat GetENCDisplayCategory(
int CanvasIndex);
2198extern DECL_EXP
void PluginSetFollowMode(
int CanvasIndex,
bool enable_follow);
2199extern DECL_EXP
bool PluginGetFollowMode(
int CanvasIndex);
2201extern DECL_EXP
void SetTrackingMode(
bool enable);
2202extern DECL_EXP
bool GetTrackingMode();
2204extern DECL_EXP
void SetAppColorScheme(PI_ColorScheme cs);
2205extern DECL_EXP PI_ColorScheme GetAppColorScheme();
2208extern DECL_EXP
void EnableSplitScreenLayout(
bool enable =
true);
2212extern DECL_EXP
void PluginZoomCanvas(
int CanvasIndex,
double factor);
2214extern DECL_EXP
bool GetEnableMainToolbar();
2215extern DECL_EXP
void SetEnableMainToolbar(
bool enable);
2217extern DECL_EXP
void ShowGlobalSettingsDialog();
2219extern DECL_EXP
void PluginCenterOwnship(
int CanvasIndex);
2221extern DECL_EXP
bool GetEnableTenHertzUpdate();
2222extern DECL_EXP
void EnableTenHertzUpdate(
bool enable);
2224extern DECL_EXP
void ConfigFlushAndReload();
Keeps listening over it's lifespan, removes itself on destruction.
Adds a std::shared<void> element to wxCommandEvent.
DECL_EXP CommDriverResult WriteCommDriverN2K(DriverHandle handle, int PGN, int destinationCANAddress, int priority, const std::shared_ptr< std::vector< uint8_t > > &payload)
Send a PGN message to an NMEA2000 address.
DECL_EXP wxFont GetOCPNGUIScaledFont_PlugIn(wxString item)
Gets a uniquely scaled font copy for responsive UI elements.
CommDriverResult
Error return values
DECL_EXP std::string GetN2000Source(NMEA2000Id id, ObservedEvt ev)
Return source identifier (iface) of a received n2000 message of type id in ev.
DECL_EXP std::shared_ptr< void > GetSignalkPayload(ObservedEvt ev)
Get SignalK status payload after receiving a message.
@ OCPN_DLDS_CONN_SETTINGS_AUTH
The dialog allows the user to change the authentication settings.
@ OCPN_DLDS_CAN_START
The transfer won't start automatically.
@ OCPN_DLDS_URL
The dialog shows the URL involved in the transfer.
@ OCPN_DLDS_AUTO_CLOSE
The dialog auto closes when transfer is complete.
@ OCPN_DLDS_CAN_ABORT
The transfer can be aborted by the user.
@ OCPN_DLDS_ESTIMATED_TIME
The dialog shows the estimated total time.
@ OCPN_DLDS_SIZE
The dialog shows the size of the resource to download/upload.
@ OCPN_DLDS_CONN_SETTINGS_PROXY
The dialog allows the user to change the proxy settings.
@ OCPN_DLDS_REMAINING_TIME
The dialog shows the remaining time.
@ OCPN_DLDS_SPEED
The dialog shows the transfer speed.
@ OCPN_DLDS_ELAPSED_TIME
The dialog shows the elapsed time.
@ OCPN_DLDS_CAN_PAUSE
The transfer can be paused.
@ OCPN_DLDS_CONN_SETTINGS_PORT
The dialog allows the user to change the port for the transfer.
DECL_EXP bool PlugInSetFontColor(const wxString TextElement, const wxColour color)
Sets text color for a UI element.
DECL_EXP CommDriverResult WriteCommDriver(DriverHandle handle, const std::shared_ptr< std::vector< uint8_t > > &payload)
Send a non-NMEA2000 message.
DECL_EXP std::string GetN0183Payload(NMEA0183Id id, ObservedEvt ev)
Return payload in a received n0183 message of type id in ev.
std::string DriverHandle
Plugin API supporting direct access to comm drivers for output purposes.
DECL_EXP bool AddPersistentFontKey(wxString TextElement)
Registers a new font configuration element.
DECL_EXP PluginNavdata GetEventNavdata(ObservedEvt ev)
Return BasicNavDataMsg decoded data available in ev.
DECL_EXP int GetGlobalWatchdogTimoutSeconds()
Comm Global Watchdog Query
DECL_EXP std::vector< uint8_t > GetN2000Payload(NMEA2000Id id, ObservedEvt ev)
Return N2K payload for a received n2000 message of type id in ev.
DECL_EXP wxColour GetFontColour_PlugIn(wxString TextElement)
Gets color configured for a UI text element.
DECL_EXP wxFont * FindOrCreateFont_PlugIn(int point_size, wxFontFamily family, wxFontStyle style, wxFontWeight weight, bool underline=false, const wxString &facename=wxEmptyString, wxFontEncoding encoding=wxFONTENCODING_DEFAULT)
Creates or finds a font in the font cache.
DECL_EXP bool PlugInPlaySoundEx(wxString &sound_file, int deviceIndex=-1)
Start playing a sound file asynchronously.
DECL_EXP const std::unordered_map< std::string, std::string > GetAttributes(DriverHandle handle)
Query a specific driver for attributes
DECL_EXP std::vector< DriverHandle > GetActiveDrivers()
Query OCPN core for a list of active drivers
enum CommDriverResult _CommDriverResult
Error return values
DECL_EXP std::string GetPluginMsgPayload(PluginMsgId id, ObservedEvt ev)
Retrieve the string in a plugin message, internal or received on the REST insterface.
DECL_EXP void PlugInPlaySound(wxString &sound_file)
Start playing a sound file asynchronously.
DECL_EXP std::vector< std::string > GetPriorityMaps()
Comm Priority query support methods
DECL_EXP CommDriverResult RegisterTXPGNs(DriverHandle handle, std::vector< int > &pgn_list)
Register PGNs that this application intends to transmit for some NMEA 2000 adapters like Actisense NG...
DECL_EXP wxString GetPluginDataDir(const char *plugin_name)
Return the plugin data directory for a given directory name.
DECL_EXP wxFont * OCPNGetFont(wxString TextElement, int default_size)
Gets a font for UI elements.
Facade for BasicNavDataMsg.
Facade for NavAddrPluginMsg.
Available decoded data for plugins.
Facade for NavAddrSignalK.