TacticsInstrument_Compass::TacticsInstrument_Compass( wxWindow *parent, wxWindowID id, wxString title, int cap_flag) : TacticsInstrument_Dial( parent, id, title, cap_flag, 0, 360, 0, 360) { SetOptionMarker(5, DIAL_MARKER_SIMPLE, 2); SetOptionLabel(20, DIAL_LABEL_ROTATED); SetOptionMainValue( _T("%.0f"), DIAL_POSITION_INSIDE); }
TacticsInstrument_WindCompass::TacticsInstrument_WindCompass( wxWindow *parent, wxWindowID id, wxString title, int cap_flag ) : TacticsInstrument_Dial( parent, id, title, cap_flag, 0, 360, 0, 360 ) { SetOptionMarker(5, DIAL_MARKER_SIMPLE, 2); wxString labels[] = {_("N"), _("NE"), _("E"), _("SE"), _("S"), _("SW"), _("W"), _("NW")}; SetOptionLabel(45, DIAL_LABEL_HORIZONTAL, wxArrayString(8, labels)); }
TacticsInstrument_TrueWindAngle::TacticsInstrument_TrueWindAngle( wxWindow *parent, wxWindowID id, wxString title, int cap_flag) : TacticsInstrument_Dial( parent, id, title, cap_flag, 0, 360, 0, 360) { SetOptionMarker(10, DIAL_MARKER_REDGREENBAR, 3); // Labels are set static because we've no logic to display them this way wxString labels[] = {_T(""), _T("30"), _T("60"), _T("90"), _T("120"), _T("150"), _T(""), _T("150"), _T("120"), _T("90"), _T("60"), _T("30")}; SetOptionLabel(30, DIAL_LABEL_HORIZONTAL, wxArrayString(12, labels)); }
DashboardInstrument_Compass::DashboardInstrument_Compass( wxWindow *parent, wxWindowID id, wxString title, int cap_flag) : DashboardInstrument_Dial( parent, id, title, cap_flag, 0, 360, 0, 360) { SetOptionMarker(5, DIAL_MARKER_SIMPLE, 2); SetOptionLabel(20, DIAL_LABEL_ROTATED); SetOptionMainValue(_T("%5.0f Deg"), DIAL_POSITION_TOPRIGHT); SetInstrumentWidth(200); }
DashboardInstrument_RudderAngle::DashboardInstrument_RudderAngle( wxWindow *parent, wxWindowID id, wxString title) : DashboardInstrument_Dial( parent, id, title, OCPN_DBP_STC_RSA, 100, 160, -40, +40) { // Default Rudder position is centered m_MainValue = 0; //SetOptionMainValue(_T("%3.0f Deg"), DIAL_POSITION_BOTTOMLEFT); SetOptionMarker(5, DIAL_MARKER_REDGREEN, 2); // Labels are set static because we've no logic to display them this way wxString labels[] = {_T("40"), _T("30"), _T("20"), _T("10"), _T("0"), _T("10"), _T("20"), _T("30"), _T("40")}; SetOptionLabel(10, DIAL_LABEL_HORIZONTAL, wxArrayString(9, labels)); // SetOptionExtraValue(_T("%02.0f"), DIAL_POSITION_INSIDE); }
TacticsInstrument_BearingCompass::TacticsInstrument_BearingCompass(wxWindow *parent, wxWindowID id, wxString title, int cap_flag) : TacticsInstrument_Dial(parent, id, title, cap_flag, 0, 360, 0, 360) { SetOptionMarker(5, DIAL_MARKER_SIMPLE, 2); SetOptionLabel(20, DIAL_LABEL_ROTATED); SetOptionMainValue(_T("%.0f"), DIAL_POSITION_INSIDE); // Get a pointer to the opencpn configuration object m_pconfig = GetOCPNConfigObject(); LoadConfig(); m_Bearing = NAN; m_lat = NAN; m_lon = NAN; m_CurrDir = NAN; m_CurrSpeed = NAN; m_ExtraValueDTW = NAN; m_MainValue = NAN; m_Leeway = 0; m_AngleStart = 0; m_ExpSmoothDegRange = 0; mExpSmDegRange = new ExpSmooth(g_dalphaDeltCoG); m_Cog = -999; m_Hdt = -999; m_diffCogHdt = 0; m_predictedSog = NAN; m_TWA = NAN; m_AWA = -999; m_TWS = NAN; m_TWD = NAN; m_StW = 0.0; m_ToWpt = _T("---"); alpha_diffCogHdt = 0.1; m_ExpSmoothDiffCogHdt = 0; m_oldExpSmoothDiffCogHdt = 0; for (int i = 0; i < COGRANGE; i++) m_COGRange[i] = 0; }