Files
nodemcu-fe/Esplorer/driver/INSTALL/DLL_LIB/CH341PT.H
kristjan-komlosi 67c0a98ce3 Add files via upload
2017-06-30 08:16:22 +02:00

68 lines
2.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 2005.07.28
//****************************************
//** Copyright (C) W.ch 1999-2005 **
//** Web: http://www.winchiphead.com **
//****************************************
//** DLL for USB interface chip CH341 **
//** C, VC5.0 **
//****************************************
//
// USB总线接口芯片CH341端口应用层接口库 V1.0
// 南京沁恒电子有限公司 作者: W.ch 2005.07
// CH341-Port-DLL V1.0
// 运行环境: Windows 98/ME, Windows 2000/XP
// support USB chip: CH341, CH341A
// USB => Serial, Parallel
//
#ifndef _CH341_PORT_H
#define _CH341_PORT_H
#ifdef __cplusplus
extern "C" {
#endif
#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数
#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数
ULONG WINAPI CH341PtGetVersion( ); // 获得DLL版本号,返回版本号
BOOL WINAPI CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口
HANDLE iPortHandle ); // 指定已经打开的端口句柄
BOOL WINAPI CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口
PUCHAR iPortName ); // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开)
typedef VOID ( CALLBACK * mPCH341PT_NOTIFY_ROUTINE ) ( // 端口设备事件通知回调程序
LONG iDevIndexAndEvent ); // 端口设备序号和事件及当前状态(参考下行说明)
// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255)
BOOL WINAPI CH341PtSetDevNotify( // 设定端口设备事件通知程序
PCHAR iDeviceID, // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM"
mPCH341PT_NOTIFY_ROUTINE iNotifyRoutine ); // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序
/* 即插即用设备的应用程序编程参考
1. 主程序启动默认是禁止数据传输的只有在确定有CH341端口可用并且打开端口后才进行数据传输
2. 调用CH341PtSetDevNotify设置插拔监视如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数
3. 从端口1到端口255正常到20即可逐个调用CH341PtNameIsCH341确定是否为CH341端口如果返回是则记忆其端口号并打开后开始传输如果返回否则休息
4. 如果iNotifyRoutine收到事件通知那么可以在保存事件参数后通知主程序处理也可以在该子程序中处理
分析事件参数如果是正数则说明有一个端口插入需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口是则记忆其端口号并打开后开始传输
如果是负数则说明有一个端口拔出判断其端口号用0减去该负数得端口号是否与记忆的已打开的端口号相同是则应该及时关闭
5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输
6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口那么在端口已经打开后也可以调用CH341PtHandleIsCH341判断是否为CH341端口
*/
#ifdef __cplusplus
}
#endif
#endif // _CH341_PORT_H