码迷,mamicode.com
首页 > Web开发 > 详细

NetSerialComm的基本使用方法

时间:2014-08-29 12:43:28      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   使用   ar   数据   div   log   

 

近期搞一个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", 115200, 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的基本使用方法

标签:style   blog   color   os   使用   ar   数据   div   log   

原文地址:http://www.cnblogs.com/lizhaoduo/p/3944467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!