近期搞一个com口传输的小项目,原来认为是一个挺简单的一个小功能,结果生产商发来com以后直接傻眼了,还要对相关的硬件流进行处理 如下

// 硬件流控制设置

dcb.fOutxCtsFlow = FALSE;

dcb.fRtsControl = FALSE;

// XON/XOFF流控制设置

dcb.fInX = TRUE;

//发送端(DEV)FALSE,接收端(PC):TRUE

dcb.fOutX = FALSE;  //发送端(DEV)TRUE,接收端(PC):FALSE

dcb.XonChar = XON;

dcb.XoffChar = XOFF;

dcb.XonLim = 3000;  //接收(输入)缓冲区未用空间大于3000,发送XON,允许发送。

dcb.XoffLim =1000;  //接收(输入)缓冲区已接收字符大于1000,发送XOFF,禁止发送。

然后看了以后发现c#里面根本就没有这一块的设计,看到网上有一个NetSerialComm的控件,应该是微软自己封装的com口接受程序,感觉还不错,比较符合我们自己的需求,但是跟我们平时使用的方式不太一样,所以在此写一下

    public class BaseTerm : CommBase
//需要自己写一个类来继承,否则的话commbase是抽象类无法处理
{
public static BaseTerm term;
public static CommBaseSettings settings;
//settings是必须要的,在设置的时候,使用重载来加载数据的基本设置
public void initCom()
{ if (settings==null)
{
settings = new CommBaseSettings(); }
if (term==null)
{
term = new BaseTerm();
} //设置波特率等
BaseTerm.settings.SetStandard("COM1", , CommBase.Handshake.XonXoff);
BaseTerm.settings.rxFlowX = false;
BaseTerm.settings.useDTR = HSOutput.none;
BaseTerm.settings.useRTS = HSOutput.none; if (BaseTerm.term.Open())
{
Console.WriteLine("串口打开了");
}
else
{
Console.WriteLine("串口打失败");
}
} //收取到的数据将在OnRxChar的里面增加
protected override void OnRxChar(byte c)
{
string s;
bool nl = false;
ASCII v = (ASCII)c;
Console.WriteLine(c.ToString("X"));
} //这个地方的设置最重要,否则数据将不会返回
protected override CommBaseSettings CommSettings()
{
return settings;
} }

当时处理的时候,卡到了几个地方,一个就是重载数据获取这块,另外一个就是设置的处理,需要重载那个CommSettings

这样处理完了就可以直接使用了!

NetSerialComm的基本使用方法的更多相关文章

  1. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  2. 在C#中实现串口通信的方法

    通常,在C#中实现串口通信,我们有四种方法: 第一:通过MSCOMM控件这是最简单的,最方便的方法.可功能上很难做到控制自如,同时这个控件并不是系统本身所带,所以还得注册,不在本文讨论范围.可以访问h ...

  3. c#中实现串口通信的几种方法

    c#中实现串口通信的几种方法 通常,在C#中实现串口通信,我们有四种方法: 第一:通过MSCOMM控件这是最简单的,最方便的方法.可功能上很难做到控制自如,同时这个控件并不是系统本身所带,所以还得注册 ...

  4. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  5. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  6. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  7. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  8. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  9. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

随机推荐

  1. kali linux 之 DNS信息收集

    [dig]命令的使用: dig是linux中的域名解析工具,功能比nslookup强很多,使用也很方便. windows系统下使用dig须下载安装一下. 使用方法: root@kali:~# dig ...

  2. C链表反转(时间复杂度O(n))

    面试的时候经常会出现的问题,现在都做一遍,回忆一下,练练手. 这个题目需要注意两点: 1.head->next 要先设置为NULL ,否则反转后,它还是指向之前的next节点 2.需要有一个tm ...

  3. 函数(Function)作用域 / 远程函数执行

    函数跟变量一样也是有作用域的:Global.Script.Local.Private Global:作用于整个PowerShell会话,只要PowerShell会话不结束,被Global修饰的变量和函 ...

  4. [AngularJS] angular-formly: Default Options

    angular-formly allows you to keep your forms as DRY as possible. TheoptionsTypes property is one way ...

  5. cocos2dx jsb 在IOS与安卓下的一些不同之处

    cocos2dx版本 2.1.4 1:字体大小 cocosbuilder publish后应该注意IOS和安卓目录下的字体文件的规格是否齐全: 2:cc.LabelTTF 在ios下,cc.Label ...

  6. Sample Ant Build File - WAR--reference

    I am using the Spring SimpleFormController example to illustrate the build process. The figure below ...

  7. linux 清空文件内容命令

    清空文件内容命令 $ echo "" >log.log > 是重写,覆盖式 >>是尾部追加

  8. leecode 每日解题思路 64 Minimum Path Sum

    题目描述: 题目链接:64 Minimum Path Sum 问题是要求在一个全为正整数的 m X n 的矩阵中, 取一条从左上为起点, 走到右下为重点的路径, (前进方向只能向左或者向右),求一条所 ...

  9. 【亲测可用】MySQL 4.1迁移到MySQL 5.0版本的中文乱码问题解决

    核心:先导出结构,再导出数据. 结构最好使用myphpadmin导出.使用mysqldump导出的可能会导致一些问题. ---------------以下为转载---------------- 在生成 ...

  10. 走进React的学习之路

    GIT: 代码管理.https://git-scm.com/book/zh/v2 ES6: http://www.infoq.com/cn/minibooks/ES6-in-Depth Webpack ...