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); } } } }
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)); } } } }