|
|
|
|
/*********************************************************************
|
|
|
|
|
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2018/11/09
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־: 2018/11/09 create
|
|
|
|
|
|
|
|
|
|
***********************************************************************/
|
|
|
|
|
#pragma once
|
|
|
|
|
#ifndef _DLL_INCLUDE_COMPORT_H
|
|
|
|
|
#define _DLL_INCLUDE_COMPORT_H
|
|
|
|
|
|
|
|
|
|
#ifndef EXPORT_C
|
|
|
|
|
#define EXPORT_C extern "C"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef WINAPI
|
|
|
|
|
#define WINAPI __stdcall
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
enum EMParity
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EMP_NO = 0, //<2F><>У<EFBFBD><D0A3>λ
|
|
|
|
|
EMP_ODD, //<2F><>У<EFBFBD><D0A3>
|
|
|
|
|
EMP_EVEN, //żУ<C5BC><D0A3>
|
|
|
|
|
EMP_MARK, //mark
|
|
|
|
|
EMP_SPACE, //space
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMByteSize
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>λ
|
|
|
|
|
EMD_BITS5 = 5, //5λ
|
|
|
|
|
EMD_BITS6, //6λ
|
|
|
|
|
EMD_BITS7, //7λ
|
|
|
|
|
EMD_BITS8, //8λ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMStopBits
|
|
|
|
|
{//ֹͣλ
|
|
|
|
|
EMS_ONE = 0, //1λ
|
|
|
|
|
EMS_ONE5, //1.5λ
|
|
|
|
|
EMS_TWO, //2λ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct ComParam
|
|
|
|
|
{//<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
|
|
|
|
|
uint comPort; //<2F><><EFBFBD><EFBFBD>index 1<><31>2<EFBFBD><32>3...
|
|
|
|
|
uint baudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>600<30><30>1200<30><30>...9600...115200
|
|
|
|
|
EMParity parity; //У<><D0A3>λ
|
|
|
|
|
EMByteSize btSize; //<2F><><EFBFBD><EFBFBD>λ
|
|
|
|
|
EMStopBits stopBit; //ֹͣλ
|
|
|
|
|
uint readSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
uint writeSize; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
uint bOverlapped;//<2F>Ƿ<EFBFBD><C7B7>첽 1 <20><> 0<><30><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum IComState
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
ICom_Closed = 0, //<2F>ر<EFBFBD>
|
|
|
|
|
ICom_Error, //δ<><CEB4><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>ͨѶʧ<D1B6><CAA7>
|
|
|
|
|
ICom_Normal, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class icomport
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
public:
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: CommNum <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int Open(int iport) = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD>رմ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int Close() = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int Reset() = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD> -- Open<EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: pszparam <EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD> -- "19200,n,8,1"
|
|
|
|
|
19200 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
<EFBFBD><EFBFBD>У<EFBFBD>飺n //żУ<C5BC>飺e //<2F><>У<EFBFBD>飺o
|
|
|
|
|
8 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
1 ֹͣλ
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*PS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô˽ӿں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int SetParam(const char* pszparam) = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>ڻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- Open<EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: iread <EFBFBD><EFBFBD><EFBFBD>뻺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
iwrite <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int SetBuffer(int iread, int iwrite) = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual IComState GetStatus() = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: д<EFBFBD>봮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: pszbuff <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|
|
|
|
len <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int Write(const char* pszbuff, int len) = 0;
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: pszbuff <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|
|
|
|
nsize <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
timeout <EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ms
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
virtual int Read(char* pszbuff, int nsize, int timeout) = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
EXPORT_C int WINAPI icomport_open(icomport* p, int iport);
|
|
|
|
|
EXPORT_C int WINAPI icomport_close(icomport* p);
|
|
|
|
|
EXPORT_C int WINAPI icomport_reset(icomport* p);
|
|
|
|
|
EXPORT_C int WINAPI icomport_set_param(icomport* p, const char* pszparam);
|
|
|
|
|
EXPORT_C int WINAPI icomport_set_buffer(icomport* p, int iread, int iwrite);
|
|
|
|
|
EXPORT_C int WINAPI icomport_status(icomport* p);
|
|
|
|
|
EXPORT_C int WINAPI icomport_write(icomport* p, const char* pszbuff, int len);
|
|
|
|
|
EXPORT_C int WINAPI icomport_read(icomport* p, char* pszbuff, int nsize, int timeout);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>com<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: h com<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI CreateComPort(icomport** h);
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD>ͷ<EFBFBD>com<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: h com<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI ReleaseComPort(icomport** h);
|
|
|
|
|
|
|
|
|
|
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|