Tony.SerialPorts.RS232.IRS232参考

- ⑴.属性:
- 1. Settings 【串口参数配置】【读及设置】
- RS232Setting类型。
- 打开串口前配置,打开串口后禁止改变。
- ①.不传入,内部生成:不推荐。
- ②.IRS232初始化时传入已配置好的RS232Setting文件路径,自行读取。
- 2. UserName 【实例化时名称[以用于区分实例]】【读】
- string类型
- 3. DTRavailable 【True if the DTR pin is controllable via the DTR property】【读】
- bool类型
- 4. RTSavailable 【True if the RTS pin is controllable via the RTS property】【读】
- bool类型
- 5. DTR 【The state of the DTR modem control output】【读及设置】
- bool类型
- 6. RTS 【Set the state of the RTS modem control output】【读及设置】
- bool类型
- 7. Online 【串口是否打开】【读】
- bool类型
- 8. UseUNICODE 【汉字通讯接受方式,默认使用:汉字接受方式】【读及设置】
- bool类型
- true-汉字接受方式;false-字符接受方式。
- 此设置没在RS232Setting体现,需要时单独设置。
- 9. TransactFlag 【Transact接收标志】【读及设置】
- bool类型
- 一般不要设置(高级)
- 10. ReceiveFlag 【数据允许接收标志位】【读及设置】
- bool类型
- 一般不要设置(高级)
- 11. Immediate 【发送方式选择】【读及设置】
- bool类型
- 无用途。
- 12. RESPState 【串口状态改变时是否响应Transact】【读及设置】
- bool类型
- 一般不要设置(高级)
- 13. TopString 【头字符】【读及设置】
- string类型
- 一般不要设置(高级)
- 14. DelCharCount 【需删除字符的数量】【读及设置】
- int类型
- 一般不要设置(高级)
- 15. ReErr 【取得接收错误,读取后清空错误】【读】
- System.Exception类型
- 16. Err 【串口错误,读取后清空】【读】
- Tony.SerialPorts.RS232.RS232Exception类型
- 17. InPutReadOnly 【读取串口接收数据,不删除缓存】【读】
- object类型
- 注:并不删除串口接收数据中可能存在的接收中断字符(Settings.RxPostFix)。
- 18. InPut 【读取串口接收数据,调用后删除缓存】【读】
- object类型
- 注:并不删除串口接收数据中可能存在的接收中断字符(Settings.RxPostFix)。
- 19. OutPut 【向串口发送数据】【设置】
- object类型
- 自动添加Settings.TxPostFix属性中的发送附加字符。
- 20. RxBufferCount 【已接收的字符数】【读】
- int类型
- 21. Break 【Assert or remove a break condition from the transmission line】【读及设置】
- bool类型
-
-
- ⑵.方法
- 1. Transact 【发送数据,并在指定时间内接收数据,并有数据判断功能】
- 原型:object Transact(object toSend, int gTransTimeout, int gCount, object gReturnSubValue, bool gClearOldData);
- 调用此方法向串口发送指令(自动添加Settings.TxPostFix属性中的发送附加字符。),并在此命令内部在限定的时间内等待符合条件的串口接收数据:如收到,则即刻返回数据,如未收到,则返回Null。
- 【注】:
- 此方法内部自发自收,提高了客户编程的灵活性。并不依赖于IRS232的OnRs232Receive接收事件,也不会触发OnRs232Receive接收事件。
- 此方法运行的最大时间为gTransTimeout*gCount毫秒(有可能稍微超出)。最小时间则依赖于现场情况。
- 此方法返回后会自动清除InPut属性及接收缓冲区。
- 返回类型:object类型。(返回的数据)
- 【参数说明】
- object toSend:欲向串口发送的数据(自动添加Settings.TxPostFix属性中的发送附加字符。)。
- int gTransTimeout:超时时间,单位是毫秒,如小于0则采用Settings.TransTimeout中的超时时间。(在此时间内串口接收到符合条件的数据,即刻返回数据;如否,则按此时间等待;超过此时间则按gCount允许范围内重复发送toSend指令。)
- int gCount:指定错误通讯次数上限。(在gTransTimeout规定时间内未接收到符合条件的数据,重复发送toSend指令的上限。超过gCount次数,则返回null。)
- object gReturnSubValue:数据判断量:如串口接收到的数据包含此参数包含的数据,即认为接收到符合条件数据,即刻返回数据;如否则按gCount允许范围内重复发送toSend指令;如果为“”或null则表示接收到任意数据即刻返回数据。
- bool gClearOldData:是否清除接收缓冲区(重复发送toSend指令的情况下,有可能造成串口接收缓冲区的数据堆积,故开放给客户标识是否清除接收缓冲区)
- 【建议】:
- gTransTimeout:一般设置要大于300毫秒。正常取值500毫秒。(主要依据现场情况设定)
- gCount:正常取值为3.(主要依据现场情况设定)
- gClearOldData:一般取值为true。
- 2. Transact 【发送数据,并在指定时间内接收数据】
- 原型:object Transact(object toSend, int gTransTimeout);
- 调用此方法向串口发送指令(自动添加Settings.TxPostFix属性中的发送附加字符。),并在此命令内部在限定的时间内等待串口接收数据:如收到,则即刻返回数据,如未收到,则返回Null。
- 【注】:
- 此方法内部自发自收,提高了客户编程的灵活性。并不依赖于IRS232的OnRs232Receive接收事件,也不会触发OnRs232Receive接收事件。
- 此方法运行的最大时间为gTransTimeout毫秒(有可能稍微超出)。最小时间则依赖于现场情况。
- 此方法返回后会自动清除InPut属性及接收缓冲区。
- 返回类型:object类型。(返回的数据)
- 【参数说明】
- object toSend:欲向串口发送的数据(自动添加Settings.TxPostFix属性中的发送附加字符。)。
- int gTransTimeout:超时时间,单位是毫秒,如小于0则采用Settings.TransTimeout中的超时时间。(在此时间内串口接收到数据,即刻返回数据;如否,则返回null。)
- 【建议】:
- gTransTimeout:一般设置要大于300毫秒。正常取值500毫秒。(主要依据现场情况设定)
- 3. Transact 【发送数据,并在Settings.TransTimeout时间内接收数据】
- 原型:object Transact(object toSend);
- 调用此方法向串口发送指令(自动添加Settings.TxPostFix属性中的发送附加字符。),并在Settings.TransTimeout时间内等待串口接收数据:如收到,则即刻返回数据,如未收到,则返回Null。
- 【注】:
- 此方法内部自发自收,提高了客户编程的灵活性。并不依赖于IRS232的OnRs232Receive接收事件,也不会触发OnRs232Receive接收事件。
- 此方法运行的最大时间为Settings.TransTimeout毫秒(有可能稍微超出)。最小时间则依赖于现场情况。
- 此方法返回后会自动清除InPut属性及接收缓冲区。
- 返回类型:object类型。(返回的数据)
- 【参数说明】
- object toSend:欲向串口发送的数据(自动添加Settings.TxPostFix属性中的发送附加字符。)。
- 4. Open 【打开串口】
- 调用此方法,打开串口,如打开成功,内部会调用客户在RS232Open中定义的配合事件(如配合事件运行失败,Open()返回false)。[参见 RS232Open]。
- 返回类型:bool类型(true串口成功打开;false串口打开失败)
- 5. Close 【关闭串口】
- 调用此方法,关闭串口。关闭串口前,内部会调用客户在RS232Close中定义的配合事件。[参见 RS232Close]。
- 6. Dispose 【清场】
- 7. GetSetting 【 从给定的串口参数配置文件中取得串口参数配置】
- 调用此方法,从给定的串口参数配置文件中取得串口参数配置,并设置Settings属性。
- 【注】:请不要在串口处于打开情况下,运行此方法。
- 返回类型:Tony.SerialPorts.RS232.RS232Setting类型。
- 【参数说明】
- string gPath:串口参数配置文件路径(含名称)
- 8. GetQueueStatus【查询串口接收/发送队列状态】
- 返回类型:Tony.SerialPorts.RS232.QueueStatus类型。
- 9. IsCongested 【数据通讯状态是否正常】
- /// Test if the line is congested (data being queued for send faster than it is being dequeued)。 This detects if baud rate is too slow or if handshaking is not allowing enough transmission time. It should be called at reasonably long fixed intervals. If data has been sent during the interval, congestion is reported if the queue was never empty during the interval.
- 返回类型:bool类型。
- 10. Flush 【不要使用(高级)】;
- 11. AddTxPostFixByteArray【不要使用(高级)】;
- 12. Delay 【不要使用(高级)】;
- 13. DelayD 【不要使用(高级)】;
- 14. GetRS232Value【不要使用(高级)】;
-
-
- ⑶.事件
- 1. OnRs232Receive【串口接收事件】
- 原型:public event OnRs232Handler OnRs232Receive
- 产生源:参见OnRs232Handler中的事件类别。
- 例:
- 加载:IRS232Comm1.OnRs232Receive += new Tony.SerialPorts.RS232.OnRs232Handler(IRS232Comm1_OnRs232Receive);(IRS232Comm1类型为Tony.SerialPorts.RS232.IRS232)。
- 卸载:IRS232Comm1.OnRs232Receive -= new Tony.SerialPorts.RS232.OnRs232Handler(IRS232Comm1_OnRs232Receive);(IRS232Comm1类型为Tony.SerialPorts.RS232.IRS232)。
- 【参数】:IRS232Comm1_OnRs232Receive:串口接收事件引用。
- 委托原型:public delegate void OnRs232Handler(object s, int t, string gUserName);
- 【参数】:
- object s: 数据,【根据事件类别t区分数据。】(如是串口接收数据,并未清空缓冲。正常请读取.InPut属性);
- int t:事件类别;
- a.t=1:串口接收数据时,满足接收数据中断条件产生的事件:引发源有:1.接收到中断字符;2.满足接收数据长度条件。【RS232Setting的RxPostFix属性及RxThreshold属性】【OnRxChar】
- b.t=2:外部调用时使用(内部无产生源):如客户调用OnRs232Receive产生的事件。
- c.t=3:串口暂停 引发源有:串口底层Break【此时s: 数据为“串口暂停”】【OnBreak】
- d.t=4:串口状态改变 引发源有:串口底层Tony.SerialPorts.RS232.ModemStatus状态改变。【此时s: 数据为:(ModemStatus.cts? "1":"0") + (ModemStatus.dsr? "1":"0") + (ModemStatus.rlsd? "1":"0") + (ModemStatus.ring? "1":"0")】【OnStatusChange】【具体方法另行提供】
- e.t=5:串口出现错误产生的事件【一般用于错误时使用】:引发源有:OutPut属性【此时s: 数据为错误信息】【OutPutT/OutPut】
- string gUserName:参数为串口实例化名称(Tony.SerialPorts.RS232.IRS232)[以用于区分实例]。
- 2. RS232Open【串口打开后的配合事件】
- 原型:public event RS232OpenHandler RS232Open
- 产生源:Open()方法。
- 说明:
- 此事件开放给客户,以利于当底层串口打开后处理的一些开放操作。
- 如串口Open()成功,运行配合事件。
- 如串口Open()失败,忽略配合事件。
- 如配合事件运行成功(返回true),串口以打开状态返回。
- 如配合事件运行失败(返回false、或抛出错误),串口以关闭状态返回。
- 例:
- 加载:IRS232Comm1.RS232Open += new Tony.SerialPorts.RS232.RS232OpenHandler(IRS232Comm1_RS232Open);(IRS232Comm1类型为Tony.SerialPorts.RS232.IRS232)。
- 卸载:IRS232Comm1.RS232Open -= new Tony.SerialPorts.RS232.RS232OpenHandler(IRS232Comm1_RS232Open);(IRS232Comm1类型为Tony.SerialPorts.RS232.IRS232)。
- 【参数】:IRS232Comm1_RS232Open:串口打开配合事件引用。
- 委托原型:public delegate bool RS232OpenHandler(string gUserName);
- 【参数】:
- string gUserName:参数为串口实例化名称(Tony.SerialPorts.RS232.IRS232)[以用于区分实例]。
- 3. RS232Close【串口关闭前的配合事件】
- 原型:public event RS232CloseHandler RS232Close
- 产生源:Close()方法。
- 说明:
- 此事件开放给客户,以利于当底层串口关闭前处理的一些开放操作。
- 串口关闭前运行此事件。
- 无论此事件运行结果如何,都将关闭串口。
- 例:
- 加载:IRS232Comm1.RS232Close += new Tony.SerialPorts.RS232.RS232CloseHandler(IRS232Comm1_RS232Close);(IRS232Comm1类型为Tony.SerialPorts.RS232.IRS232)。
- 卸载:IRS232Comm1.RS232Close -= new Tony.SerialPorts.RS232.RS232CloseHandler(IRS232Comm1_RS232Close);(IRS232Comm1类型为Tony.SerialPorts.RS232.IRS232)。
- 【参数】:IRS232Comm1_RS232Close:串口关闭前配合事件引用。
- 委托原型:public delegate void RS232CloseHandler(string gUserName);
- 【参数】:
- string gUserName:参数为串口实例化名称(Tony.SerialPorts.RS232.IRS232)[以用于区分实例]。
-
- ⑷.【OnRs232Receive事件与Transact(……)方法在接收串口数据上的区别】
- ①.OnRs232Receive事件机制:客户向OutPut属性向串口发送指令,当串口接收到符合条件(中断字符条件、数据长度条件)后,产生OnRs232Receive事件供客户接收处理数据。
- ②.Transact(……)方法重点在于自己发指令,自己回收数据,方法内自动完成。不需同步,不依赖于其他,利于客户复杂编程。
- ③.利用OutPut属性、OnRs232Receive事件接收数据需要做好同步,这是传统方法,复杂编程时逻辑难懂。
- ④.Transact(……)方法具有简单数据逻辑判断功能、失败congfa重发功能。这点OnRs232Receive事件本身不具备,需客户自己编程处理。
- ⑤.OnRs232Receive事件可以响应独立的不依赖于指令的Tony.SerialPorts.RS232.ModemStatus状态改变。
- ⑥.Transact(……)方法无法响应独立的不依赖于指令的Tony.SerialPorts.RS232.ModemStatus状态改变。
- ⑦.接收串口数据时Transact(……)方法与OnRs232Receive事件互为独立。

