• 大小: 229KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: C#  socket  serialPort  

资源简介

一款TCP转串口的转发工具,本人亲自开发,提学习和交流。 程序将来自TCP服务端发送过来的socket数据转到串口发送出去,架起了TCP与串口之前的通讯, 程序测试稳定可靠。使用vs2017开发。

资源截图

代码片段和文件信息

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

namespace SocketToSerialPort
{
    class Class1
    {
        public SerialPort _serialPort = null;
        //定义委托
        public delegate void SerialPortDataReceiveEventArgs(object sender SerialDataReceivedEventArgs e byte[] bits);
        //定义接收数据事件
        public event SerialPortDataReceiveEventArgs DataReceived;
        public bool ReceiveEventFlag = false;  //接收事件是否有效 false表示有效


        /// 
                /// 构造函数可以自定义串口的初始化参数
                /// 

                /// 需要操作的COM口名称
                /// COM的速度
                /// 奇偶校验位
                /// 数据长度
                /// 停止位
        public Class1(string comPortName int baudRate Parity parity int dataBits StopBits stopBits)
        {
            _serialPort = new SerialPort(comPortName baudRate parity dataBits stopBits);
            setSerialPort();
        }
        /// 
        /// 设置串口资源还需重载多个设置串口的函数
        /// 

        void setSerialPort()
        {
            if (_serialPort != null)
            {
                //设置触发DataReceived事件的字节数为1
                _serialPort.ReceivedBytesThreshold = 1;
                //接收到一个字节时,也会触发DataReceived事件
                _serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived);

            }
        }
        /// 
        /// 打开串口资源
        /// 

        public bool openPort()
        {
            bool ok = false;
            //如果串口是打开的,先关闭
            if (_serialPort.IsOpen)
                _serialPort.Close();
            try
            {
                //打开串口
                _serialPort.Open();
                ok = true;
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            return ok;
        }

        /// 
        /// 关闭串口资源操作完成后一定要关闭串口
        /// 

        public void closePort()
        {
            //如果串口处于打开状态则关闭
            if (_serialPort.IsOpen)
                _serialPort.Close();
        }

        /// 
        /// 获取端口连接状态
        /// 

        /// 
        public bool getIsOpen()
        {
            //如果串口是打开的,true否则为false;
            bool flag = false;
            try { flag = _serialPort.IsOpen; }
            catch { }
            return flag;

        }


        /// 
        /// 接收串口数据事件
        /// 

        /// 
        /// 
        void _serialPort_DataReceived(object sender SerialDataReceivedEventArgs e)
        {
            if (ReceiveEventFlag) return;

      

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     47104  2019-09-10 16:35  Test\.vs\Test\v15\.suo

     文件          0  2019-09-09 16:00  Test\.vs\Test\v15\Server\sqlite3\db.lock

     文件     593920  2019-09-10 10:31  Test\.vs\Test\v15\Server\sqlite3\storage.ide

     文件      32768  2019-09-10 08:36  Test\.vs\Test\v15\Server\sqlite3\storage.ide-shm

     文件    4128272  2019-09-10 16:21  Test\.vs\Test\v15\Server\sqlite3\storage.ide-wal

     文件        189  2019-09-09 16:00  Test\SocketToSerialPort\App.config

     文件      14848  2019-09-10 16:34  Test\SocketToSerialPort\bin\Debug\SocketToSerialPort.exe

     文件        189  2019-09-09 16:00  Test\SocketToSerialPort\bin\Debug\SocketToSerialPort.exe.config

     文件      44544  2019-09-10 16:34  Test\SocketToSerialPort\bin\Debug\SocketToSerialPort.pdb

     文件       6123  2019-09-09 18:14  Test\SocketToSerialPort\Class1.cs

     文件       3189  2019-09-10 14:49  Test\SocketToSerialPort\Form1.cs

     文件       4880  2019-09-10 14:49  Test\SocketToSerialPort\Form1.Designer.cs

     文件       5817  2019-09-10 14:49  Test\SocketToSerialPort\Form1.resx

     文件       1443  2019-09-09 22:46  Test\SocketToSerialPort\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7124  2019-09-10 00:02  Test\SocketToSerialPort\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件         42  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.csproj.CoreCompileInputs.cache

     文件        703  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.csproj.FileListAbsolute.txt

     文件       1012  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.csproj.GenerateResource.cache

     文件      14848  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.exe

     文件      44544  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.pdb

     文件        180  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.Properties.Resources.resources

     文件        180  2019-09-10 16:34  Test\SocketToSerialPort\obj\Debug\SocketToSerialPort.TcpToSerialPort.resources

     文件          0  2019-09-09 16:00  Test\SocketToSerialPort\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2019-09-09 16:00  Test\SocketToSerialPort\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2019-09-09 16:00  Test\SocketToSerialPort\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件        540  2019-09-09 16:01  Test\SocketToSerialPort\Program.cs

     文件       1334  2019-09-09 16:00  Test\SocketToSerialPort\Properties\AssemblyInfo.cs

     文件       2849  2019-09-09 16:00  Test\SocketToSerialPort\Properties\Resources.Designer.cs

     文件       5612  2019-09-09 16:00  Test\SocketToSerialPort\Properties\Resources.resx

     文件       1105  2019-09-09 16:00  Test\SocketToSerialPort\Properties\Settings.Designer.cs

............此处省略22个文件信息

评论

共有 条评论

相关资源