// gfaserial.h : // #if !defined(AGD_GFASERIAL_H__8CCAB1A3_1A01_49EB_BE03_9183B29CA9F4__INCLUDED_) #define AGD_GFASERIAL_H__8CCAB1A3_1A01_49EB_BE03_9183B29CA9F4__INCLUDED_ #include #include #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus ///////////////////////////////////////////////////////////////////////////// // gfaserial.h - Declarations: typedef struct _GFA_SER_CFG_PARAMS { uint32_t baud; uint8_t data; uint8_t stop; uint8_t parity; bool flowHW; bool flowSW; bool bHandleTxEcho; bool bIsRS485; }GFA_SER_CFG_PARAMS, *LPGFA_SER_CFG_PARAMS; typedef const GFA_SER_CFG_PARAMS *LPCGFA_SER_CFG_PARAMS; ///////////////////////////////////////////////////////////////////////////// HGFADEVICE GfaSerialOpen(const char *pszDeviceName, LPCGFA_SER_CFG_PARAMS pscp, size_t nSizeCfgParams); void GfaSerialClose(HGFADEVICE hSer); bool GfaSerialGetDeviceInterface(LPGFA_GENERIC_DEVICE_INTERFACE pDevItf); bool GfaSerialIsValidBaudrate(uint32_t nBaudrate); ssize_t GfaSerialGetConfig(HGFADEVICE hSer, LPGFA_SER_CFG_PARAMS pscp, size_t nSizeCfgParams); int GfaSerialSetConfig(HGFADEVICE hSer, LPCGFA_SER_CFG_PARAMS pscp, size_t nSizeCfgParams); int GfaSerialGetBaudrate(HGFADEVICE hSer, uint32_t *pnBaudrate); int GfaSerialSetBaudrate(HGFADEVICE hSer, uint32_t nBaudrate); bool GfaSerialGetTimeouts(HGFADEVICE hSer, struct timeval *ptvRX, struct timeval *ptvTX); bool GfaSerialSetTimeouts(HGFADEVICE hSer, const struct timeval *ptvRX, const struct timeval *ptvTX); ssize_t GfaSerialPurgeRXBuffer(HGFADEVICE hSer); ssize_t GfaSerialReceive(HGFADEVICE hSer, void *pBuf, size_t nCbToRead); // blocking ssize_t GfaSerialRead(HGFADEVICE hSer, void *pBuf, size_t nCbToRead); // not blocking ssize_t GfaSerialPop(HGFADEVICE hSer, uint8_t *pb); // 1 byte, blocking ssize_t GfaSerialPeek(HGFADEVICE hSer); // not blocking ssize_t GfaSerialTransmit(HGFADEVICE hSer, const void *pData, size_t nCbData); // blocking ssize_t GfaSerialWrite(HGFADEVICE hSer, const void *pData, size_t nCbData); // not blocking ssize_t GfaSerialPush(HGFADEVICE hSer, uint8_t b); // 1 byte, blocking ///////////////////////////////////////////////////////////////////////////// #ifdef __cplusplus } #endif // __cplusplus #endif // !defined(AGD_GFASERIAL_H__8CCAB1A3_1A01_49EB_BE03_9183B29CA9F4__INCLUDED_)