You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
5.2 KiB
C

2 years ago
/*********************************************************************
*<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>