private void SaveBtn_Click(object sender, RoutedEventArgs e) { if (Current != null) { try { Current.Min = Axis.SConvertDoubleString(Data.Min); Current.Max = Axis.SConvertDoubleString(Data.Max); Current.MinVelocity = Axis.SConvertDoubleString(Data.MinVelocity); Current.MaxVelocity = Axis.SConvertDoubleString(Data.MaxVelocity); Current.PositionSpeed = Axis.SConvertDoubleString(Data.PositionSpeed); Current.RampRate = int.Parse(Data.RampRate); Current.RampDistancePercent = int.Parse(Data.RampDistancePercent); Current.MinAccelRampTimeMS = int.Parse(Data.MinAccelRampTimeMS); Current.StaticRampDistance = Axis.SConvertDoubleString(Data.StaticRampDistance); Current.UseStaticRampDistance = Data.UseStaticRampDistance; } catch { MessageBox.Show("Error in input data!\nPlease check all fields..."); return; } Current.Save(); Data.RightVisibility = System.Windows.Visibility.Hidden; Current = null; AllAxes.UnselectAll(); } }
/// <inheritdoc/> public void UpdateTable() { if (Table != null) { AllAxes axes = GetAccelerations(); Table.PutNumber("X", axes.XAxis); Table.PutNumber("Y", axes.YAxis); Table.PutNumber("Z", axes.ZAxis); } }
/// <summary> /// Get the acceleration of all axes in Gs. /// </summary> /// <returns>An object containing the acceleration measured on each side of the ADXL345 in Gs.</returns> public override AllAxes GetAccelerations() { AllAxes data = new AllAxes(); byte[] rawData = new byte[6]; m_i2C.Read(DataRegister, rawData.Length, rawData); data.XAxis = BitConverter.ToInt16(rawData, 0) * GsPerLSB; data.YAxis = BitConverter.ToInt16(rawData, 2) * GsPerLSB; data.ZAxis = BitConverter.ToInt16(rawData, 4) * GsPerLSB; return data; }
/// <summary> /// Erstellt eine neue Achse, speichert diese in AllAxes und gibt diese zurück. /// </summary> /// <param name="controlident">ControlIdent der neuen Achse</param> /// <returns>Die neu erstellte Achse</returns> public override Axis NewAxis(string controlident) { controlident = controlident.ToUpper(); if (AllAxes.Exists(x => x.ControlIdent == controlident)) { throw new Exception("An axis with this controlident allready exitst!"); } AerotechAxis a = new AerotechAxis(controlident); AllAxes.Add(a); return(a); }
/// <summary> /// Get the acceleration of all axes in Gs. /// </summary> /// <returns>An object containing the acceleration measured on each side of the ADXL345 in Gs.</returns> public override AllAxes GetAccelerations() { AllAxes data = new AllAxes(); byte[] dataBuffer = new byte[7]; if (m_spi != null) { dataBuffer[0] = (byte)(AddressRead | AddressMultiByte | DataRegister); m_spi.Transaction(dataBuffer, dataBuffer, 7); data.XAxis = BitConverter.ToInt16(dataBuffer, 1) * GsPerLSB; data.YAxis = BitConverter.ToInt16(dataBuffer, 3) * GsPerLSB; data.ZAxis = BitConverter.ToInt16(dataBuffer, 5) * GsPerLSB; } return data; }