26#ifndef _NAVUTIL_BASE__
27#define _NAVUTIL_BASE__
29#include <wx/datetime.h>
33#include "model/config_vars.h"
35enum { SPEED_KTS = 0, SPEED_MPH, SPEED_KMH, SPEED_MS };
36enum { WSPEED_KTS = 0, WSPEED_MS, WSPEED_MPH, WSPEED_KMH };
37enum { DEPTH_FT = 0, DEPTH_M, DEPTH_FA };
38enum { TEMPERATURE_C = 0, TEMPERATURE_F = 1, TEMPERATURE_K = 2 };
53 static wxString GetUUID(
void);
54 static void SeedRandom();
57 static int GetRandomNumber(
int min,
int max);
60extern wxString toSDMM(
int NEflag,
double a,
bool hi_precision =
true);
61extern double toUsrSpeed(
double kts_speed,
int unit = -1);
62extern double toUsrWindSpeed(
double kts_speed,
int unit = -1);
63extern wxString getUsrSpeedUnit(
int unit = -1);
64extern wxString getUsrWindSpeedUnit(
int unit = -1);
65extern wxString getUsrTempUnit(
int unit = -1);
66extern wxString FormatDistanceAdaptive(
double distance);
67extern double toUsrTemp(
double cel_temp,
int unit = -1);
69extern double toUsrDistance(
double nm_distance,
int unit = -1);
70extern wxString getUsrDistanceUnit(
int unit = -1);
71extern double fromUsrDistance(
double usr_distance,
int unit,
int default_val);
72extern double fromUsrSpeed(
double usr_speed,
int unit,
int default_val);
74extern double toUsrDepth(
double cel_depth,
int unit = -1);
75extern double fromUsrDepth(
double usr_depth,
int unit = -1);
76extern wxString getUsrDepthUnit(
int unit = -1);
78const wxChar *ParseGPXDateTime(wxDateTime &dt,
const wxChar *datetime);
80extern wxString formatTimeDelta(wxTimeSpan span);
81extern wxString formatTimeDelta(wxDateTime startTime, wxDateTime endTime);
82extern wxString formatTimeDelta(wxLongLong secs);
84extern double fromDMM(wxString sdms);
86extern double toMagnetic(
double deg_true);
87extern double toMagnetic(
double deg_true,
double variation);