自己用api写的串口通信动态库

源代码在线查看: 应用说明.txt

软件大小: 66 K
上传用户: hudun2006
关键词: api 串口通信 动态
下载地址: 免注册下载 普通下载 VIP

相关代码

				================================================================================
				Serial.dll应用说明
				本动态库为通用型串口接口动态库,自带串口参数设置对话框和串口数据监视对话框。
				可同时打开多个串口。
				本动态库版权所有 夏明超(xiamingchao@tsinghua.org.cn) 2006~2010
				================================================================================
				
				================================================================================
				使用过程如下:
				使用实例索引和其对应配置对该实例进行初始化(具体含义见Initialize函数),然后使用实
				例索引打开该实例(函数Open)。打开实例成功后,获得该实例的数据到达通知事件(函数
				GetDRNHandle),当该实例对应的串口有数据时,产生这个事件,此时可以读取串口数据
				(Read)。像串口写数据可以直接调用Write函数即可。退出前需关闭实例(Close)。
				可以显示串口数据监视窗口(ShowMoniter)。
				可以调用动态库内部函数(SetParam)进行参数设置。
				
				修改历史
				2006.07.16    当前版本为2.0.0.2
				2006.07.18    当前版本为2.0.0.3
				    将Initialize函数的配置信息指针类型改为BYTE *,以增加通用性。
					其结构按照SERIALCONFIG格式定义。
				2006.07.29    当前版本为2.1.3.3
				    解决了写大量数据时写不出去的问题
				================================================================================
				
				================================================================================
				输出函数如下:
				        函数名                      所属版本
				        SetParam                    2.0.0.2
				        Initialize                  2.0.0.2
				        Open                        2.0.0.2
				        Close                       2.0.0.2
				        GetDRNHandle                2.0.0.2
				        Read                        2.0.0.2
				        Write                       2.0.0.2
				        GetStatus                   2.0.0.2
				        GetDescriptionString        2.0.0.2
				        ShowMoniter                 2.0.0.2
				================================================================================
				
				================================================================================
				各函数返回码含义如下:
				//Initialize返回码
				#define        INITIALIZE_SUCCESS            0X00        //初始化成功
				#define        INSTANCEINDEX_OVERFLOW        0XF1        //实例索引越限
				#define        INITIALIZE_ERROR              0XFF        //初始化失败
				
				//Open返回码
				#define        OPEN_SUCCESS                  0X00        //打开设备成功
				#define        EVENT_ERROR                   0X10        //创建事件出错
				#define        INVALID_PARAM                 0XF0        //参数无效
				#define        THREAD_ERROR                  0XFD        //线程错误
				#define        SET_DEVICE_FAILURE            0XFE        //设置设备失败
				#define        OPEN_DEVICE_FAILURE           0XFF        //打开设备失败
				
				//ReadParam返回码
				#define        READPARAM_SUCCESS             0X00        //读参数成功
				#define        READPARAM_ERROR               0XFF        //读参数失败
				#define        READPARAM_ERROR_0             0XE0        //读参数0失败
				#define        READPARAM_ERROR_1             0XE1        //读参数1失败
				#define        READPARAM_ERROR_2             0XE2        //读参数2失败
				#define        READPARAM_ERROR_3             0XE3        //读参数3失败
				#define        READPARAM_ERROR_4             0XE4        //读参数4失败
				#define        READPARAM_ERROR_5             0XE5        //读参数5失败
				#define        READPARAM_ERROR_6             0XE6        //读参数6失败
				#define        READPARAM_ERROR_7             0XE7        //读参数7失败
				#define        READPARAM_ERROR_8             0XE8        //读参数8失败
				#define        READPARAM_ERROR_9             0XE9        //读参数9失败
				#define        READPARAM_ERROR_A             0XEA        //读参数10失败
				
				//GetStatus返回码
				#define        DEVICE_FINE                   0X00        //设备正常
				#define        DEVICE_WAITREAD               0X11        //设备有数据等待接收
				#define        DEVICE_WRONG                  0XFF        //设备错误
				================================================================================
				
				================================================================================
				各函数用途及定义
				/////////////////////////////////////////////////////////
				// 函数名:        SetParam                              /
				// [dll输出函数]设置设备参数                            /
				// 功能:                                                /
				//                提供给外部调用,调用dll本身的参数设置  /
				// 输入参数:                                            /
				//                InstanceIndex: 要设置的实例号         /
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                无                                    /
				/////////////////////////////////////////////////////////
				extern "C" void SetParam( DWORD    InstanceIndex )
				
				/////////////////////////////////////////////////////////
				// 函数名:        Initialize                            /
				// [dll输出函数]初始化设备(本Dll中为串口)               /
				// 功能:                                                /
				//                初始化串行口所用内存及参数            /
				// 输入参数:                                            /
				//                InstanceIndex:要初始化的实例索引      /
				//                pConfigInfo:串口设备配置信息指针      /
				//                      如果这个参数是空,则dll从自己的 /
				//                      配置中读取                      /
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                初始化结果码                          /
				/////////////////////////////////////////////////////////
				extern "C" BYTE Initialize( DWORD    InstanceIndex, BYTE *    pConfigInfo )
				pConfigInfo是串口配置信息指针,其格式按照SERIALCONFIG数据结构定义如下:
				typedef    struct rawSERIALCONFIG
				{
				        DWORD    PortNum;            //端口号
				        DWORD    ReceBufSize;        //接收缓冲区长度
				        DWORD    SendBufSize;        //发送缓冲区长度
				        DCB      ConfigDCB;          //DCB
				}    SERIALCONFIG;
				
				/////////////////////////////////////////////////////////
				// 函数名:        Open                                  /
				// [dll输出函数]打开设备                                /
				// 功能:                                                /
				//                打开串口                              /
				// 输入参数:                                            /
				//                InstanceIndex:要打开设备的实例索引    /
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                打开设备结果码                        /
				/////////////////////////////////////////////////////////
				extern "C" BYTE Open( DWORD    InstanceIndex )
				
				/////////////////////////////////////////////////////////
				// 函数名:        Close                                 /
				// [dll输出函数]关闭设备                                /
				// 功能:                                                /
				//                关闭串口                              /
				// 输入参数:                                            /
				//                InstanceIndex: 要关闭设备的实例索引   /
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                打开设备结果码                        /
				/////////////////////////////////////////////////////////
				extern "C" void Close( DWORD    InstanceIndex )
				
				/////////////////////////////////////////////////////////
				// 函数名:        GetDRNHandle                          /
				// [dll输出函数]获得通信数据到达事件指针                /
				// 功能:                                                /
				//                获得通信数据到达事件指针              /
				// 输入参数:                                            /
				//                InstanceIndex:要获得事件指针的实例索引/
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                事件指针                              /
				/////////////////////////////////////////////////////////
				extern "C" HANDLE GetDRNHandle( DWORD    InstanceIndex )
				
				/////////////////////////////////////////////////////////
				// 函数名:        Read                                  /
				// [dll输出函数]读取数据                                /
				// 功能:                                                /
				//                从相应的实例里读取数据                /
				// 输入参数:                                            /
				//                InstanceIndex:要读取数据的实例索引    /
				//                lpBuffer:存放读取数据的缓冲区地址     /
				//                nNumberOfBytesToRead:                 /
				//                        存放读取数据缓冲区的最大长度  /
				// 输出参数:                                            /
				//                lpNumberOfBytesRead:                  /
				//                        实际读取字节数                /
				// 返回值:                                              /
				//                成功:TRUE                             /
				/////////////////////////////////////////////////////////
				extern "C" BOOL Read( DWORD    InstanceIndex,
				                      BYTE *   lpBuffer,
				                      DWORD    nNumberOfBytesToRead,
				                      DWORD *  lpNumberOfBytesRead   )
				
				/////////////////////////////////////////////////////////
				// 函数名:        Write                                 /
				// [dll输出函数]写数据                                  /
				// 功能:                                                /
				//                从相应的实例里写数据                  /
				// 输入参数:                                            /
				//                InstanceIndex:要读取数据的实例索引    /
				//                lpBuffer:存放发送数据的缓冲区地址     /
				//                nNumberOfBytesToWrite:                /
				//                        要发送的数据字节数            /
				// 输出参数:                                            /
				//                lpNumberOfBytesWritten                /
				//                        实际发送字节数                /
				// 返回值:                                              /
				//                TRUE:发送成功                         /
				//                FALSE:发送失败                        /
				/////////////////////////////////////////////////////////
				extern "C" BOOL Write( DWORD    InstanceIndex,
				                       BYTE *   lpBuffer,
				                       DWORD    nNumberOfBytesToWrite,
				                       DWORD *  lpNumberOfBytesWritten )
				
				/////////////////////////////////////////////////////////
				// 函数名:        GetStatus                             /
				// [dll输出函数]获得实例通信状态                        /
				// 功能:                                                /
				//                获得实例通信状态                      /
				// 输入参数:                                            /
				//                InstanceIndex:实例号                  /
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                状态码                                /
				/////////////////////////////////////////////////////////
				extern "C" BYTE GetStatus( DWORD    InstanceIndex )
				
				/////////////////////////////////////////////////////////
				// 函数名:        GetDescriptionString                  /
				// [dll输出函数]dll描述文本                             /
				// 功能:                                                /
				//                获得dll的描述文本                     /
				// 输入参数:                                            /
				//                DescripStrBuf:描述文本缓冲区地址      /
				//                BufLen:描述文本缓冲区长度             /
				// 输出参数:                                            /
				//                DescripStr:描述文本缓冲区             /
				// 返回值:                                              /
				//                TRUE: 成功                            /
				//                FALSE: 失败                           /
				//                        描述文本长度超过输出缓冲区长度/
				/////////////////////////////////////////////////////////
				extern "C" BOOL GetDescriptionString( char *    DescripStrBuf, DWORD    BufLen)
				
				/////////////////////////////////////////////////////////
				// 函数名:        ShowMoniter                           /
				// [dll输出函数]监视串口通信数据                        /
				// 功能:                                                /
				//                显示或隐藏监视窗口                    /
				// 输入参数:                                            /
				//                bShow:是否显示监视窗口                /
				// 输出参数:                                            /
				//                无                                    /
				// 返回值:                                              /
				//                无                                    /
				/////////////////////////////////////////////////////////
				extern "C" void ShowMoniter( BOOL    bShow )			

相关资源