Exemplo n.º 1
0
 //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) { }
 }
Exemplo n.º 2
0
        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) { }
        }