C#对serialport 类的封装
实现是来并不难,主要是面向接口编程思想:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ClassLibrary1
{//串口接口定义public interface IComserial{int ReadBuf(byte[] buf, int offset, int count);void WriteBuf(byte[] buf, int offSet, int count);string ReadLine();void WriteLine(string str);string Com_port { get; set; }int Com_Speed { get; set; }int Read_Timeout { get; set; }int Write_Timeout { get; set; }string NewLine { get; set; }bool Open();bool Close();bool IsOpen();}
}
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ClassLibrary1
{public class SerialComEntity : IComserial{public string Com_port { get; set; }public int Com_Speed { get; set; }public int Read_Timeout { get; set; }public int Write_Timeout { get; set; }public string NewLine { get ; set; }private SerialPort serialPort;~SerialComEntity(){ this.Close(); }public bool Close(){if (serialPort != null){serialPort.Close();serialPort.Dispose();serialPort = null;return true;}else{return false;}}public bool IsOpen(){return serialPort != null && serialPort.IsOpen;}public bool Open(){Close();this.serialPort = new SerialPort(Com_port, Com_Speed, Parity.None, 8, StopBits.One);serialPort.ReadTimeout = this.Read_Timeout;serialPort.WriteTimeout = Write_Timeout;if (string.IsNullOrEmpty( this.NewLine)){serialPort.NewLine = this.NewLine;}try{serialPort.Open();}catch (Exception){Close();return false;}return true;}public int ReadBuf(byte[] buf, int offset, int count){if (!this.IsOpen()){return -1;}return this.serialPort.Read(buf, offset, count);}public void WriteBuf(byte[] buf, int offSet, int count){if (!this.IsOpen()){return;}serialPort.Write(buf, offSet, count);}public string ReadLine(){if (!Open()){return string.Empty;}return serialPort.ReadLine();}public void WriteLine(string str){if (!Open()){return ;}serialPort.Write(str);}}
}
C#对serialport 类的封装相关推荐
- 利用SerialPort类实现收发短信(C# 2.0)
作者:veryhappy(wx.net) 在.NET 1.1版本中微软并没有封装一个串口操作的类,但是我们可以在网络上找到通过WIN32 API读写文件方式访问串口的开源类库,比如:JustinIO. ...
- 【C++】 15_类于封装的概念
类的组合 电脑一般而言是由 CPU, 内存,主板,键盘和硬盘等部件组合而成. 思考: 学习电脑组装需要多少时间? 学习电脑组装是否需要学习显示器,键盘,鼠标,主板,内存等部件的设计与制造? 类的封装 ...
- 在C#中使用SerialPort类实现串口通信
在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等.本文章将本人在学习过程中从网络上搜集到的相关信息写出来供大家参考. 下面主要介绍该类的主要属性(表1) ...
- LruCache缓存处理及异步加载图片类的封装
Android中的缓存处理及异步加载图片类的封装 一.缓存介绍: (一).Android中缓存的必要性: 智能手机的缓存管理应用非常的普遍和需要,是提高用户体验的有效手段之一. 1.没有缓存的弊端 ...
- Redis工具类的封装
Redis工具类的封装 <dependency><groupId>redis.clients</groupId><artifactId>jedis< ...
- c++ 私有内部类_C++类成员的访问权限以及类的封装
"程序员大咖,一个分享编程知识的公众号.跟着站长一起学习,每天都有进步. 文章不涉及代码,不烧脑细胞,人人都可以学习. 当你决定关注「程序员大咖CodePush」,你已然超越了90%的程序员 ...
- 第五讲 类的封装和类的继承
第五讲 类的封装和类的继承 主要内容 软件包的创建和使用 Java访问权限修饰词 类的访问权限修饰词 Java中类的层次结构和类的继承 对象的初始化再讨论 软件包的创建和使用 什么是软件包(pac ...
- 1.1 Java类的封装
封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问.例如:一台计算机内部极其复杂,有主板.CPU.硬盘和内存, 而一般用户不需要了解它的内部细节 ...
- php中curl类常用方法封装和详解
curl对于PHP开发这来说是经常用到的一个类. 在抓取远程文件或是内容的时候就更常用了. 不过原生态的curl类比较复杂, 尤其对于新手来说,很多参数很容易让人头晕,现在好了. 这个类是封装了几个常 ...
最新文章
- Bitcoin.com宣布将成立2亿美元的BCH生态系统投资基金
- Linux内核系统时钟管理 感想总结 (未完待续)
- C# String部分方法的例子StringBuilder的简单介绍
- Python之路【第八篇】python实现线程池
- 忠告:不要在愚蠢时间写代码
- 欧几里得算法扩展欧几里得算法
- Python初学的几个迷惑点
- jdk和cglib简单理解
- 用注解方式写定时任务
- 解释spring,struts,hibernate优缺点
- Que2Search: Fast and Accurate Query and Document Understanding for Search at Facebook论文笔记
- Autolayout屏幕适配——代码实现(苹果公司 / VFL语言 / 第三方框架Masonry)
- Ubuntu 18.04联网问题(已解决)
- Bugly-全量更新
- 使用 Illustrator 中组合形状的方法详解
- Android补间动画之透明度动画
- Serenity框架官方文档翻译3.2(多租户)
- beta阶段贡献分配实施
- java解析xlsx表格,写入xlsx表格实例
- 为什么有些人一游泳就双眼通红?这两点没做好你也会!