private void bw_serial_data_DoWork(object sender, DoWorkEventArgs e) { string[] received_serial_data; float yaw, pitch, roll; SerialData Data = new SerialData(); Data.OpenConn(this.COM_port.Text, 115200); while (!bw_serial_data.CancellationPending) { try { received_serial_data = Data.receive_serial_data(); pitch = float.Parse(received_serial_data[0], CultureInfo.InvariantCulture.NumberFormat); roll = float.Parse(received_serial_data[1], CultureInfo.InvariantCulture.NumberFormat); yaw = float.Parse(received_serial_data[2], CultureInfo.InvariantCulture.NumberFormat); Sensors_structure serial_data = new Sensors_structure(); serial_data.pitch = pitch; serial_data.roll = roll; serial_data.yaw = yaw; bw_serial_data.ReportProgress(0, serial_data); } catch (Exception error) { //MessageBox.Show(error.ToString()); //bw_serial_data.CancelAsync(); //Data.port.Close(); } } Data.port.Close(); e.Result = 0; }
private void bw_serial_data_ProgressChanged(object sender, ProgressChangedEventArgs e) { Sensors_structure serial_display_data = new Sensors_structure(); serial_display_data = e.UserState as Sensors_structure; sender_info.Text = serial_display_data.pitch.ToString() + ',' + serial_display_data.roll.ToString() + ',' + serial_display_data.yaw.ToString(); yaw_dcm.Text = serial_display_data.yaw.ToString(); pitch_dcm.Text = serial_display_data.pitch.ToString(); roll_dcm.Text = serial_display_data.roll.ToString(); //offset compensated yaw float compensated_yaw = serial_display_data.yaw - f_yaw_offset; graphics.userControl11.Rotate(serial_display_data.roll, serial_display_data.pitch, compensated_yaw); chart_1.euler_angles[0] = serial_display_data.yaw; chart_1.euler_angles[1] = serial_display_data.pitch; chart_1.euler_angles[2] = serial_display_data.roll; }