//void TraiteEvent_airmar_gps(double lat, double lon, byte gps_qual, byte nb_sat) //{ // try // { // if (this.InvokeRequired) // { // this.BeginInvoke(new nortekmed.Station_Airmar200.airmar_WX200.airmar_gps(TraiteEvent_airmar_gps), new object[] { lat, lon, gps_qual, nb_sat }); // return; // } private void Register_wave_result(WavesProcessingResult res) { try { wave_results.Add(res); //if (this.InvokeRequired) //{ // this.BeginInvoke(new nortekmed.Station_Airmar200.airmar_WX200.airmar_gps(TraiteEvent_airmar_gps), new object[] { lat, lon, gps_qual, nb_sat }); // return; //} } catch (Exception) { } }
private void Register_wave_result(WavesProcessingResult res) { //if (this.InvokeRequired) //{ // this.BeginInvoke(new(Register_wave_result), new object[] { res }); // return; //} try { //viewer.wave_results.Add(res); string res_sprd = ""; res_sprd += "sprd2= " + res.Sprd2.ToString("0.00") + "\r\n"; res_sprd += "qzx= " + res.calc_sprd[1].ToString("0.000000") + "\r\n"; res_sprd += "qzy= " + res.calc_sprd[2].ToString("0.000000") + "\r\n"; res_sprd += "czz= " + res.calc_sprd[3].ToString("0.000000") + "\r\n"; res_sprd += "cxx= " + res.calc_sprd[4].ToString("0.000000") + "\r\n"; res_sprd += "cyy= " + res.calc_sprd[5].ToString("0.000000") + "\r\n"; textBox_sprd_val.Invoke((MethodInvoker)(() => textBox_sprd_val.Text = res_sprd)); label_Hm0.Invoke((MethodInvoker)(() => label_Hm0.Text = "Hm0: " + res.Hm0.ToString("0.00"))); label_Tp.Invoke((MethodInvoker)(() => label_Tp.Text = "Tp: " + res.Tp.ToString("0.00"))); label_TM02.Invoke((MethodInvoker)(() => label_TM02.Text = "TM02: " + res.T02.ToString("0.00"))); label_H3.Invoke((MethodInvoker)(() => label_H3.Text = "H3: " + res.Htier.ToString("0.00"))); label_Tz.Invoke((MethodInvoker)(() => label_Tz.Text = "Tz: " + res.Tz.ToString("0.00"))); label_sprd.Invoke((MethodInvoker)(() => label_sprd.Text = "SPRD: " + res.Sprd.ToString("0.00"))); label_sprd2.Invoke((MethodInvoker)(() => label_sprd2.Text = "SPRD2: " + res.Sprd2.ToString("0.00"))); double deltaf = viewer.ahrs_wave.Fs / viewer.ahrs_wave.nsamples; double tmp_s = Math.Floor((1 / deltaf) / res.startbin); if (viewer.ahrs_wave.bf_detected) { label_startbin.Invoke((MethodInvoker)(() => label_startbin.Text = "startbin: " + res.startbin.ToString("0") + " (" + tmp_s.ToString("0.0") + "s)" + " FILTER NOT ACTIVED")); } else { label_startbin.Invoke((MethodInvoker)(() => label_startbin.Text = "startbin: " + res.startbin.ToString("0") + " (" + tmp_s.ToString("0.0") + "s)" + " FILTER ACTIVED" + " (" + viewer.ahrs_wave.memo_startbin.ToString() + ")")); } tmp_s = (int)Math.Floor((1 / deltaf) / res.middlebin); label_middlebin.Invoke((MethodInvoker)(() => label_middlebin.Text = "middlebin: " + res.middlebin.ToString("0") + " (" + tmp_s.ToString("0.0") + "s)")); tmp_s = (int)Math.Floor((1 / deltaf) / res.endbin); label_endbin.Invoke((MethodInvoker)(() => label_endbin.Text = "endbin: " + res.endbin.ToString("0") + " (" + tmp_s.ToString() + "s)")); float[] accel = new float[viewer.ahrs_wave.nsamples]; double[] timing = new double[viewer.ahrs_wave.nsamples]; for (int i = 0; i < viewer.ahrs_wave.nsamples; i++) { accel[i] = viewer.ahrs_wave.samples[i].accelerations[2]; timing[i] = viewer.ahrs_wave.samples[i].timer; } fastLine1.Clear(); fastLine1.Add(timing, accel); for (int i = 0; i < viewer.ahrs_wave.nsamples; i++) { timing[i] = i * deltaf; } fastLine2.Clear(); fastLine2.Add(timing, viewer.ahrs_wave.t2_ahrs_correction); fastLine2.Title = "AHRS correction: 10^(corr/10)"; fastLine2.Legend.Visible = true; fastLine3.Clear(); fastLine3.Add(timing, viewer.ahrs_wave.raw_czz); fastLine3.Title = "Czz raw"; fastLine3.Legend.Visible = true; fastLine4.Clear(); fastLine4.Add(timing, viewer.ahrs_wave.omega_czz); fastLine4.Title = "Czz omega"; fastLine4.Legend.Visible = true; fastLine5.Clear(); fastLine5.Add(timing, viewer.ahrs_wave.final_czz); fastLine5.Title = "Czz: omega + ahrs correction"; fastLine5.Legend.Visible = true; fastLine6.Clear(); fastLine6.Add(timing, viewer.ahrs_wave.sprd_tab); fastLine6.Title = "Sprd"; fastLine6.Legend.Visible = true; tChart1.Legend.Visible = true; double z; double min = double.MaxValue; double max = double.MinValue; isoSurface1.Clear(); colorGrid1.Clear(); for (int teta = 0; teta < 360; teta++) { for (int i = 0; i < 1000; i++) { z = viewer.ahrs_wave.omega_czz[i] * viewer.ahrs_wave.DSF[i, teta]; if (z != 0) { z = Math.Log10(z); } if (z < min) { min = z; } if (z > max) { max = z; } } } for (int teta = 0; teta < 360; teta++) { for (int i = 0; i < 1000; i++) { z = (viewer.ahrs_wave.omega_czz[i] * viewer.ahrs_wave.DSF[i, teta] - min) / (max - min); isoSurface1.Add(i, z, teta); colorGrid1.Add(i, z, teta); } } //write_xyz(); b_write_huv.Invoke((MethodInvoker)(() => b_write_huv.Enabled = true)); //b_write_huv.Enabled = true; } catch (Exception ex) { } }