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

相关文章
|
4月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
471 27
|
2月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
1252 123
|
9月前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
1702 82
|
缓存 C# Windows
C#程序如何编译成Native代码
【10月更文挑战第15天】在C#中,可以通过.NET Native和第三方工具(如Ngen.exe)将程序编译成Native代码,以提升性能和启动速度。.NET Native适用于UWP应用,而Ngen.exe则通过预编译托管程序集为本地机器代码来加速启动。不过,这些方法也可能增加编译时间和部署复杂度。
676 2
|
12月前
|
开发框架 C# iOS开发
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
387 3
|
传感器 IDE 测试技术
C#一分钟浅谈:Visual Studio IDE 高级功能
【10月更文挑战第24天】本文从初学者角度介绍了 Visual Studio 的高级功能,包括安装与配置、创建项目、运行与调试、常见问题及解决方案(如代码格式化、重构、导航、单元测试、代码分析),以及智能感知、Live Unit Testing、代码生成和代码片段等高级功能,帮助开发者提高效率和代码质量。
228 1
|
监控 前端开发 安全
C#一分钟浅谈:文件上传与下载功能实现
【10月更文挑战第2天】在Web应用开发中,文件的上传与下载是常见需求。本文从基础入手,详细讲解如何在C#环境下实现文件上传与下载。首先介绍前端表单设计及后端接收保存方法,使用`&lt;input type=&quot;file&quot;&gt;`与`IFormFile`接口;接着探讨错误处理与优化策略,如安全性验证和路径管理;最后讲解文件下载的基本步骤,包括确定文件位置、设置响应头及发送文件流。此外,还提供了进阶技巧,如并发处理、大文件分块上传及进度监控,帮助开发者构建更健壮的应用系统。
689 15
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
452 8
|
开发框架 Cloud Native .NET
10 个 C# 关键字和功能
10 个 C# 关键字和功能
155 8
|
12月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
419 0

热门文章

最新文章