📄 nwserial.h
字号:
#ifndef __NANWANG_SERIAL_H__
#define __NANWANG_SERIAL_H__
#define PSP_API __declspec(dllexport)
/*! defgroup serial 串口设备访问函数
* 使用串口的辅助函数库.
*/
/*! \ingroup serial
* \brief 串口回调函数.
* \param type -- 串口事件类型.
* \param pData -- 串口数据.
* \param len -- 数据长度.
* \param pArg -- 自定义数据类型.
*/
typedef void(*SERIAL_HANDLER)(int type, char* pData, int len, void* pArg);
/*! \ingroup serial
* \brief 串口回调函数类型.
*/
#define SERIAL_CTS 0
#define SERIAL_RXFLAG 1
#define SERIAL_BREAK 2
#define SERIAL_ERR 3
#define SERIAL_RING 4
#define SERIAL_DATA_TIMEOUT 5
#define SERIAL_OVERLOAD 6
#define SERIAL_DATA 7
/*! \ingroup serial
* \brief 错误类型定义.
*/
#define SERIAL_BUFFER 8192
#define ERROR_SERIAL_NOTOPEN -1
#define ERROR_SERIAL_BUFFEREXHAULT -2
/*! \ingroup serial
* \brief 串口设备类型描述符定义*/
typedef struct tagNWSerial
{
HANDLE hSerial; /*!< 串口句柄 */
int nDepth; /*!< 深度 */
BOOL bQuitFlag; /*!< 退出标志 */
// SERIAL_HANDLER hCallBack; /*!< 回调函数 */*****************
void* lpParameter; /*!< 自定义参数 */
OVERLAPPED ov; /*!< 重叠对象 */
HANDLE hWrite; /*!< 写操作事件 */
HANDLE hClose; /*!< 关闭事件 */
HANDLE hComm; /*!< 串口事件 */
int nWrite; /*!< 写缓冲状况 */
int nRead; /*!< 读缓冲状况 */
char* lpszWrite; /*!< 写缓冲 */
char* lpszRead; /*!< 读缓冲 */
CRITICAL_SECTION cs; /*!< 临界区 */
}NWSerial;
/*! \ingroup serial
* \brief 串口配置参数定义*/
typedef struct tagSerialParam
{
int BaudRate; /*!< 波特率 */
int ByteSize; /*!< 位数 */
int Parity; /*!< 奇偶校验方式0-4=no,odd,even,mark,space*/
int StopBits; /*!< 停止位 */
int controlType; /*!< 控制类型 */
int serialType; /*!< 串口类型(232/485) */
}SerialParam;
/*! 奇偶校验方式0-4=no,odd,even,mark,space*/
#define SERIAL_NO_PARITY NOPARITY
#define SERIAL_EVEN_PARITY EVENPARITY
#define SERIAL_ODD_PARITY ODDPARITY
#define SERIAL_MARK_PARITY MARKPARITY
#define SERIAL_SPACE_PARITY SPACEPARITY
/*! 控制类型 */
#define SERIAL_CONTROL_NONE 0
#define SERIAL_CONTROL_XOFF 1
#define SERIAL_CONTROL_HARD 2
/*! 串口类型(232/485) */
#define SERIAL_TYPE_232 0
#define SERIAL_TYPE_485 1
#ifdef __cplusplus
extern "C" {
#endif
PSP_API NWSerial* Serial_Open(LPCTSTR name, int depth, SERIAL_HANDLER callback, void* pParam);
PSP_API BOOL Serial_SetParam(NWSerial* serial, LPCTSTR param);
PSP_API BOOL Serial_Close(NWSerial* serial);
PSP_API int Serial_Write(NWSerial* serial, char* pData, int len);
PSP_API void Serial_EmptySend(NWSerial* serial);
#ifdef __cplusplus
}
#endif
#endif /*__NANWANG_SERIAL_H__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -