#include #ifdef HSDAQ_EXPORTS #define HS_API(type) __declspec(dllexport) type __cdecl #else #define HS_API(type) type #endif #ifdef __cplusplus // for C++ compile use extern "C" { #endif /* __cplusplus */ HS_API(void) HS_GetSDKVersion(LPSTR sdk_version); HS_API(HANDLE) HS_Device_Create(LPCSTR ConnectionString); HS_API(BOOL) HS_Device_Release(HANDLE obj); HS_API(bool) HS_GetFirmwareVersion(HANDLE obj,LPSTR sdk_version); HS_API(bool) HS_Reboot(HANDLE obj); //========================================================================= // 09. HS_IO API //========================================================================= HS_API(bool) HS_ReadAIALL(HANDLE obj, float ai[]); HS_API(bool) HS_ReadAI(HANDLE obj,int ChannelIndex, float *ai); HS_API(bool) HS_ReadDIO(HANDLE obj,unsigned long *diVal, unsigned long *doVal); HS_API(bool) HS_WriteDO(HANDLE obj, unsigned long val); HS_API(bool) HS_WriteDOBit(HANDLE obj, int ChannelIndex, bool val); //========================================================================= // 11. Error Handling API //========================================================================= HS_API(DWORD) HS_GetLastError(); HS_API(void) HS_ClearLastError(); HS_API(void) HS_GetErrorMessage(DWORD dwMessageID, LPSTR lpBuffer); //========================================================================= // Configration API //========================================================================= HS_API(int) HS_GetConfig(HANDLE obj,int configtype, int param, int *settingval); HS_API(int) HS_GetConfigString(HANDLE obj,int configtype, int param, char *settingstr, int *maxstr); HS_API(int) HS_SetConfig(HANDLE obj,int configtype, int param, int settingval); HS_API(int) HS_SetConfigString(HANDLE obj,int configtype, int param, char *settingstr, int *maxstr); HS_API(bool) HS_ReadGainOffset(HANDLE obj,int ch, unsigned short *gainVal, short *offsetVal); //configtype definition #define BOARD_CONFIG 0 #define IO_CONFIG 1 #define HSDAQ_CONFIG 2 #define DATALOG_CONFIG 4 //param definition for DATALOG_CONFIG #define LOGFOLDERTYPE 1 //========================================================================= // high speed DAQ API //========================================================================= HS_API(bool) HS_SetAIScanParam(HANDLE obj,short pacerChCnt, short pacerGain, short triggerMode, long sampleRate, unsigned long targetCnt, short DataTransMethod, short AutoRun); HS_API(bool) HS_GetAIScanParam(HANDLE obj, short *pacerChCnt, short *pacerGain, short *triggerMode, long *sampleRate, unsigned long *targetCnt, short *DataTransMethod, short *AutoRun); HS_API(bool) HS_GetAIBufferStatus(HANDLE obj,WORD *wBufferStatus, DWORD *dwDataCountOnBuffer); HS_API(DWORD) HS_GetAIBufferHex(HANDLE obj,WORD *wBuffer, DWORD dwBufferSize); HS_API(DWORD) HS_GetAIBuffer(HANDLE obj,float *fBuffer, DWORD dwBufferSize); HS_API(bool) HS_ClearAIBuff(HANDLE obj); HS_API(bool) HS_StartAIScan(HANDLE obj); HS_API(bool) HS_StopAIScan(HANDLE obj); HS_API(bool) HS_GetTotalSamplingStatus(HANDLE obj,unsigned long *totalReadCnt, unsigned int *triggerStatus); HS_API(bool) HS_TransmitDataCmd(HANDLE obj); //========================================================================= // Data logger API //========================================================================= HS_API(bool) HS_StartLogger(HANDLE obj,char * filePath,int interval,int filetype); HS_API(bool) HS_StopLogger(HANDLE obj); HS_API(bool)HS_GetLogFileInfo(char *Filename, DWORD *filesize, int filetype,int fileversion); HS_API(bool)HS_GetLogFile_AIScanConfigInfo(char *fullFilename, short *pacerChCnt, short *pacerGain, short *triggerMode, long *sampleRate, short *DataTransMethod); HS_API(bool)HS_GetLogFile_GainOffset(char *Filename,int ch, unsigned short *gainVal, short *offsetVal); HS_API(bool)HS_GetLogFile_AIScanSampleInfo(char *Filename, DWORD *sampleCount, char *StartDate, char *StartTime); HS_API(bool)HS_GetLogFile_AIData(char *Filename, DWORD *filesize, int StartIndx,DWORD count, float *AIData); //calibrated data (float) from read .txt HS_API(bool)HS_GetLogFile_AIDataHex(char *Filename, DWORD *filesize, int StartIndx,DWORD count, WORD *AIData); //calibrated data (Hex) HS_API(HANDLE) HS_LogFile_Open(char *fullFilename); HS_API(bool) HS_LogFile_Close(HANDLE hobj); HS_API(WORD) HS_SetEventCallback(HANDLE obj, WORD wEventType,WORD EventParam,PVOID CallbackFun,void *pdwCallBackParameter); #if 0 // total sample rate more than 25KHz*8 or event trigger mode HS_API void ClearCnt(int dataSkt); //HS_API int StartLog(int chCnt,DWORD sampleRate,DWORD trigMode, DWORD target, char * filePathName,int interval); // interval minute //HS_API void Test(int port, int skt); HS_API unsigned long DumpBinary(char *path, char *name , unsigned long startIndex, unsigned long dataCnt, short *dataArray); HS_API bool GetMiddleCnt(int cmdSkt, long *middcnt); HS_API bool SetMiddleCnt(int cmdSkt,long middcnt); //The following functions only for Calculate RMS trigger type HS_API bool SetRMSParam( int cmdSkt, short RMSFreq,short transferRate); HS_API bool GetRMSParam( int cmdSkt, short *RMSFreq,short *transferRate); HS_API bool GetExtDevGain(int cmdSkt,int ch, float *gainVal); HS_API bool SetExtDevGain(int cmdSkt,int ch, float gainVal); //for log configuration HS_API bool SetlogfolderConfig(int cmdSkt,char *format,int type); #endif //========================================================================= // Error Codes //========================================================================= #define HS_ERR_SUCCESS 0x00000 #define HS_ERR_UNKNOWN 0x00001 //===================================================================== // 0x10000~ 0x12999 system API Error //WSAGetLastError //Basic===================================================================== #define HS_ERR_BASE 0x13000 #define HS_ERR_UNKNOWN_MODULE (HS_ERR_BASE + 3) #define HS_ERR_INVALID_MAC (HS_ERR_BASE + 4) #define HS_ERR_FUNCTION_NOT_SUPPORT (HS_ERR_BASE + 6) #define HS_ERR_MODULE_UNEXISTS (HS_ERR_BASE + 7) #define HS_ERR_FUNCTION_REPEAT_CALLED (HS_ERR_BASE + 9) #define HS_ERR_INVALID_HANDLE_VALUE (HS_ERR_BASE + 10) #define HS_ERR_DEVICE_IO_CONTROL (HS_ERR_BASE + 11) #define HS_ERR_INVALID_PARAMETER (HS_ERR_BASE + 12) #define HS_ERR_SDK_LOADING (HS_ERR_BASE + 13) #define HS_ERR_MEMORY_ALLOCATED (HS_ERR_BASE + 14) //Memory Access============================================================= #define HS_ERR_MEMORY_BASE 0x14000 #define HS_ERR_MEMORY_INVALID_SIZE (HS_ERR_MEMORY_BASE + 8) //DATA log============================================================= #define HS_ERR_DATALOG_BASE 0x14100 #define HS_ERR_DATALOG_INVALID_SIZE (HS_ERR_DATALOG_BASE + 1) #define HS_ERR_DATALOG_CONFIGFILE_NOFOUND (HS_ERR_DATALOG_BASE + 2) //Watch Dog================================================================= #define HS_ERR_WDT_BASE 0x15000 #define HS_ERR_WDT_INVALID_VALUE (HS_ERR_WDT_BASE + 1) #define HS_ERR_WDT_UNEXIST (HS_ERR_WDT_BASE + 2) #define HS_ERR_WDT_BASE_NOT_SET (HS_ERR_WDT_BASE + 3) #define HS_ERR_WDT_OS_FOR_OS_STARTUP (HS_ERR_WDT_BASE + 4) //Device open and close====================================================================== #define HS_ERR_DEVICE_BASE 0x17000 #define HS_ERR_DEVICE_CHECKSUM (HS_ERR_DEVICE_BASE+1) #define HS_ERR_DEVICE_READ_TIMEOUT (HS_ERR_DEVICE_BASE+2) #define HS_ERR_DEVICE_RESPONSE (HS_ERR_DEVICE_BASE+3) #define HS_ERR_DEVICE_UNDER_INPUT_RANGE (HS_ERR_DEVICE_BASE+4) #define HS_ERR_DEVICE_EXCEED_INPUT_RANGE (HS_ERR_DEVICE_BASE+5) #define HS_ERR_DEVICE_OPEN_FAILED (HS_ERR_DEVICE_BASE+6) #define HS_ERR_DEVICE_GET_COMM_STATUS_ERROR (HS_ERR_DEVICE_BASE+7) #define HS_ERR_DEVICE_INVALID_VALUE (HS_ERR_DEVICE_BASE+8) #define HS_ERR_DEVICE_INTERNAL_BUFFER_OVERFLOW (HS_ERR_DEVICE_BASE+9) #define HS_ERR_DEVICE_SEND (HS_ERR_DEVICE_BASE+10) #define HS_ERR_DEVICE_DATA_CONNECT (HS_ERR_DEVICE_BASE+11) //IO======================================================================== #define HS_ERR_IO_BASE 0x18000 #define HS_ERR_IO_NOT_SUPPORT (HS_ERR_IO_BASE+1) #define HS_ERR_IO_ID (HS_ERR_IO_BASE+2) #define HS_ERR_IO_SLOT (HS_ERR_IO_BASE+3) #define HS_ERR_IO_CHANNEL (HS_ERR_IO_BASE+4) #define HS_ERR_IO_GAIN (HS_ERR_IO_BASE+5) #define HS_ERR_IO_INT_MODE (HS_ERR_IO_BASE+6) #define HS_ERR_IO_VALUE_OUT_OF_RANGE (HS_ERR_IO_BASE+7) #define HS_ERR_IO_CHANNEL_OUT_OF_RANGE (HS_ERR_IO_BASE+8) #define HS_ERR_IO_DO_CANNOT_OVERWRITE (HS_ERR_IO_BASE+10) #define HS_ERR_IO_AO_CANNOT_OVERWRITE (HS_ERR_IO_BASE+11) #define HS_ERR_IO_OPERATION_MODE (HS_ERR_IO_BASE+12) /*callback event*/ #define EVENT_ERROR 0x0001 #define EVENT_N_SAMPLE_REACH 0x0002 #define EVENT_DATA_SAMPLING_TIMEOUT 0x0004 #define EVENT_LAN_BUFFER_OVERFLOW 0x0008 #ifdef __cplusplus } #endif /* __cplusplus */