• 大小: 75KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: C#
  • 标签: 惯导  C#  串口通信  

资源简介

用C#写的读取惯导数据的小实例,惯导型号为VG620H,采用串口通信,只是简单的实现,适合新手参考一哈

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.ComponentModel;
using System.Threading;

namespace IMUCOMTest
{
    public delegate void SerialPortEventHandler(object sender SerialPortEventArgs e);

    public class SerialPortEventArgs : EventArgs
    {
        public bool isOpened = false;
        public Byte[] receivedBytes = null;
    }
    class ComModel
    {
        private SerialPort sp = new SerialPort();
        public event SerialPortEventHandler comReceiveDataEvent = null;
        public event SerialPortEventHandler comOpenEvent = null;
        public event SerialPortEventHandler comCloseEvent = null;

        private object thisLock = new object();

        private void DataReceived(object sender SerialDataReceivedEventArgs e)
        {
            if(sp.BytesToRead <= 0)
            {
                return;
            }
            lock(thisLock)
            {
                int len = sp.BytesToRead;
                Byte[] data = new Byte[len];
                try
                {
                    sp.Read(data 0 len);
                    sp.DiscardInBuffer();
                }
                catch(System.Exception)
                {

                }
                SerialPortEventArgs args = new SerialPortEventArgs();
                args.receivedBytes = data;
                if(comReceiveDataEvent != null)
                {
                    comReceiveDataEvent.Invoke(this args);
                }
            }
        }

        public bool Send(Byte[] bytes)
        {
            if (!sp.IsOpen)
            {
                return false;
            }

            try
            {
                sp.Write(bytes 0 bytes.Length);
            }
            catch (System.Exception)
            {
                return false;   //write failed
            }
            return true;        //write successfully
        }

        public void Open(string portName string baudRate 
            string dataBits string stopBits string parity 
            string handshake)
        {
            if(sp.IsOpen)
            {
                Close();
            }
            sp.PortName = portName;
            sp.BaudRate = Convert.ToInt32(baudRate);
            sp.DataBits = Convert.ToInt32(dataBits);

            if (handshake == “None“)
            {
                sp.RtsEnable = true;
                sp.DtrEnable = true;
            }

            SerialPortEventArgs args = new SerialPortEventArgs();
            try
            {
                sp.StopBits = (StopBits)Enum.Parse(typeof(StopBits) stopBits);
                sp.Parity = (Parity)Enum.Parse(typeof(Parity) parity);
                sp.Handshake = (Handshake)Enum.Parse(typeof(Handshake) handshake);
                sp.WriteTimeout = 1000;
                sp.ReceivedBytesThreshold = 34;
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-02-02 12:59  IMUCOMTest\
     目录           0  2018-02-02 12:59  IMUCOMTest\IMUCOMTest\
     文件        4157  2018-01-04 14:37  IMUCOMTest\IMUCOMTest\ComModel.cs
     文件       14004  2017-12-19 21:18  IMUCOMTest\IMUCOMTest\Form1.Designer.cs
     文件        7176  2018-01-05 14:21  IMUCOMTest\IMUCOMTest\Form1.cs
     文件        6017  2017-12-19 21:18  IMUCOMTest\IMUCOMTest\Form1.resx
     文件        2598  2017-12-13 19:15  IMUCOMTest\IMUCOMTest\IController.cs
     文件        3728  2017-12-13 19:05  IMUCOMTest\IMUCOMTest\IMUCOMTest.csproj
     文件         630  2017-12-13 19:35  IMUCOMTest\IMUCOMTest\Program.cs
     目录           0  2018-02-02 12:59  IMUCOMTest\IMUCOMTest\Properties\
     文件        1362  2017-12-13 16:05  IMUCOMTest\IMUCOMTest\Properties\AssemblyInfo.cs
     文件        2860  2017-12-13 16:34  IMUCOMTest\IMUCOMTest\Properties\Resources.Designer.cs
     文件        5612  2017-12-13 16:05  IMUCOMTest\IMUCOMTest\Properties\Resources.resx
     文件        1110  2017-12-13 16:34  IMUCOMTest\IMUCOMTest\Properties\Settings.Designer.cs
     文件         249  2017-12-13 16:05  IMUCOMTest\IMUCOMTest\Properties\Settings.settings
     文件         161  2017-12-13 16:33  IMUCOMTest\IMUCOMTest\app.config
     目录           0  2018-02-02 12:59  IMUCOMTest\IMUCOMTest\bin\
     目录           0  2018-02-02 12:59  IMUCOMTest\IMUCOMTest\bin\Debug\
     文件       17920  2018-01-05 14:21  IMUCOMTest\IMUCOMTest\bin\Debug\IMUCOMTest.exe
     文件         161  2017-12-13 16:33  IMUCOMTest\IMUCOMTest\bin\Debug\IMUCOMTest.exe.config
     文件       40448  2018-01-05 14:21  IMUCOMTest\IMUCOMTest\bin\Debug\IMUCOMTest.pdb
     文件       24216  2018-07-30 15:14  IMUCOMTest\IMUCOMTest\bin\Debug\IMUCOMTest.vshost.exe
     文件         161  2017-12-13 16:33  IMUCOMTest\IMUCOMTest\bin\Debug\IMUCOMTest.vshost.exe.config
     文件         490  2018-04-12 07:35  IMUCOMTest\IMUCOMTest\bin\Debug\IMUCOMTest.vshost.exe.manifest
     目录           0  2018-02-02 12:59  IMUCOMTest\IMUCOMTest\obj\
     目录           0  2018-02-02 12:59  IMUCOMTest\IMUCOMTest\obj\Debug\
     文件        1675  2017-12-13 21:00  IMUCOMTest\IMUCOMTest\obj\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        6543  2018-07-30 15:14  IMUCOMTest\IMUCOMTest\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件         180  2017-12-19 21:18  IMUCOMTest\IMUCOMTest\obj\Debug\IMUCOMTest.Form1.resources
     文件         180  2017-12-13 19:05  IMUCOMTest\IMUCOMTest\obj\Debug\IMUCOMTest.Properties.Resources.resources
     文件        1072  2018-07-30 15:14  IMUCOMTest\IMUCOMTest\obj\Debug\IMUCOMTest.csproj.FileListAbsolute.txt
............此处省略8个文件信息

评论

共有 条评论