串口控件开发总结

来源:互联网 发布:自定义数据记录app 编辑:程序博客网 时间:2024/05/20 00:52

串口控件开发总结

 

更新时间 2005527

一、         开发进展

 

开发项目:

1、serial.ocx:串口通讯控件

2、serialtest :调用serial.ocx的测试程序,采用VC开发,在串口Modem上测试通过了。

3、vbtest:调用serial.ocx的测试程序,采用VB开发,在串口Modem上测试通过了。

4、delphitest:调用serial.ocx的测试程序,采用DELPHI开发,在串口Modem上测试通过了。

已实现功能:

1、serial控件定义了一些常用的方法如下:

(1)    void OpenPort() 打开串口

(2)    void WritePort(LPCTSTR String); 写串口

(3)    void ClosePort(); 关闭串口

(4)    void ReadPort(); 读串口

2、serial控件定义了一些常用的属性如下:

(1)    String:写串口操作后,串口返回的数据都保存在String属性里

(2)    Port:设置使用哪个串口

(3)    BaudRate:设置波特率

(4)    其它串口的配置参数

 

3、测试程序实现的功能

测试程序的目的是检验和测试控件的,实现了一些基本的功能(打开串口、关闭串口、读、写串口、串口的选择、波特率的选择)。

同时,在多个开发平台上做的测试程序,验证了ActiveX控件的跨平台性和通用性。

后期需要改进的内容:

1、新的方法和属性的定制

 

根据客户的需求,提供新的属性和方法。

2、字符串以外的数据的读写

 

目前实现的是通过串口以字符串的方式传输数据。

比特流的方式或其它方式传输还不能实现。

3、其它串口设备的调用验证

已测试的是串口MODEM,其它设备未验证。

                                          

二、       开发心得

开发目标:实现RDP方式下串口的调用的控件,这个控件必须跨开发平台能使用的。

开发思路:

1、先在程序上实现RDP方式下串口的调用

2、将其封装为ACTIVEX控件,目的是ACTIVX控件可以跨开发平台使用,而且类似微软的MSCOMM控件,便于代码移植。

3、VCVBDELPHI等多个平台做控件调用的测试程序,验证其通用性。

 

技术总结:

1、实现了RDP方式下对串口的正常调用的难点

 

采用线程阻塞的方式,对串口读、写、关闭设置不同的事件信号,当某一信号发出时,进入相应的临界区域,实现了互不干扰。

2、WIN32 API

 

微软的MSCOMM控件在RDP方式下对串口的读、写的并发操作存在问题,因此抛弃MSCOMM,使用WINDOWS API方式编程,同时提高了程序的运行速度(相对于MSCOMM)。

3、ACTIVEX控件的封装

 

将主要的功能封装为方法和属性作为调用控件的接口。

4、多平台下ACTIVEX控件的调用

5、多种开发语言的入门级学习

6、WINDOWS系统中控件的注册和MFC运行库的使用

原创粉丝点击