王琳+孙晓颖
摘 要:本文以针对混合系统中的通信问题,以典型编程语言为例,介绍了基于RS232串行口、MSComm控件及通信插板的常用基本方法。
关键词:MSComm控件 通信 插板 编程语言
中图分类号:TN915 文献标识码:A 文章编号:1672-3791(2014)07(c)-0021-02
混合通信系统一般存在应用种类复杂,各种通用通信方法并存、后续开发时间持续长,开发及应用的人员多等问题。其通信方式特点包括多通道、多方式、多节点、基本围绕计算机进行,一般情况下通信经常用的接口主要是串行口(RS232接口)和插板的端口。图1为一种典型的系统构成方式。
本文以C++Builder2007编程语言为例,介绍对通用的计算机基本通信方法。
1 利用RS-232进行通信
一般计算机均以9引脚的接头的RS-232通信端口,其9个引脚的定义如表1所示。
使用C++Builder2007实现打开端口功能的典型代码为:
{ char *ComNo;
DCB dcb;
String Temp; //取得要打开的通信端口
Temp = "COM"+IntToStr(rdCOM->ItemIndex +1); //转换至指针类型Char
ComNo = Temp.c_str();
hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, 0);
2 使用控件MSComm通信
微软公司(Microsoft)为其开发的编程语言Visual C++、Visual Basic等高级语言提供了用于进行串行通信的可视化控件MSComm。表2列出了MSComm控件的几个基本属性。
在Windows API中可以利用其自身的函数来实现在C++Builder2007中所完成的串行口通信。而与串行通信相关的函数在Windows API中约有20个,根据这些方面可以列出以下几个比较常用的、典型的函数和功能。
(1)CreateFile 创建文件,在此用于打开通信端口。
(2)CloseHandle 关闭CreatFile创建的文件,在此用于关闭通信端口。
(3)GetCommState 取得计算机串行端口的设置参数。
(4)SetCommState 设置计算机串行端口的参数。
应用这些API函数,就可以实现串行口RS232通信的所有功能。
3 插板端口通信方法
在计算机中,插在主板上具有特定功能的接口板称之为插板,而在计算机中可以通过这些插板来扩充其本身的测控与通信的功能。其中在C++Builder2007中,端口通信中主要包含了对端口的读与写的操作,但是不能应用Turbo C中的inputb与outputb端口来进行读写函数,但可利用自身内部的__emit__函数来实现。并且通过这个__emit__函数可以编制出端口的输出函数,即void OutPort(unsigned short port,unsigned char value),其中输出值为value参数,输出端口的地址为port参数。在C++Builder2007的使用过程中,可对端口通信进行编程,只有将编写好的InPort与OutPort这两个函数拷贝到工程的头文件中,并把这两个函数作为公有成员函数,就可以在编写主程序时方便地使用了。
4 结论
使用了各种通用通信方式的计算机系统应用极为广泛,了解掌握那些通用、典型的通信方法及其编程规则对提高系统效率和战斗力,保障系统的可靠畅通具有重要作用。本文介绍的通信控件、串行口和插板端口通信及其编程方法在目前的计算机系统中具有一定的代表性。
参考文献
[1] C++builder2007 programmer guide [EB/OL]. www.codegear.com.
[2] Microsoft programmers reference。[EB/OL]. www.Microsofer.com.endprint
摘 要:本文以针对混合系统中的通信问题,以典型编程语言为例,介绍了基于RS232串行口、MSComm控件及通信插板的常用基本方法。
关键词:MSComm控件 通信 插板 编程语言
中图分类号:TN915 文献标识码:A 文章编号:1672-3791(2014)07(c)-0021-02
混合通信系统一般存在应用种类复杂,各种通用通信方法并存、后续开发时间持续长,开发及应用的人员多等问题。其通信方式特点包括多通道、多方式、多节点、基本围绕计算机进行,一般情况下通信经常用的接口主要是串行口(RS232接口)和插板的端口。图1为一种典型的系统构成方式。
本文以C++Builder2007编程语言为例,介绍对通用的计算机基本通信方法。
1 利用RS-232进行通信
一般计算机均以9引脚的接头的RS-232通信端口,其9个引脚的定义如表1所示。
使用C++Builder2007实现打开端口功能的典型代码为:
{ char *ComNo;
DCB dcb;
String Temp; //取得要打开的通信端口
Temp = "COM"+IntToStr(rdCOM->ItemIndex +1); //转换至指针类型Char
ComNo = Temp.c_str();
hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, 0);
2 使用控件MSComm通信
微软公司(Microsoft)为其开发的编程语言Visual C++、Visual Basic等高级语言提供了用于进行串行通信的可视化控件MSComm。表2列出了MSComm控件的几个基本属性。
在Windows API中可以利用其自身的函数来实现在C++Builder2007中所完成的串行口通信。而与串行通信相关的函数在Windows API中约有20个,根据这些方面可以列出以下几个比较常用的、典型的函数和功能。
(1)CreateFile 创建文件,在此用于打开通信端口。
(2)CloseHandle 关闭CreatFile创建的文件,在此用于关闭通信端口。
(3)GetCommState 取得计算机串行端口的设置参数。
(4)SetCommState 设置计算机串行端口的参数。
应用这些API函数,就可以实现串行口RS232通信的所有功能。
3 插板端口通信方法
在计算机中,插在主板上具有特定功能的接口板称之为插板,而在计算机中可以通过这些插板来扩充其本身的测控与通信的功能。其中在C++Builder2007中,端口通信中主要包含了对端口的读与写的操作,但是不能应用Turbo C中的inputb与outputb端口来进行读写函数,但可利用自身内部的__emit__函数来实现。并且通过这个__emit__函数可以编制出端口的输出函数,即void OutPort(unsigned short port,unsigned char value),其中输出值为value参数,输出端口的地址为port参数。在C++Builder2007的使用过程中,可对端口通信进行编程,只有将编写好的InPort与OutPort这两个函数拷贝到工程的头文件中,并把这两个函数作为公有成员函数,就可以在编写主程序时方便地使用了。
4 结论
使用了各种通用通信方式的计算机系统应用极为广泛,了解掌握那些通用、典型的通信方法及其编程规则对提高系统效率和战斗力,保障系统的可靠畅通具有重要作用。本文介绍的通信控件、串行口和插板端口通信及其编程方法在目前的计算机系统中具有一定的代表性。
参考文献
[1] C++builder2007 programmer guide [EB/OL]. www.codegear.com.
[2] Microsoft programmers reference。[EB/OL]. www.Microsofer.com.endprint
摘 要:本文以针对混合系统中的通信问题,以典型编程语言为例,介绍了基于RS232串行口、MSComm控件及通信插板的常用基本方法。
关键词:MSComm控件 通信 插板 编程语言
中图分类号:TN915 文献标识码:A 文章编号:1672-3791(2014)07(c)-0021-02
混合通信系统一般存在应用种类复杂,各种通用通信方法并存、后续开发时间持续长,开发及应用的人员多等问题。其通信方式特点包括多通道、多方式、多节点、基本围绕计算机进行,一般情况下通信经常用的接口主要是串行口(RS232接口)和插板的端口。图1为一种典型的系统构成方式。
本文以C++Builder2007编程语言为例,介绍对通用的计算机基本通信方法。
1 利用RS-232进行通信
一般计算机均以9引脚的接头的RS-232通信端口,其9个引脚的定义如表1所示。
使用C++Builder2007实现打开端口功能的典型代码为:
{ char *ComNo;
DCB dcb;
String Temp; //取得要打开的通信端口
Temp = "COM"+IntToStr(rdCOM->ItemIndex +1); //转换至指针类型Char
ComNo = Temp.c_str();
hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, 0);
2 使用控件MSComm通信
微软公司(Microsoft)为其开发的编程语言Visual C++、Visual Basic等高级语言提供了用于进行串行通信的可视化控件MSComm。表2列出了MSComm控件的几个基本属性。
在Windows API中可以利用其自身的函数来实现在C++Builder2007中所完成的串行口通信。而与串行通信相关的函数在Windows API中约有20个,根据这些方面可以列出以下几个比较常用的、典型的函数和功能。
(1)CreateFile 创建文件,在此用于打开通信端口。
(2)CloseHandle 关闭CreatFile创建的文件,在此用于关闭通信端口。
(3)GetCommState 取得计算机串行端口的设置参数。
(4)SetCommState 设置计算机串行端口的参数。
应用这些API函数,就可以实现串行口RS232通信的所有功能。
3 插板端口通信方法
在计算机中,插在主板上具有特定功能的接口板称之为插板,而在计算机中可以通过这些插板来扩充其本身的测控与通信的功能。其中在C++Builder2007中,端口通信中主要包含了对端口的读与写的操作,但是不能应用Turbo C中的inputb与outputb端口来进行读写函数,但可利用自身内部的__emit__函数来实现。并且通过这个__emit__函数可以编制出端口的输出函数,即void OutPort(unsigned short port,unsigned char value),其中输出值为value参数,输出端口的地址为port参数。在C++Builder2007的使用过程中,可对端口通信进行编程,只有将编写好的InPort与OutPort这两个函数拷贝到工程的头文件中,并把这两个函数作为公有成员函数,就可以在编写主程序时方便地使用了。
4 结论
使用了各种通用通信方式的计算机系统应用极为广泛,了解掌握那些通用、典型的通信方法及其编程规则对提高系统效率和战斗力,保障系统的可靠畅通具有重要作用。本文介绍的通信控件、串行口和插板端口通信及其编程方法在目前的计算机系统中具有一定的代表性。
参考文献
[1] C++builder2007 programmer guide [EB/OL]. www.codegear.com.
[2] Microsoft programmers reference。[EB/OL]. www.Microsofer.com.endprint