?? 調試器.cs
字號:
?using System;
using System.Drawing;
using System.Windows.Forms;
using Lz.算法;
namespace Lz.串口
{
public class TiaoShiQi
{
#region 轉換函數
/// <summary>
/// 把字符串傳進來,輸出一個byte數組,可以把此byte數組直接發送到串口中。
/// </summary>
/// <param name="inString">要轉換的字符串</param>
/// <param name="is16">是否已經是16進制數據,true時已經是(已經轉換好的數據),false時不是(需要內部轉換)</param>
/// <returns>輸出一個byte數組</returns>
public static byte[] StringToBytes(string inString, bool is16)
{
if (is16)
{
return GeShi轉換算法._16ToBtyes(inString);
}
else
{
return GeShi轉換算法.StringToBtyes(inString);
}
}
#endregion
#region 委托管理,直接調用sjcl數據處理()就可以把字符串放到控件中。可以跨線程。
delegate void weituo(Form owner, RichTextBox richTextBox, string inString, Color co);
/// <summary>
/// 委托的實現。會被sjcl事件處理函數調用。
/// </summary>
/// <param name="rich">控件</param>
/// <param name="s">字符串</param>
/// <param name="co">顏色</param>
private static void jieshou(Form f, RichTextBox rich, string s, Color co)
{
if (!rich.InvokeRequired)
{
toRichBox(rich, s, co);
}
else
{
weituo jie = new weituo(jieshou);
f.BeginInvoke(jie, new object[] { f, rich, s, co });//帶參數的委托調用
}
}
/// <summary>
/// 把字符串添加到控件中,可以選擇控件,可以選擇顏色
/// </summary>
/// <param name="rich">控件</param>
/// <param name="inStr">字符串</param>
/// <param name="co">顏色</param>
private static void toRichBox(RichTextBox rich, string inStr, Color co)
{
rich.Select(rich.Text.Length, 0);
rich.SelectionColor = co;
rich.AppendText(inStr);
}
/// <summary>
/// 處理接收來的數據,會調用一個委托jieshou。
/// </summary>
/// <param name="bt">需要處理的數據數組</param>
/// <param name="_xs16">是否要顯示16進制數據</param>
/// <param name="_xsstr">是否要以字符串形式顯示</param>
/// <param name="xin">是否新行顯示</param>
public static void sjcl數據處理(Form f, RichTextBox rich, byte[] bt, bool _xs16, bool _xsstr, bool xin)
{
string _16 = GeShi轉換算法.BytesTo16(bt, Enum16進制隔離符.空格);//把byte轉換成16進制
string _str = GeShi轉換算法.BytesToString(bt, Enum16進制隔離符.無);//把byte轉換成字符串
string xinstr = "\n";
if (_xs16)//16進制顯示
{
jieshou(f, rich, _16, Color.Black);
if (_xsstr)//字符串顯示
{ //16進制和字符串都要顯示
jieshou(f, rich, _str, Color.Red);
if (xin)
{ //新行顯示
jieshou(f, rich, xinstr, Color.Black);
}
}
else
{ //只顯示16進制
if (xin)
{ //新行顯示
jieshou(f, rich, xinstr, Color.Black);
}
}
}
else
{
if (_xsstr)//顯示字符串
{
jieshou(f, rich, _str, Color.Red);
if (xin)
{ //新行顯示
jieshou(f, rich, xinstr, Color.Black);
}
}
else//不顯示任何信息
{
}
}
}
#endregion
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -