C# | 极简代码实现串口通信,功能超丰富 (使用BytesIO通信库)

简介: C# 极简代码实现串口通信,功能超丰富安装NuGet库程序截图事件监听设计及实现界面代码源码下载

在这里插入图片描述

C# 极简代码实现串口通信,功能超丰富

安装NuGet库

对项目右键单击,选择“管理NuGet程序包”。
在这里插入图片描述
搜索“BytesIO”,在列表中选择“STTech.BytesIO.Serial”串口通信库,在右边的详情面板中单击“安装”。
在这里插入图片描述

程序截图

在这里插入图片描述

事件监听

通过SerialClient可以监听串口的事件。
在这里插入图片描述

设计及实现

界面

控件排布及命名如图所示。
在这里插入图片描述

代码

主界面完整代码如下所示:

using STTech.BytesIO.Serial;
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace Test.BytesIO.Serial.Desktop
{
   
    public partial class MainForm : Form
    {
   
        // 串口连接客户端
        private SerialClient client;

        public MainForm()
        {
   
            InitializeComponent();

            // 创建串口通信客户端
            client = new SerialClient();

            // 向下拉选项框中添加所有串口名称
            cbPort.Items.AddRange(client.GetPortNames());

            // 监听连接成功事件
            client.OnConnectedSuccessfully += Client_OnConnectedSuccessfully;
            // 监听连接失败事件
            client.OnConnectionFailed += Client_OnConnectionFailed;
            // 监听断开连接事件
            client.OnDisconnected += Client_OnDisconnected;
            // 监听接收数据事件
            client.OnDataReceived += Client_OnDataReceived;
            // 监听发送数据事件
            client.OnDataSent += Client_OnDataSent;
            // 监听发生异常事件
            client.OnExceptionOccurs += Client_OnExceptionOccurs;
        }

        private void Client_OnExceptionOccurs(object sender, STTech.BytesIO.Core.Entity.ExceptionOccursEventArgs e)
        {
   
            Print($"异常: {e.Exception.Message}");
        }

        private void Client_OnDataSent(object sender, STTech.BytesIO.Core.Entity.DataSentEventArgs e)
        {
   
            Print($"发送: {e.Data.ToHexCodeString()}({e.Data.EncodeToString()})");
        }

        private void Client_OnDataReceived(object sender, STTech.BytesIO.Core.Entity.DataReceivedEventArgs e)
        {
   
            Print($"接收: {e.Data.ToHexCodeString()}({e.Data.EncodeToString()})");
        }

        private void Client_OnDisconnected(object sender, STTech.BytesIO.Core.Entity.DisconnectedEventArgs e)
        {
   
            Print("断开连接");
        }

        private void Client_OnConnectionFailed(object sender, STTech.BytesIO.Core.Entity.ConnectionFailedEventArgs e)
        {
   
            Print("连接失败");
        }

        private void Client_OnConnectedSuccessfully(object sender, STTech.BytesIO.Core.Entity.ConnectedSuccessfullyEventArgs e)
        {
   
            Print("连接成功");
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
   
            if (string.IsNullOrWhiteSpace(cbPort.Text))
            {
   
                return;
            }

            client.PortName = cbPort.Text;
            client.Connect();
        }

        private void btnDisconnect_Click(object sender, EventArgs e)
        {
   
            client.Disconnect();
        }

        private void btnSend_Click(object sender, EventArgs e)
        {
   
            client.Send(tbSend.Text.GetBytes());
        }

        /// <summary>
        /// 打印日志
        /// </summary>
        /// <param name="msg"></param>
        private void Print(string msg)
        {
   
            Invoke(new EventHandler(delegate
            {
   
                tbRecv.AppendText($"[{DateTime.Now.ToLongTimeString()}] {msg}\r\n");
            }));
        }
    }
}

源码下载

如果无法调试运行也没有关系,我已经整理打包上传到了CSDN下载站提供0积分下载:
https://download.csdn.net/download/lgj123xj/85139168

相关文章
|
2月前
|
缓存 C# Windows
C#程序如何编译成Native代码
【10月更文挑战第15天】在C#中,可以通过.NET Native和第三方工具(如Ngen.exe)将程序编译成Native代码,以提升性能和启动速度。.NET Native适用于UWP应用,而Ngen.exe则通过预编译托管程序集为本地机器代码来加速启动。不过,这些方法也可能增加编译时间和部署复杂度。
155 2
|
1月前
|
开发框架 C# iOS开发
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
|
1月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
2月前
|
监控 前端开发 安全
C#一分钟浅谈:文件上传与下载功能实现
【10月更文挑战第2天】在Web应用开发中,文件的上传与下载是常见需求。本文从基础入手,详细讲解如何在C#环境下实现文件上传与下载。首先介绍前端表单设计及后端接收保存方法,使用`&lt;input type=&quot;file&quot;&gt;`与`IFormFile`接口;接着探讨错误处理与优化策略,如安全性验证和路径管理;最后讲解文件下载的基本步骤,包括确定文件位置、设置响应头及发送文件流。此外,还提供了进阶技巧,如并发处理、大文件分块上传及进度监控,帮助开发者构建更健壮的应用系统。
149 15
|
3月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
69 8
|
2月前
|
开发框架 Cloud Native .NET
10 个 C# 关键字和功能
10 个 C# 关键字和功能
59 8
|
2月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
91 2
|
3月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
55 1
|
2月前
|
中间件 数据库连接 API
C#数据分表核心代码
C#数据分表核心代码
43 0