📄 gpscomport.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;
namespace GPSClassLibrary
{
/// <summary>
/// 波特率
/// </summary>
public enum BaudRate : int
{
_300 = 300,
_600 = 600,
_1200 = 1200,
_2400 = 2400,
_4800 = 4800,
_9600 = 9600,
_19200 = 19200,
_38400 = 38400,
_43000 = 43000,
_56000 = 56000,
_57600 = 57600,
_115200 = 115200
}
/// <summary>
/// GPS串口类
/// </summary>
public class GPSComport
{
#region Private
// 串口端口
SerialPort serialport;
// 接收的数据
string strReceived = null;
#endregion
#region Attribute
/// <summary>
/// 接收的数据,读取后ReceivedData清空
/// </summary>
public string ReceivedData
{
get
{
string tmp = strReceived;
strReceived = null;
return tmp;
}
}
#endregion
#region Construction
/// <summary>
/// 构造
/// </summary>
/// <param name="PortName">COM1,COM2...COM9,可在设备里查,可用GetPortNames查询</param>
/// <param name="BaudRate"></param>
/// <param name="DataBits"></param>
/// <param name="StopBits"></param>
/// <param name="Parity"></param>
public GPSComport(string PortName,BaudRate BaudRate,int DataBits,StopBits StopBits,Parity Parity)
{
serialport = new SerialPort(PortName);
serialport.BaudRate = (int)BaudRate;
serialport.DataBits = DataBits;
serialport.StopBits = StopBits;
serialport.Parity = Parity;
serialport.DataReceived += new SerialDataReceivedEventHandler(serialport_DataReceived);
}
#endregion
#region Method
/// <summary>
/// 打开端口
/// </summary>
/// <returns></returns>
public bool OpenPort()
{
if (serialport.IsOpen == false)
{
try
{
serialport.Open();
}
catch
{
return false;
}
}
return true;
}
/// <summary>
/// 关闭端口
/// </summary>
/// <returns></returns>
public bool ClosePort()
{
if (serialport.IsOpen)
{
try
{
serialport.Close();
}
catch
{
return false;
}
}
return true;
}
/// <summary>
/// 发送数据
/// </summary>
/// <param name="snddata"></param>
/// <returns></returns>
public bool SendData(string snddata)
{
try
{
serialport.WriteLine(snddata);
}
catch
{
return false;
}
return true;
}
/// <summary>
/// 接收数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void serialport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string str = serialport.ReadLine();
if (str.Trim() != "")
strReceived = str;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -