毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
x—γ射线个人报警仪上位机管理软件(5)
SerialPort类同样也有很多的方法来实现它与其它硬件的通信,其常用方法如表4-2所示。
表4-2 SerialPort类的常用方法
方法名称 说 明
Close 关闭端口连接,将IsOpen属性设置为False,并释放内部Stream对象
Open 打开一个新的串行端口连接
Read 从SerialPort输入缓冲区中读取
ReadByte 从SerialPort输入缓冲区中同步读取一个字节
ReadChar 从SerialPort输入缓冲区中同步读取一个字符
ReadLine 一直读取到输入缓冲区中指定NewLine值
ReadTo 一直读取到输入缓冲区中指定的value的字符
Write 已重载。将数据写入串行端口输出缓冲区
WriteLine 将指定的字符串和NewLine值写入输出缓冲区
在本系统的串口通信设计中最重要的设计就是数据接收的方法设计,SerialPort类控件在C#中有许许多多的事件可以调用,使用其中的DataReceived事件来触发的方法,只要完美的设置好其中ReceivedBytesThreshold的数值就可以很方便的使用,若接收的数据长度为定长时,则只要将其中ReceivedBytesThreshold的数值设置为该接收数据的长度即可;若接收的数据的末端是固定的字符或字符串则可用ReadTo的方法来实现或在DataReceived事件中判断接收的字符是否符合条件,若满足条件就进行接收。SerialPort类读取数据的方法许多都是同步阻塞调用,应尽量避免在主线程中调用,可以使用线程间处理调用或异步处理来调用这些读取数据的方法。
事件表示C#中已定义的一个对象,即处理通知过程的对象。可是这样说未免抽象,对于像我这样的初学者往往还是难以理解。而我的理解是,事件是处理事件的对象感兴趣的,能够感知或捕获到一种事物状态的改变。说白了,事件即改变。哲学上说,事物的运动是永恒的,静止是相对的。永恒的运动意着事物本身在发生着改变,所以无时无刻,我们生活的这个世界和宇宙都有无穷的改变在发生,但是,这当中的绝大多数对你来说并不是事件,秘鲁总统死了,对秘鲁全国所有的人来说或许是一个事件,因为他们关心,可是对课堂正在听课全然不知的你来说就不是,除非你听到了这样一个
新闻
,开始关注,那么这个变化对你来说就是一个事件。所以,在这所有的变化中,你能捕获到的,感兴趣的变化,对你来说,就是一个事件。
委托是C#中的一种引用类型,类似于C/C++中的函数指针。与函数指针不同的是,委托是面向对象、类型安全的,而且委托可以引用静态方法和实例方法,而函数指针只能引用静态函数。委托主要用于.NET Framework中的事件处理程序和回调函数。
一个委托可以看作一个特殊的类,因而它的定义可以像常规类一样放在同样的位置。与其他类一样,委托必须先定义以后,再实例化。与类不同的是,实例化的委托没有与之相应的术语(类的实例化称作对象),作为区分我们将实例化的委托称为委托实例。
C#中的委托和指针不一样,指针不通过MSIL而是直接和内存打交道,这也是指针不安全的原因所在,当然也是采用指针能够提高程序运行速度的缘故;委托不与内存打交道,而是把这一工作交给CLR去完成。
从SerialPort对象接收数据时,由于DataReceived事件是在辅线程被引发,当接收到一条完整的数据时就返回到窗体上显示或返回主线程处理时,特别要注意跨线程的处理,C#可采用控件异步委托的方法Control.BeginInvoke及同步委托的方法Invoke。
如图4-1表示上位机软件编程实现的流程图。
共10页:
上一页
1
2
3
4
5
6
7
8
9
10
下一页
上一篇:
激光测距中激光接收电路的设计
下一篇:
基于blackfin DSP视频字符叠加的实现
π/4—DQPSK调制解调技术的研究与仿真+程序
基于玻色—爱因斯坦凝聚...
基于FPGA的机器视觉算法验...
HFSS毫米波微带—波导的转换电路设计
MEMS惯性GPS信息融合技术的个人导航定位方法
辩护律师的作证义务和保...
谷度酒庄消费者回访调查问卷表
《醉青春》导演作品阐述
中国古代秘书擅权的发展和恶变
拉力采集上位机软件开发任务书
浅谈新形势下妇产科护理...
浅谈传统人文精神茬大學...
高校网球场馆运营管理初探【1805字】
国内外无刷直流电动机研究现状
多元化刑事简易程序构建探讨【9365字】