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