// Constructor, Initializes a new instance of the "FormGPS" class. public FormGPS() { //winform initialization InitializeComponent(); //build the gesture structures SetupStructSizes(); //create a new section and set left and right positions //created whether used or not, saves restarting program for (int j = 0; j < MAXSECTIONS; j++) { section[j] = new CSection(this); } // Get the OpenGL object. OpenGL gl = openGLControl.OpenGL; OpenGL glBack = openGLControlBack.OpenGL; //create the world grid worldGrid = new CWorldGrid(gl, this); //our vehicle made with gl object and pointer of mainform vehicle = new CVehicle(gl, this); //our NMEA parser pn = new CNMEA(this); //create the ABLine instance ABLine = new CABLine(gl, this); //new instance of contour mode ct = new CContour(gl, this); //new instance of contour mode curve = new CABCurve(gl, this); //new instance of auto headland turn yt = new CYouTurn(gl, glBack, this); //module communication mc = new CModuleComm(this); //perimeter list object periArea = new CPerimeter(gl); //boundary object bnd = new CBoundary(gl, glBack, this); //boundaries array for (int j = 0; j < MAXBOUNDARIES; j++) { bndArr[j] = new CBoundaryLines(gl, glBack, this); } //headland object hl = new CHeadland(gl, this); //headlands array for (int j = 0; j < MAXHEADS; j++) { hlArr[j] = new CHeadlandLines(gl, this); } //rate object for dual flowmeters rcd = new CDualRate(this); //headland entry/exit sequences seq = new CSequence(this); //nmea simulator built in. sim = new CSim(this); //all the autosteer objects ast = new CAutoSteer(this); //all the attitude, heading, roll, pitch reference system ahrs = new CAHRS(this); //A recorded path recPath = new CRecordedPath(gl, this); //A generated Path genPath = new CGenPath(gl, this); //start the stopwatch swFrame.Start(); //resource for gloabal language strings _rm = new ResourceManager("AgOpenGPS.gStr", Assembly.GetExecutingAssembly()); }
public void LoadSettings() { //metric settings CheckSettingsNotNull(); isMetric = Settings.Default.setMenu_isMetric; tramLinesMenuField.Visible = Properties.Settings.Default.setFeatures.isTramOn; headlandToolStripMenuItem.Visible = Properties.Settings.Default.setFeatures.isHeadlandOn; boundariesToolStripMenuItem.Visible = Properties.Settings.Default.setFeatures.isBoundaryOn; //toolStripBtnMakeBndContour.Visible = Properties.Settings.Default.setFeatures.isBndContourOn; recordedPathStripMenu.Visible = Properties.Settings.Default.setFeatures.isRecPathOn; SmoothABtoolStripMenu.Visible = Properties.Settings.Default.setFeatures.isABSmoothOn; deleteContourPathsToolStripMenuItem.Visible = Properties.Settings.Default.setFeatures.isHideContourOn; webcamToolStrip.Visible = Properties.Settings.Default.setFeatures.isWebCamOn; offsetFixToolStrip.Visible = Properties.Settings.Default.setFeatures.isOffsetFixOn; btnContour.Visible = Properties.Settings.Default.setFeatures.isContourOn; btnAutoYouTurn.Visible = Properties.Settings.Default.setFeatures.isYouTurnOn; btnStanleyPure.Visible = Properties.Settings.Default.setFeatures.isSteerModeOn; btnStartAgIO.Visible = Properties.Settings.Default.setFeatures.isAgIOOn; btnAutoSteer.Visible = Properties.Settings.Default.setFeatures.isAutoSteerOn; btnCycleLines.Visible = Properties.Settings.Default.setFeatures.isCycleLinesOn; btnManualOffOn.Visible = Properties.Settings.Default.setFeatures.isManualSectionOn; btnSectionOffAutoOn.Visible = Properties.Settings.Default.setFeatures.isAutoSectionOn; btnABLine.Visible = Properties.Settings.Default.setFeatures.isABLineOn; btnCurve.Visible = Properties.Settings.Default.setFeatures.isCurveOn; isUTurnOn = Properties.Settings.Default.setFeatures.isUTurnOn; isLateralOn = Properties.Settings.Default.setFeatures.isLateralOn; if (isMetric) { inchOrCm2m = 0.01; m2InchOrCm = 100.0; m2FtOrM = 1.0; ftOrMtoM = 1.0; inOrCm2Cm = 1.0; cm2CmOrIn = 1.0; unitsFtM = " m"; unitsInCm = " cm"; } else { inchOrCm2m = glm.in2m; m2InchOrCm = glm.m2in; m2FtOrM = glm.m2ft; ftOrMtoM = glm.ft2m; inOrCm2Cm = 2.54; cm2CmOrIn = 0.3937; unitsInCm = " in"; unitsFtM = " ft"; } //timeToShowMenus = Properties.Settings.Default.setDisplay_showMenusTime; udpWatchLimit = Properties.Settings.Default.SetGPS_udpWatchMsec; startSpeed = Vehicle.Default.setVehicle_startSpeed; frameDayColor = Properties.Settings.Default.setDisplay_colorDayFrame.CheckColorFor255(); frameNightColor = Properties.Settings.Default.setDisplay_colorNightFrame.CheckColorFor255(); sectionColorDay = Properties.Settings.Default.setDisplay_colorSectionsDay.CheckColorFor255(); fieldColorDay = Properties.Settings.Default.setDisplay_colorFieldDay.CheckColorFor255(); fieldColorNight = Properties.Settings.Default.setDisplay_colorFieldNight.CheckColorFor255(); Properties.Settings.Default.setDisplay_colorDayFrame = frameDayColor; Properties.Settings.Default.setDisplay_colorNightFrame = frameNightColor; Properties.Settings.Default.setDisplay_colorSectionsDay = sectionColorDay; Properties.Settings.Default.setDisplay_colorFieldDay = fieldColorDay; Properties.Settings.Default.setDisplay_colorFieldNight = fieldColorNight; Properties.Settings.Default.Save(); isSkyOn = Settings.Default.setMenu_isSkyOn; isTextureOn = Settings.Default.setDisplay_isTextureOn; isGridOn = Settings.Default.setMenu_isGridOn; isCompassOn = Settings.Default.setMenu_isCompassOn; isSpeedoOn = Settings.Default.setMenu_isSpeedoOn; isAutoDayNight = Settings.Default.setDisplay_isAutoDayNight; isSideGuideLines = Settings.Default.setMenu_isSideGuideLines; //isLogNMEA = Settings.Default.setMenu_isLogNMEA; isPureDisplayOn = Settings.Default.setMenu_isPureOn; panelNavigation.Location = new System.Drawing.Point(90, 100); panelDrag.Location = new System.Drawing.Point(87, 268); vehicleOpacity = ((double)(Properties.Settings.Default.setDisplay_vehicleOpacity) * 0.01); vehicleOpacityByte = (byte)(255 * ((double)(Properties.Settings.Default.setDisplay_vehicleOpacity) * 0.01)); isVehicleImage = Properties.Settings.Default.setDisplay_isVehicleImage; string directoryName = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); //grab the current vehicle filename - make sure it exists vehicleFileName = Vehicle.Default.setVehicle_vehicleName; simulatorOnToolStripMenuItem.Checked = Settings.Default.setMenu_isSimulatorOn; if (simulatorOnToolStripMenuItem.Checked) { panelSim.Visible = true; timerSim.Enabled = true; } else { panelSim.Visible = false; timerSim.Enabled = false; } if (timerSim.Enabled) fixUpdateHz = 10; fixUpdateTime = 1 / (double)fixUpdateHz; //set the flag mark button to red dot btnFlag.Image = Properties.Resources.FlagRed; //load the string of custom colors string[] words = Properties.Settings.Default.setDisplay_customColors.Split(','); for (int i = 0; i < 16; i++) { Color test; customColorsList[i] = int.Parse(words[i], CultureInfo.InvariantCulture); test = Color.FromArgb(customColorsList[i]).CheckColorFor255(); int iCol = (test.A << 24) | (test.R << 16) | (test.G << 8) | test.B; customColorsList[i] = iCol; } Properties.Settings.Default.setDisplay_customColors = ""; for (int i = 0; i < 15; i++) Properties.Settings.Default.setDisplay_customColors += customColorsList[i].ToString() + ","; Properties.Settings.Default.setDisplay_customColors += customColorsList[15].ToString(); Properties.Settings.Default.Save(); //load up colors fieldColorDay = (Settings.Default.setDisplay_colorFieldDay.CheckColorFor255()); sectionColorDay = (Settings.Default.setDisplay_colorSectionsDay.CheckColorFor255()); fieldColorNight = (Settings.Default.setDisplay_colorFieldNight.CheckColorFor255()); textColorDay = Settings.Default.setDisplay_colorTextDay.CheckColorFor255(); textColorNight = Settings.Default.setDisplay_colorTextNight.CheckColorFor255(); vehicleColor = Settings.Default.setDisplay_colorVehicle.CheckColorFor255(); isLightbarOn = Settings.Default.setMenu_isLightbarOn; //set up grid and lightbar isKeyboardOn = Settings.Default.setDisplay_isKeyboardOn; if (Properties.Settings.Default.setAS_isAutoSteerAutoOn) btnAutoSteer.Text = "R"; else btnAutoSteer.Text = "M"; if (bnd.isHeadlandOn) btnHeadlandOnOff.Image = Properties.Resources.HeadlandOn; else btnHeadlandOnOff.Image = Properties.Resources.HeadlandOff; btnChangeMappingColor.BackColor = sectionColorDay; btnChangeMappingColor.Text = Application.ProductVersion.ToString(CultureInfo.InvariantCulture); if (Properties.Settings.Default.setDisplay_isStartFullScreen) { this.WindowState = FormWindowState.Maximized; isFullScreen = true; } else { isFullScreen = false; } //is rtk on? isRTK = Properties.Settings.Default.setGPS_isRTK; isRTK_KillAutosteer = Properties.Settings.Default.setGPS_isRTK_KillAutoSteer; pn.ageAlarm = Properties.Settings.Default.setGPS_ageAlarm; isAngVelGuidance = Properties.Settings.Default.setAS_isAngVelGuidance; guidanceLookAheadTime = Properties.Settings.Default.setAS_guidanceLookAheadTime; gyd.sideHillCompFactor = Properties.Settings.Default.setAS_sideHillComp; //ahrs.isReverseOn = Properties.Settings.Default.setIMU_isReverseOn; //ahrs.reverseComp = Properties.Settings.Default.setGPS_reverseComp; //ahrs.forwardComp = Properties.Settings.Default.setGPS_forwardComp; ahrs = new CAHRS(); fd.UpdateFieldBoundaryGUIAreas(); //Set width of section and positions for each section SectionSetPosition(); //Calculate total width and each section width SectionCalcWidths(); LineUpManualBtns(); //fast or slow section update isFastSections = Properties.Vehicle.Default.setSection_isFast; yt.rowSkipsWidth = Properties.Vehicle.Default.set_youSkipWidth; cboxpRowWidth.SelectedIndex = yt.rowSkipsWidth - 1; yt.Set_Alternate_skips(); DisableYouTurnButtons(); //which heading source is being used headingFromSource = Settings.Default.setGPS_headingFromWhichSource; //workswitch stuff mc.isWorkSwitchEnabled = Settings.Default.setF_IsWorkSwitchEnabled; mc.isWorkSwitchActiveLow = Settings.Default.setF_IsWorkSwitchActiveLow; mc.isWorkSwitchManual = Settings.Default.setF_IsWorkSwitchManual; mc.isSteerControlsManual = Settings.Default.setF_steerControlsManual; minFixStepDist = Settings.Default.setF_minFixStep; fd.workedAreaTotalUser = Settings.Default.setF_UserTotalArea; yt.uTurnSmoothing = Settings.Default.setAS_uTurnSmoothing; tool.halfToolWidth = (tool.toolWidth - tool.toolOverlap) / 2.0; //load the lightbar resolution lightbarCmPerPixel = Properties.Settings.Default.setDisplay_lightbarCmPerPixel; //Stanley guidance isStanleyUsed = Properties.Vehicle.Default.setVehicle_isStanleyUsed; if (isStanleyUsed) { btnStanleyPure.Image = Resources.ModeStanley; } else { btnStanleyPure.Image = Resources.ModePurePursuit; } //main window first if (Settings.Default.setWindow_Maximized) { WindowState = FormWindowState.Normal; Location = Settings.Default.setWindow_Location; Size = Settings.Default.setWindow_Size; } else if (Settings.Default.setWindow_Minimized) { //WindowState = FormWindowState.Minimized; Location = Settings.Default.setWindow_Location; Size = Settings.Default.setWindow_Size; } else { Location = Settings.Default.setWindow_Location; Size = Settings.Default.setWindow_Size; } isTramOnBackBuffer = Properties.Settings.Default.setTram_isTramOnBackBuffer; //night mode isDay = Properties.Settings.Default.setDisplay_isDayMode; isDay = !isDay; SwapDayNightMode(); if (!Properties.Settings.Default.setDisplay_isTermsAccepted) { using (var form = new Form_First()) { if (form.ShowDialog(this) != DialogResult.OK) { Close(); } } } FixPanelsAndMenus(false); camera.camSetDistance = camera.zoomValue * camera.zoomValue * -1; SetZoom(); }