Tony.SerialPorts.RS232串口模块(二)相关推荐

  1. wavecom短信猫推荐RS232串口短信猫适于二次开发应用

    wavecom短信猫是指采用wavecom模块生产的短信猫设备,RS232是基于标准串口连接,与电脑串口直连,免驱动性能稳定,适于短信猫二次开发应用.兼容性好,支持的短信猫软件产品丰富. ‍‍基于RS ...

  2. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十二:串口模块① — 发送

    实验十二:串口模块① - 发送 串口固然是典型的实验,想必许多同学已经作烂,不过笔者还要循例介绍一下.我们知道串口有发送与接收之分,实验十二的实验目的就是实现串口发送,然而不同的是 ... 笔者会用另 ...

  3. rs232串口驱动_LED驱动电路设计

    这里设计了两种方案,方案一目标需要低功耗的led,方案二目标需要高功耗的LED.这里重点说下第一种方案,方案电路图如图所示.LED直接通过一个上拉排阻将8个LED连接在单片机上,这样的优点是电路结构简 ...

  4. 程控电源CANoe上位机面板(CAN\ETH测试、RS232串口通信、编写设计思路)

    程控电源CANoe上位机面板 编写此面板的目的 编写思路 一.通讯方式 1.RS232串口连接 2.CANoe与RS232串口相关的函数 3.帧格式命令字 4.校验码 二.面板设计 1.所需文件说明 ...

  5. 单片机实验八 RS232串口通信实验(接收与发送)

    实验八 RS232串口通信实验(接收与发送) 一.实验目的 1.熟悉实验软件和硬件,进行正确的接线: 2.通过实验了解串口的基本原理及使用,理解并掌握对串口进行初始化: 3.使用串口调试助手做为上位机 ...

  6. 读取万用表USB串口模块

    简 介: 由于计算机链接的打印机无法继续工作,现在需要另外重新安装操作系统才能够继续完成设计和制作. 关键词: 串口转接,自制电路板 #mermaid-svg-pK6HRjCv9ZC0FD1Z {fo ...

  7. 小型的ESP8266-01s WiFi串口模块是否可以下载MicroPython?

    ▌01 ESP8266模块下载MicroPython 手边有这类小型的ESP8266WiFi串口模块: ESP-01S 无线透传工业级 ESP8266串口转WiFi模块 .现在有一个问题:它是否可以使 ...

  8. 金笛MODEM池 (RS232串口和RJ45网口)

    金笛MODEM池 (RS232串口和RJ45网口)      综 述 图 片 性 能 参 数 应 用 使 用     查看更多图片   该设备标准名称是GSM MODEM POOL,内置8个wavec ...

  9. 基于FPGA实现uart串口模块——进阶版1

    设计目标 本文实现uart发送多个数据给上位机,上位机显示,这里不对数据进行解析. 这次实现的是使用开发板每隔一秒向上位机发送"I love you".下一篇博文实现当发送&quo ...

最新文章

  1. 独家 | 教你用Python来计算偏差-方差权衡
  2. android4.0 菜单,三大主流安卓4.0界面解析 MIUI最实用
  3. 摇杆控制方向原理_为工业安全守好”门”!各种方向的控制阀原理图大集合
  4. Mysql更换版本的操作,非常详细(包括数据备份,卸载,安装,还原)
  5. redux-chunk中间件的安装和使用-(二)
  6. VC++ MFC 学习资料
  7. 《CCNA学习指南:数据中心(640-911)》——1.2 一般网络的构成
  8. 编写测试用例方法之错误推测法
  9. 手把手教你电脑图片转文字怎么操作,助你提高工作效率
  10. html网页注册信息不完全时有警示_如何提升网页的用户体验?
  11. centos安装git(centos安装vmware tools)
  12. 在Word中打开MathType时出现AutoExecCLS错误解决方案
  13. C语言零碎知识点之定义指针时星号靠近类型名还是变量名
  14. 2018我的博客历程:你带来微笑,我有幸得到
  15. 智能枕头与智能床垫发展方向分析
  16. Java编程题小练习(初级):输入10个整数并进行排序输出。
  17. 阿里云域名免费SSL证书配置
  18. lorawan在嵌入式系统中的实现--节点端(一)--SX1278介绍
  19. docker 构建企业级Maven私服仓库 nexus3
  20. 魅族是不是android手机号码,魅族系统不更新安卓8.0,是在等魅族16吗?

热门文章

  1. 解决安卓手机H5页面input获得焦点时页面挤压或者底部上移
  2. Java实现积分过期保证时间_商城会员积分过期的实现方案
  3. html svg波浪,CSS实现svg图片水纹波浪流动效果
  4. MySQL编程:将查询到的字段赋值给变量
  5. docker安装包安装
  6. java知识体系介绍
  7. 全屏状态下的ESC键监听处理
  8. Real-Time Rendering 第五章 光照模型
  9. Android多点触控揭秘
  10. python显示文件夹图片_python遍列目录搜索文件夹及子文件夹图片文件