C#串口助手学习笔记(二)

一、初始化控件

当我们布置好界面后第一件事就是初始化界面上的控件

波特率组合框:整型      4800 9600 19200 38400 57600 115200

数据位组合框:整形      7    8

停止位组合框:   字符串     1     1.5     2

握手协议组合框      字符串     None     XOnXOff

校验位组合框       字符串    None    Even   Mark   Odd

串口组合框通过SerialPort类的获取串口方法来写入

二、工具类的介绍

该项目需要使用到SerialPort类,关于介绍可以在编程手册查到,下面放上手册中截到的图。

用到的属性BaudRate、DataBits、Parity、PortName、StopBits

用到的方法Close、GetPortName、Open、Read、Write

用到的事件DataReceived

数据转换类Convert     将接收到的数据转换为需要的数据

                  BitConvert     将基础数据类型与字节数组相互转换

 

Enum类   Parse方法          Parse(枚举类型,字符串)将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。

例如  Enum.Parse(typeof(StopBits), stopBits);stopBit="1",该语句可将“1”转换位所对应的枚举字符串“One”

三、建立串口模型

串口模型主要在ComModel类中进行处理。具体创建过程如下所示:

1、自定义三个串口事件

在ComModel中模拟串口的运行过程,通过自定义三个事件来完成分别是串口打开串口关闭接收数据三个事件

接下来首先对自定义事件模型进行回顾(如果这个部分看不太懂可以去补补相应的关于事件定义的基础视频)

事件的五个要素    1、事件的订阅者   2、事件的接收者   3、事件的响应者   4、事件的处理者   5、被事件所通知的对象

事件模型的五个组成部分 1、事件的拥有者   2、事件成员    3、事件的响应者   4、事件处理器    5、事件订阅

(1)声明一个串口事件处理器的委托,参数中sender为事件的发送者,e为事件的参数

public delegate void SerialPortEventHandler(Object sender, SerialPortEventArgs e);

(2)声明一个串口事件参数类,继承于EventArgs类,用于传递参数,其中传递的参数包括串口的状态(开或关)、串口接收到的数据

public class SerialPortEventArgs : EventArgs
{
    public bool isOpend = false;
    public Byte[] receivedBytes = null;
}

(3)串口事件的声明,ComModel类中,声明了串口的打开、关闭和接收数据的事件

public event SerialPortEventHandler comReceiveDataEvent = null;
public event SerialPortEventHandler comOpenEvent = null;
public event SerialPortEventHandler comCloseEvent = null;

(4)事件的订阅,IController类的构造函数中,左边为事件,右边为事件的响应方法

comModel.comCloseEvent += new SerialPortEventHandler(view.CloseComEvent);
comModel.comOpenEvent += new SerialPortEventHandler(view.OpenComEvent);
comModel.comReceiveDataEvent += new SerialPortEventHandler(view.ComReceiveDataEvent);

(5)事件的响应  通过达到某条件后利用事件的Invoker方法执行响应的动作。

2、串口对象创建

new一个SerialPort类就行。

3、串口的方法框架

ComModel类中的一些方法,这里就写几个最主要的方法,里面包括Send Open Close,下一节主要介绍关于各个按键事件触发后的流程。

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值