?? 串口.cs
字號:
?using System;
using System.Collections;//對ArrayList的支持
using System.Text;//對Encoding的支持
using System.IO.Ports;//對串口操作的支持
using System.Windows.Forms;//對控件操作的支持
using System.Drawing;//對顏色的支持
using Lz.算法;//對字符格式轉換的支持
namespace Lz.串口
{
public class COM:SerialPort
{
#region 常量定義
private static int[] _baudRate = { 300, 600, 900, 1200, 2400, 4800, 9600, 19200 };
private static int[] _shujv = { 6, 7, 8 };
#endregion
#region 獲取串口參數填充到界面
/// <summary>
/// 獲取機器上所有的串口
/// </summary>
/// <returns></returns>
public static string[] AllCom()
{
return SerialPort.GetPortNames();
}
/// <summary>
/// 獲取所有的波特率(在常量區定義)
/// </summary>
/// <returns></returns>
public static int[] AllBaudRate()
{
return _baudRate;
}
/// <summary>
/// 獲取所有的校驗位
/// </summary>
/// <returns></returns>
public static ArrayList AllParity()
{
ArrayList al = new ArrayList();
foreach (Parity pt in Enum.GetValues(typeof(Parity)))
{
al.Add(ParityToString(pt).ToString());
}
return al;
}
/// <summary>
/// 獲取所有的數據位(在常量區定義)
/// </summary>
/// <returns></returns>
public static int[] AllDataBits()
{
return _shujv;
}
/// <summary>
/// 獲取所有的停止位
/// </summary>
/// <returns></returns>
public static ArrayList AllStopBits()
{
ArrayList al = new ArrayList();
al.Add("1位");
al.Add("2位");
return al;
}
#endregion
#region 串口參數與漢字的轉換(例:Even變成偶校驗)
/// <summary>
/// 把停止位StopBits轉換成漢字(例:"StopBits.None"變成"0位")
/// </summary>
/// <param name="_p"></param>
/// <returns></returns>
public static string StopBitsToSting(StopBits stopBits)
{
string s;
switch (stopBits)
{
case StopBits.None:
s = "0位";
break;
case StopBits.One:
s = "1位";
break;
case StopBits.Two:
s = "2位";
break;
case StopBits.OnePointFive:
s = "1.5位";
break;
default:
s = "1位";
break;
}
return s;
}
/// <summary>
/// 把校驗位Parity轉換成漢字(例:Even變成偶校驗)
/// </summary>
/// <param name="parity"></param>
/// <returns></returns>
public static string ParityToString(Parity parity)
{
string s;
switch (parity)
{
case Parity.Even:
s = "偶效驗";
break;
case Parity.Mark:
s = "保留為1";
break;
case Parity.None:
s = "不效驗";
break;
case Parity.Odd:
s = "奇效驗";
break;
case Parity.Space:
s = "保留為0";
break;
default:
s = "保留為0";
break;
}
return s;
}
/// <summary>
/// 把漢字轉換成停止位StopBits(例:"0位"變成"StopBits.None")
/// </summary>
/// <param name="inString"></param>
/// <returns></returns>
public static StopBits StingToStopBits(string inString)
{
StopBits p;
switch (inString)
{
case "0位":
p = StopBits.None;
break;
case "1位":
p = StopBits.One;
break;
case "2位":
p = StopBits.Two;
break;
case "1.5位":
p = StopBits.OnePointFive;
break;
default:
p = StopBits.One;
break;
}
return p;
}
/// <summary>
/// 把漢字轉換成校驗位Parity(例:"偶效驗"變成"Parity.Even")
/// </summary>
/// <param name="inString"></param>
/// <returns></returns>
public static Parity StringToParity(string inString)
{
Parity p;
switch (inString)
{
case "偶效驗":
p = Parity.Even;
break;
case "保留為1":
p = Parity.Mark;
break;
case "不效驗":
p = Parity.None;
break;
case "奇效驗":
p = Parity.Odd;
break;
case "保留為0":
p = Parity.Space;
break;
default:
p = Parity.None;
break;
}
return p;
}
#endregion
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -