private void InputTextBox_KeyUp(object sender, KeyEventArgs e) { try { if (e.Key == Key.Enter) { if (InputTextBox.Text.Length > 0) { var packetHelper = new PacketHelper(InputTextBox.Text.ToCharArray(), 3); List<Packet> packets = packetHelper.GetPackets((bool)MakeErrorCheckBox.IsChecked); PacketInfoTextBox.Clear(); var infoStringBuilder = new StringBuilder(); var outputStringBuilder = new StringBuilder(); for (int i = 0; i < packets.Count(); i++) { infoStringBuilder.AppendLine(string.Format("Packet #{0}", i)); string errorText = packets[i].GetErrorInfo(); if(!string.IsNullOrEmpty(errorText)) { infoStringBuilder.AppendLine(errorText); } infoStringBuilder.AppendLine(packets[i].GetEncodedData()); infoStringBuilder.AppendLine(); outputStringBuilder.Append(packets[i].GetDecodedData()); } PacketInfoTextBox.Text = infoStringBuilder.ToString(); OutputTextBox.Text = outputStringBuilder.ToString(); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void InputTextBox_KeyUp(object sender, KeyEventArgs e) { try { if (e.Key == Key.Enter) { if (InputTextBox.Text.Length > 0) { PacketHelper packetHelper = new PacketHelper((byte)Convert.ToInt16("01111110", 2), InputTextBox.Text.ToCharArray(), 19, 1, 1, 1); List<Packet> packets = packetHelper.GetPackets(); List<bool> data = new List<bool>(); StringBuilder stringBuilder = new StringBuilder(); int n = 1; foreach (Packet packet in packets) { data.AddRange(packet.EncodedData); // stringBuilder.AppendLine(string.Format("Packet #{0}", n++)); // stringBuilder.AppendLine(PacketHelper.BinDataToString(packet.EncodedData)); } // PacketInfoTextBox.Text = stringBuilder.ToString(); int numOfBits = data.Count; int numOfCycles = numOfBits % 8 == 0 ? numOfBits : numOfBits + 1; List<byte> dataToSend = new List<byte>(); for (int i = 0; i < numOfCycles / 8; i++) { if (i != numOfCycles / 8 - 1) { dataToSend.Add((byte)Convert.ToInt16(PacketHelper.BinDataToString(data.GetRange(i * 8, 8)), 2)); } else { dataToSend.Add((byte)Convert.ToInt16(PacketHelper.BinDataToString(data.GetRange(i * 8, numOfBits - i * 8)), 2)); } } _serialPortCOM1.RtsEnable = true; _serialPortCOM1.Write(dataToSend.ToArray(), 0, dataToSend.Count); Thread.Sleep(100); _serialPortCOM1.RtsEnable = false; //InputTextBox.Clear(); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }