Example #1
0
        private void filllabel(telemetry_format.SATTelemetry_t tlm)
        {
            //ctrl
            label36.Text = tlm.CTRLTelemetry.MET.ToString();
            label35.Text = tlm.CTRLTelemetry.CTRL_MCU_temp.ToString();
            label45.Text = tlm.PWRTelemetry.OtherTelemetry.VBUS_I.ToString();
            //battery
            label8.Text = ((float)tlm.PWRTelemetry.BatteryTelemetry.U / 1000.0).ToString("0.00");
            label7.Text = ((float)tlm.PWRTelemetry.BatteryTelemetry.I_Ch / 1000).ToString("0.000");
            label6.Text = ((float)tlm.PWRTelemetry.BatteryTelemetry.I_Dis / 1000).ToString("0.000");
            label5.Text = tlm.PWRTelemetry.BatteryTelemetry.T.ToString();
            //panel temp
            label12.Text = tlm.PWRTelemetry.SolarPanelTemperature.T_XT.ToString();
            label11.Text = tlm.PWRTelemetry.SolarPanelTemperature.T_XB.ToString();
            label10.Text = tlm.PWRTelemetry.SolarPanelTemperature.T_YT.ToString();
            label9.Text  = tlm.PWRTelemetry.SolarPanelTemperature.T_YB.ToString();
            label18.Text = tlm.PWRTelemetry.SolarPanelTemperature.T_ZT.ToString();
            label17.Text = tlm.PWRTelemetry.SolarPanelTemperature.T_ZB.ToString();
            //MPP
            label24.Text = ((float)tlm.PWRTelemetry.MPP1.U / 1000).ToString("0.00");
            label23.Text = ((float)tlm.PWRTelemetry.MPP1.I / 1000).ToString("0.00");

            label22.Text = ((float)tlm.PWRTelemetry.MPP2.U / 1000).ToString("0.00");
            label21.Text = ((float)tlm.PWRTelemetry.MPP2.I / 1000).ToString("0.00");

            label30.Text = ((float)tlm.PWRTelemetry.MPP3.U / 1000).ToString("0.00");
            label29.Text = ((float)tlm.PWRTelemetry.MPP3.I / 1000).ToString("0.00");
        }
        private void frame_Decode(byte [] frame, int size)
        {
            if (this.InvokeRequired)
            {
                frame_Decode_Callback D = new frame_Decode_Callback(frame_Decode);
                this.Invoke(D, new object[] { frame, size });
            }
            else
            {
                //разбираем фрейм
                if (frame.Length > 16)
                {
                    if (frame[0] == DATA_FRAME)
                    {
                        //фрем данных
                        //выбираем позывной
                        string call = "From: ";
                        int    i;

                        for (i = 1; i < 8; i++)
                        {
                            call += GetChr(frame[i] >> 1, 1);
                        }
                        call += " To: ";
                        for (i = 8; i < 15; i++)
                        {
                            call += GetChr(frame[i] >> 1, 1);
                        }

                        //17 начало данных
                        telemetry_format.SATTelemetry_t tlm = telemetry_format.fill_SATStruct(frame, 17);

                        richTextBox1.AppendText(call + "\r\n");

                        string str_tlm = telemetry_format.SATStruct_str(tlm) + "\r\n";

                        richTextBox1.AppendText(str_tlm);

                        AddText(flog, str_tlm);
                    }
                }
            }
        }
Example #3
0
        private void frame_Decode(byte [] frame, int size)
        {
            if (this.InvokeRequired)
            {
                frame_Decode_Callback D = new frame_Decode_Callback(frame_Decode);
                this.Invoke(D, new object[] { frame, size });
            }
            else
            {
                //разбираем фрейм
                if (size > 16)
                {
                    if (frame[0] == DATA_FRAME)
                    {
                        //фрем данных
                        //выбираем позывной
                        string call = "From: ";
                        int    i;
                        for (i = 8; i < 15; i++)
                        {
                            call += GetChr(frame[i] >> 1, 1);
                        }

                        call += " To: ";

                        for (i = 1; i < 8; i++)
                        {
                            call += GetChr(frame[i] >> 1, 1);
                        }

                        richTextBox1.AppendText(call + " size: " + size.ToString() + "\r\n");
                        Console.WriteLine("size" + (size));
                        //17 начало данных
                        if (size == (SAT_TLM_SIZE + 17))
                        {
                            telemetry_format.SATTelemetry_t tlm = telemetry_format.fill_SATStruct(frame, 17);
                            string str_tlm = "Norm," + telemetry_format.SATStruct_str(tlm) + "\r\n";
                            richTextBox1.AppendText(str_tlm);
                            AddText(flog, str_tlm);

                            filllabel(tlm);
                        }
                        else if (size == (SAT_TLM_MINI_SIZE + 17))
                        {
                            telemetry_format.SATTelemetry_mini_t tlm_mini = telemetry_format.fill_SATminiStruct(frame, 17);
                            string str_tlm = "Mini," + telemetry_format.SATminiStruct_str(tlm_mini) + "\r\n";
                            richTextBox1.AppendText(str_tlm);
                            AddText(flog, str_tlm);
                        }
                        else if (size == (81))
                        {
                            //  Console.WriteLine("/" + System.Text.Encoding.UTF8.GetString(frame));
                            //telemetry_format.SATTelemetry_mini_t tlm_mini = telemetry_format.fill_SATminiStruct(frame, 17);
                            string str_tlm = "IMG ," + frame.Length + "\r\n";

                            string result = str_tlm;


                            byte[] tmp = new byte [64];
                            for (int e = 0; e < 64; e++)
                            {
                                tmp[e] = frame[e + 17];
                            }
                            nf++;
                            using (BinaryWriter writer = new BinaryWriter(File.Open("rx_dat_tmp.dat", FileMode.Append)))
                            {
                                writer.Write(tmp);
                            }

                            IMG_decod(tmp);

                            richTextBox1.AppendText(result);
                            AddText(flog, result);
                            Console.WriteLine("прием frame langth" + frame.Length);
                        }
                        //  Console.WriteLine("rx size" + (size));
                    }
                }
            }
        }