protected virtual void OnRadiobuttonSendActivated(object sender, System.EventArgs e) { if (radiobuttonText.Active) { NowSendMode = ConvertMode.Text; } else if (radiobuttonHex.Active) { NowSendMode = ConvertMode.Hex; } else if (radiobuttonDec.Active) { NowSendMode = ConvertMode.Dec; } if (NowSendMode != SendMode) { string strSend = textviewSend.Buffer.Text; byte[] sendByte; switch (SendMode) { case ConvertMode.Text: sendByte = new byte[StringConverts.StringToBytes(strSend).Length]; sendByte = StringConverts.StringToBytes(strSend); break; case ConvertMode.Hex: sendByte = new byte[StringConverts.HexStringToBytes(strSend).Length]; sendByte = StringConverts.HexStringToBytes(strSend); break; case ConvertMode.Dec: sendByte = new byte[StringConverts.DecStringToBytes(strSend).Length]; sendByte = StringConverts.DecStringToBytes(strSend); break; default: sendByte = new byte[StringConverts.StringToBytes(strSend).Length]; sendByte = StringConverts.StringToBytes(strSend); break; } switch (NowSendMode) { case ConvertMode.Text: strSend = StringConverts.BytesToString(sendByte); break; case ConvertMode.Hex: strSend = StringConverts.BytesToHexString(sendByte); break; case ConvertMode.Dec: strSend = StringConverts.BytesToDecString(sendByte); break; } textviewSend.Buffer.Text = strSend; SendMode = NowSendMode; } }
void HandleMyPortDataReceived(object sender, SerialDataReceivedEventArgs e) { byte[] buffer = new byte[MyPort.BytesToRead]; MyPort.Read(buffer, 0, buffer.Length); ReceiveStream.Write(buffer, 0, buffer.Length); // textviewTextString += StringConverts.BytesToString (buffer); // textviewHexString += StringConverts.BytesToHexString (buffer); // textviewDecString += StringConverts.BytesToDecString (buffer); moverText.Append(StringConverts.BytesToString(buffer)); moverHex.Append(StringConverts.BytesToHexString(buffer)); moverDec.Append(StringConverts.BytesToDecString(buffer)); Gdk.Threads.Enter(); // 准备在线程中更新界面 labelRxStatus.Text = ReceiveStream.Length.ToString(); processScrollEvent(ConvertMode.Text, false); processScrollEvent(ConvertMode.Hex, false); processScrollEvent(ConvertMode.Dec, false); // TextIter iter; // iter = textviewText.Buffer.EndIter; // textviewText.Buffer.Insert (ref iter, StringConverts.BytesToString (buffer)); // if (textviewText.Buffer.CharCount > textViewDataBytesMaxCount) { // TextIter iterStart = textviewText.Buffer.StartIter; // TextIter iterEnd = textviewText.Buffer.StartIter; // if (iterEnd.ForwardChars (textviewText.Buffer.CharCount - textViewDataBytesMaxCount)) { // textviewText.Buffer.Delete (ref iterStart, ref iterEnd); // } // } // if (checkbuttonAutoScrollReceive.Active) { // iter = textviewText.Buffer.EndIter; // textviewText.Buffer.CreateMark ("EndMark", iter, false); // textviewText.ScrollToMark (textviewText.Buffer.CreateMark ("EndMark", iter, false), 0, false, 0, 0); // textviewText.Buffer.DeleteMark ("EndMark"); // } // iter = textviewHex.Buffer.EndIter; // textviewHex.Buffer.Insert (ref iter, StringConverts.BytesToHexString (buffer)); // if (checkbuttonAutoScrollReceive.Active) { // textviewHex.Buffer.CreateMark ("EndMark", iter, false); // textviewHex.ScrollToMark (textviewHex.Buffer.CreateMark ("EndMark", iter, false), 0, false, 0, 0); // textviewHex.Buffer.DeleteMark ("EndMark"); // } // iter = textviewDec.Buffer.EndIter; // textviewDec.Buffer.Insert (ref iter, StringConverts.BytesToDecString (buffer)); // if (checkbuttonAutoScrollReceive.Active) { // textviewDec.Buffer.CreateMark ("EndMark", iter, false); // textviewDec.ScrollToMark (textviewDec.Buffer.CreateMark ("EndMark", iter, false), 0, false, 0, 0); // textviewDec.Buffer.DeleteMark ("EndMark"); // } Gdk.Threads.Leave(); }
protected virtual void OnButtonSendClicked(object sender, System.EventArgs e) { if (!MyPort.IsOpen) { togglebuttonPortSwitch.Active = true; if (!MyPort.IsOpen) { OntogglebuttonPortSwitchClicked(this, null); } } if (MyPort.IsOpen) { string strSend = textviewSend.Buffer.Text; byte[] sendByte; switch (SendMode) { case ConvertMode.Text: sendByte = new byte[StringConverts.StringToBytes(strSend).Length]; sendByte = StringConverts.StringToBytes(strSend); break; case ConvertMode.Hex: sendByte = new byte[StringConverts.HexStringToBytes(strSend).Length]; sendByte = StringConverts.HexStringToBytes(strSend); break; case ConvertMode.Dec: sendByte = new byte[StringConverts.DecStringToBytes(strSend).Length]; sendByte = StringConverts.DecStringToBytes(strSend); break; default: sendByte = new byte[StringConverts.StringToBytes(strSend).Length]; sendByte = StringConverts.StringToBytes(strSend); break; } MyPort.Write(sendByte, 0, sendByte.Length); SendStream.Write(sendByte, 0, sendByte.Length); moverTextS.Append(StringConverts.BytesToString(sendByte)); moverHexS.Append(StringConverts.BytesToHexString(sendByte)); moverDecS.Append(StringConverts.BytesToDecString(sendByte)); labelTxStatus.Text = SendStream.Length.ToString(); processScrollEvent(ConvertMode.Text, true); processScrollEvent(ConvertMode.Hex, true); processScrollEvent(ConvertMode.Dec, true); // TextIter iter; // iter = textviewTextS.Buffer.EndIter; // textviewTextS.Buffer.Insert (ref iter, StringConverts.BytesToString (sendByte)); // if (checkbuttonAutoScrollSend.Active) { // // Console.WriteLine("\nLast\t{0}",GtkScrolledWindowTextS.Vadjustment.Value); // // Console.WriteLine("Lower\t{0}",GtkScrolledWindowTextS.Vadjustment.Lower); // // Console.WriteLine("S\t{0}",GtkScrolledWindowTextS.Vadjustment.StepIncrement); // // Console.WriteLine("P\t{0}",GtkScrolledWindowTextS.Vadjustment.PageIncrement); // // GtkScrolledWindowTextS.Vadjustment.Value = GtkScrolledWindowTextS.Vadjustment.Upper; // textviewTextS.Buffer.CreateMark ("EndMark", iter, false); // textviewTextS.ScrollToMark (textviewTextS.Buffer.CreateMark ("EndMark", iter, false), 0, false, 0, 0); // textviewTextS.Buffer.DeleteMark ("EndMark"); // } // // iter = textviewHexS.Buffer.EndIter; // textviewHexS.Buffer.Insert (ref iter, StringConverts.BytesToHexString (sendByte)); // if (checkbuttonAutoScrollSend.Active) { // // GtkScrolledWindowHexS.Vadjustment.Value = GtkScrolledWindowHexS.Vadjustment.Upper; // textviewHexS.Buffer.CreateMark ("EndMark", iter, false); // textviewHexS.ScrollToMark (textviewHexS.Buffer.CreateMark ("EndMark", iter, false), 0, false, 0, 0); // textviewHexS.Buffer.DeleteMark ("EndMark"); // } // iter = textviewDecS.Buffer.EndIter; // textviewDecS.Buffer.Insert (ref iter, StringConverts.BytesToDecString (sendByte)); // if (checkbuttonAutoScrollSend.Active) { // // GtkScrolledWindowDecS.Vadjustment.Value = GtkScrolledWindowDecS.Vadjustment.Upper; // textviewDecS.Buffer.CreateMark ("EndMark", iter, false); // textviewDecS.ScrollToMark (textviewDecS.Buffer.CreateMark ("EndMark", iter, false), 0, false, 0, 0); // textviewDecS.Buffer.DeleteMark ("EndMark"); // } // --------------- // Generate Linenumber,copyright by [email protected],^-^ // TextViewUtils.GenerateLineNumber(textviewTextS,textviewTextSL,lineHeight); } }