⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 应用说明.txt

📁 自己用api写的串口通信动态库
💻 TXT
字号:
================================================================================
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 )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -