Пример #1
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 (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);
                    }
                }
            }
        }
Пример #2
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));
                    }
                }
            }
        }