Example #1
0
        public sensor_cls()
        {
            Histo_x = new histogram_cls(160, 13, 40);
            Histo_y = new histogram_cls(160, 13, 40);
            Histo_z = new histogram_cls(160, 13, 40);

            Histogram_array[0] = Histo_x;
            Histogram_array[1] = Histo_y;
            Histogram_array[2] = Histo_z;
        }
Example #2
0
 public gyroscope_cls()
 {
     Histo = new histogram_cls(160, 13, 40);
 }
 public magnetometer_cls()
 {
     Histo = new histogram_cls(160, 13, 40);
 }
Example #4
0
 public tester_cls(histogram_cls Histogram)
 {
     histogram = Histogram;
 }
        // constructor
        public MainWindow()
        {
            InitializeComponent();

            string Host = System.Net.Dns.GetHostName();

            debug_info_panel.Content += "my host -> " + Host + "\r\n";
            string IP1 = System.Net.Dns.GetHostByName(Host).AddressList[0].ToString();

            debug_info_panel.Content += "my ip -> " + IP1 + "\r\n";

            //local_kinematics_endpoint.Address = IPAddress.Parse("192.168.1.1");
            local_kinematics_endpoint.Address = IPAddress.Parse(IP1);
            local_kinematics_endpoint.Port    = 112;

            kinematics_listener = new UdpClient();

            try
            {
                kinematics_listener.Client.Bind(local_kinematics_endpoint);
            }
            catch (Exception e)
            {
            }

            raw_data = new raw_kinematics_data_cls();
            model    = new model_cls(raw_data);
            // fill model
            model.add_channel(new angle_cls(model.Segments[1], model.Segments[2]));
            model.add_channel(new angle_cls(model.Segments[1], model.Segments[3]));
            model.add_channel(new angle_cls(model.Segments[1], model.Segments[4]));
            model.add_channel(new angle_cls(model.Segments[2], model.Segments[3]));
            model.add_channel(new angle_cls(model.Segments[2], model.Segments[4]));
            model.add_channel(new angle_cls(model.Segments[3], model.Segments[4]));


            histogram = new histogram_cls(160, 13, 40);  // object just to run tests

            //metronomeThread = new Thread(new ThreadStart(this.metronome_thread_method));
            //metronomeThread.IsBackground = true;
            stop_metronome_button.IsEnabled = false;
            //metronomeThread.Start();

            angle_chart0 = new angle_graph_cls(angle_0_graph_canvas, chart0_legend_label);
            angle_chart1 = new angle_graph_cls(angle_1_graph_canvas, chart1_legend_label);
            angle_chart2 = new angle_graph_cls(angle_2_graph_canvas, chart2_legend_label);
            //mean_cycle_chart0 = new mean_cycle_graph_cls(channel_0_mean_graph_canvas);
            //mean_cycle_chart1 = new mean_cycle_graph_cls(channel_1_mean_graph_canvas);
            //mean_cycle_chart2 = new mean_cycle_graph_cls(channel_2_mean_graph_canvas);

            registrator0 = new registrator_cls(storage0, metronom);
            registrator1 = new registrator_cls(storage1, metronom);
            registrator2 = new registrator_cls(storage2, metronom);

            //windowsFormsHost.Child = userControl_unity3d;
            //MyPSI = new ProcessStartInfo(unity_game_path);
            //unity_game_process = new Process();
            //unity_game_process.StartInfo = MyPSI;
            //unity_game_process.Start();
            //System.IntPtr handle1 = unity_game_process.MainWindowHandle;
            //System.IntPtr handle2 = userControl_unity3d.Handle;
            //SetParent(handle1, handle2);


            //(windowsFormsHost.Child as System.Windows.Forms.WebBrowser).Navigate("file:///C:/workspace/unity_workspace/skeleton/skeleton_00_01/skeleton_00_01/web_play/web_play.html");
        }// end constructor
        }// end dataReceivingMethod

        private void UpdateUserInterface()
        {
            info_panel_label.Content = debug_string;
            info_panel_label.UpdateLayout();

            //*
            // zapolnenie tablicy dannyh datchikov
            if (raw_data.Kinematics_Data.Length == raw_data.Raw_Data_Length)
            {
                data_panel_label.Content = "";
                for (int i = 0; i < 19; i++)
                {
                    string data_string = "";
                    for (int j = 0; j < 9; j++)
                    {
                        Int16 data = (Int16)((Int16)raw_data.Kinematics_Data[i * 18 + j * 2] + ((Int16)(raw_data.Kinematics_Data[i * 18 + j * 2 + 1]) << 8));
                        data_string += String.Format("{0, 10}  ", data);
                    }
                    data_string += "\n";
                    data_panel_label.Content += data_string;
                }
            }
            data_panel_label.UpdateLayout();

            //*/
            Double angle1 = (model.Channels.ToArray())[0].Angle.Angle;
            Double angle2 = (model.Channels.ToArray())[1].Angle.Angle;
            Double angle3 = (model.Channels.ToArray())[3].Angle.Angle;

            angle_chart0.add_stroke(angle1);
            angle_chart1.add_stroke(angle2);
            angle_chart2.add_stroke(angle3);

            segment1_axis.Content     = String.Format("{0,10:F3}", angle1);
            segment2_axis.Content     = String.Format("{0,10:F3}", angle2);
            segment_1_2_angle.Content = String.Format("{0,10:F3}", angle3);
            //********************************************************************

            //*
            double ratio       = 0;
            int    sensor_type = 0; // 0 - accel, 1 - gyro, 2 - magnet;

            histogram_cls[,] hist = new histogram_cls[5, 4];
            sensor_cls[] sensor = new sensor_cls[5];

            for (int i = 1; i < 5; i++)
            {
                sensor[i] = model.Segments[i].sensors_array[sensor_type];
            }


            for (int i = 1; i < 5; i++)
            {
                for (int j = 1; j < 4; j++)
                {
                    hist[i, j] = sensor[i].histogram_array[j - 1];
                }
            }

            // add value
            for (int i = 1; i < 5; i++)
            {
                for (int j = 1; j < 4; j++)
                {
                    hist[i, j].add_value(sensor[i].xyz[j - 1]);
                }
            }

            Label[,] labels = new Label[5, 4];
            labels[1, 1]    = hist_1_1_label; labels[1, 2] = hist_1_2_label; labels[1, 3] = hist_1_3_label;
            labels[2, 1]    = hist_2_1_label; labels[2, 2] = hist_2_2_label; labels[2, 3] = hist_2_3_label;
            labels[3, 1]    = hist_3_1_label; labels[3, 2] = hist_3_2_label; labels[3, 3] = hist_3_3_label;
            labels[4, 1]    = hist_4_1_label; labels[4, 2] = hist_4_2_label; labels[4, 3] = hist_4_3_label;

            Canvas[,] canvases = new Canvas[5, 4];
            canvases[1, 1]     = hist_1_1_canvas; canvases[1, 2] = hist_1_2_canvas; canvases[1, 3] = hist_1_3_canvas;
            canvases[2, 1]     = hist_2_1_canvas; canvases[2, 2] = hist_2_2_canvas; canvases[2, 3] = hist_2_3_canvas;
            canvases[3, 1]     = hist_3_1_canvas; canvases[3, 2] = hist_3_2_canvas; canvases[3, 3] = hist_3_3_canvas;
            canvases[4, 1]     = hist_4_1_canvas; canvases[4, 2] = hist_4_2_canvas; canvases[4, 3] = hist_4_3_canvas;

            if (packet_counter % 40 == 0)
            {
                for (int i = 1; i < 5; i++)
                {
                    for (int j = 1; j < 4; j++)
                    {
                        labels[i, j].Content = "";
                        canvases[i, j].Children.Clear();
                        ratio = 0;
                        if (hist[i, j].main_bin_value != 0)
                        {
                            ratio = canvases[i, j].ActualHeight * 0.75 / hist[i, j].main_bin_value;
                        }
                        for (int k = 0; k < hist[i, j].bins.Length; k++)
                        {
                            Line bin_stroke;
                            bin_stroke = new Line();
                            bin_stroke.StrokeThickness = 13;
                            bin_stroke.Stroke          = System.Windows.Media.Brushes.LightSteelBlue;
                            bin_stroke.X1 = 40 + k * 15;
                            bin_stroke.X2 = 40 + k * 15;
                            bin_stroke.Y1 = canvases[i, j].ActualHeight;
                            bin_stroke.Y2 = canvases[i, j].ActualHeight - (hist[i, j].bins[k] * ratio);
                            canvases[i, j].Children.Add(bin_stroke);
                            canvases[i, j].UpdateLayout();
                        }
                        labels[i, j].Content += hist[i, j].main_bin.ToString();
                        labels[i, j].UpdateLayout();
                    }
                }
            }
            //*/
        }// end update user interface
Example #7
0
 public accelerometer_cls()
 {
     Histo_x = new histogram_cls(160, 13, 40);
     Histo_y = new histogram_cls(160, 13, 40);
     Histo_z = new histogram_cls(160, 13, 40);
 }