⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpscomport.cs

📁 gps
💻 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 + -