/// <summary> /// Метод отображения в поле текстбокса данных в виде HEX отправляемых/принимаемых со структуры /// </summary> /// <param name="data"></param> private void VisibleTextBox_HEXDatastruct(IHH_Formata_Data data, bool Res_Tran) { if (Res_Tran)//Передача данных { string TimeTransmit = DateTime.Now.ToString(); HextFormatData.Text += string.Format("Время передачи:{0}" + Environment.NewLine + " 0x{1:X} ||0x{2:X}||0x{3:X}||0x{4:X}||0x{5:X}" + Environment.NewLine, TimeTransmit, data.ADC_massive, data.DAC_massive, data.Digital_input, data.Digital_Output, data.ZeroByte); } else //прием данных { string TimeTransmit = DateTime.Now.ToString(); HextFormatData.Text += string.Format("Время Приема:{0}" + Environment.NewLine + "0x{1:X}||0x{2:X}||0x{3:X}||0x{4:X}||0x{5:X}" + Environment.NewLine, TimeTransmit, data.ADC_massive, data.DAC_massive, data.Digital_input, data.Digital_Output, data.ZeroByte); } }
/// <summary> /// Метод передачи структуры в виде массива байтов через СОМ- терминал /// </summary> /// <param name="Data"></param> private void Transmit_DataStruct(IHH_Formata_Data Data) { try { byte[] mass = convData.ConvertInMassByte(Data);//конвертируем структуру в массив байтов _serialCOM.WriteLine(String.Format("{0}", mass)); TextCommand.Clear(); StringFormatData.Text += "Передача :" + String.Format("{0}", mass) + Environment.NewLine; VisibleTextBox_Datastruct(Data, true); VisibleTextBox_HEXDatastruct(Data, true); convData.LogSystem(mass, true, true); } catch (Exception ex) { MessageBox.Show("Ошибка :" + ex.Message); } }
/// <summary> /// Обработчик приема данных из порта /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _serialCOM_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (ckeck_SelectMode.IsChecked == true)//работает как обычный терминал { Thread.Sleep(50); string data = _serialCOM.ReadLine(); Dispatcher.BeginInvoke(new ReadStringCOM(VisibleTextBox_Strings), new object[] { data, false }); convData.LogSystem(Encoding.UTF8.GetBytes(data), false, false); } else if (ckeck_SelectMode.IsChecked == false) //работает как спец. терминал { byte[] buffer = new byte[256]; int readBytes = _serialCOM.Read(buffer, 0, buffer.Length); dataFormat = convData.ConvertStructData(buffer); Receive_Data_struct(dataFormat); Dispatcher.BeginInvoke(new ReadStructDataCOM(VisibleTextBox_Datastruct), new object[] { dataFormat, false }); Dispatcher.BeginInvoke(new ReadStructDataCOM(VisibleTextBox_HEXDatastruct), new object[] { dataFormat, false }); convData.LogSystem(buffer, false, true); } }
/// <summary> /// Метод обновления данных по переданной структуре /// </summary> /// <param name="data"></param> private void Update_Transmit_Data_struct(IHH_Formata_Data data) { }
/// <summary> /// Разнесение данных по полям окна(диагностика сигналов) по принятой стрктуре /// </summary> /// <param name="Data"></param> private void Receive_Data_struct(IHH_Formata_Data Data) { }