private void Timer1_Tick(object sender, EventArgs e) { if (isSA) { //bool isSame = Math.PI - Math.Abs(Math.Abs(cH - mf.gpsHeading) - Math.PI) < (glm.PIBy2+0.1); dist = glm.Distance(startFix, mf.pivotAxlePos); cntr++; if (dist > diameter) { diameter = dist; cntr = 0; } lblDiameter.Text = diameter.ToString("N2") + " m"; if (cntr > 9) { steerAngleRight = Math.Atan(mf.vehicle.wheelbase / (diameter / 2)); steerAngleRight = glm.toDegrees(steerAngleRight); //steerAngleLeft = Math.Atan(mf.vehicle.wheelbase / (diameter / 2 )); //steerAngleLeft = glm.toDegrees(steerAngleLeft); lblCalcSteerAngleInner.Text = steerAngleRight.ToString("N1") + "\u00B0"; //lblCalcSteerAngleOuter.Text = steerAngleLeft.ToString("N1") + "\u00B0"; lblDiameter.Text = diameter.ToString("N2") + " m"; btnStartSA.Image = Properties.Resources.BoundaryRecord; isSA = false; } } double actAng = mf.mc.actualSteerAngleDegrees * 5; if (actAng > 0) { if (actAng > 49) { actAng = 49; } CExtensionMethods.SetProgressNoAnimation(pbarRight, (int)actAng); pbarLeft.Value = 0; } else { if (actAng < -49) { actAng = -49; } pbarRight.Value = 0; CExtensionMethods.SetProgressNoAnimation(pbarLeft, (int)-actAng); } lblSteerAngle.Text = mf.SetSteerAngle; lblSteerAngleActual.Text = mf.mc.actualSteerAngleDegrees.ToString("N1") + "\u00B0"; lblActualSteerAngleUpper.Text = lblSteerAngleActual.Text; double err = (mf.mc.actualSteerAngleDegrees - mf.guidanceLineSteerAngle * 0.01); lblError.Text = Math.Abs(err).ToString("N1") + "\u00B0"; if (err > 0) { lblError.ForeColor = Color.Red; } else { lblError.ForeColor = Color.DarkGreen; } lblPWMDisplay.Text = mf.mc.pwmDisplay.ToString(); counter++; if (toSend && counter > 4) { Properties.Settings.Default.setAS_countsPerDegree = mf.p_252.pgn[mf.p_252.countsPerDegree] = unchecked ((byte)hsbarCountsPerDegree.Value); Properties.Settings.Default.setAS_ackerman = mf.p_252.pgn[mf.p_252.ackerman] = unchecked ((byte)hsbarAckerman.Value); Properties.Settings.Default.setAS_wasOffset = hsbarWasOffset.Value; mf.p_252.pgn[mf.p_252.wasOffsetHi] = unchecked ((byte)(hsbarWasOffset.Value >> 8)); mf.p_252.pgn[mf.p_252.wasOffsetLo] = unchecked ((byte)(hsbarWasOffset.Value)); Properties.Settings.Default.setAS_highSteerPWM = mf.p_252.pgn[mf.p_252.highPWM] = unchecked ((byte)hsbarHighSteerPWM.Value); Properties.Settings.Default.setAS_lowSteerPWM = mf.p_252.pgn[mf.p_252.lowPWM] = unchecked ((byte)hsbarLowSteerPWM.Value); Properties.Settings.Default.setAS_Kp = mf.p_252.pgn[mf.p_252.gainProportional] = unchecked ((byte)hsbarProportionalGain.Value); Properties.Settings.Default.setAS_minSteerPWM = mf.p_252.pgn[mf.p_252.minPWM] = unchecked ((byte)hsbarMinPWM.Value); Properties.Settings.Default.Save(); Properties.Vehicle.Default.Save(); mf.SendPgnToLoop(mf.p_252.pgn); toSend = false; counter = 0; } if (hsbarMinPWM.Value > hsbarLowSteerPWM.Value) { lblMinPWM.ForeColor = Color.OrangeRed; } else { lblMinPWM.ForeColor = SystemColors.ControlText; } if (mf.mc.sensorData != -1) { if (mf.mc.sensorData < 0 || mf.mc.sensorData > 255) { mf.mc.sensorData = 0; } CExtensionMethods.SetProgressNoAnimation(pbarSensor, mf.mc.sensorData); lblPercentFS.Text = ((int)((double)mf.mc.sensorData * 0.3921568627)).ToString() + "%"; } }