// Analog_Input_Scan.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "HSDAQ.h" #include #include //#include "timeData.h" int _tmain(int argc, _TCHAR* argv[]) { HANDLE hHS; char IPadd[64]="\0"; char sdk_version[16]={0}; char fw_version[32]={0}; bool ret= false; short chCnt=0; short useGain=0; short extriggMode=0; bool continuousMode=false; long continuousTimeout=0; unsigned long targetCnt=0; long sampleRate=0; //unsigned long totalRead=0,totalReceived=0; short DataTransMethod=0; short AutoRun=0; if(argc>1) { wprintf(TEXT("%s\r\n"),argv[1]); //int nLen = wcslen(argv[1])+1; WideCharToMultiByte(CP_ACP, 0, argv[1], -1, IPadd, 64, NULL, NULL); printf("program start %s\r\n",IPadd); } else { printf("error argument\r\n"); return 0; } char tmp[128]={0}; sprintf(tmp,"%s,9999,10010",IPadd); //Step 2: Create a TCP connection with ET-7H16 hHS = HS_Device_Create(tmp); Sleep(10); if(hHS!=NULL) { printf("ET-7H16 Analog Input float Scan Testing [continue mode & Software trigger]\r\n"); HS_GetSDKVersion(sdk_version); printf("HSDAQ SDK Ver=%s\r\n",sdk_version); HS_GetFirmwareVersion(hHS,fw_version); printf("ET7H16 Firmware Ver=%s\r\n",fw_version); extriggMode=0; targetCnt=0; sampleRate=20000; //must be <30K Hz in continue mode ret=HS_SetAIScanParam(hHS, chCnt, useGain, extriggMode, sampleRate, targetCnt, DataTransMethod,AutoRun); //Step 2: SetScanParam sets chCnt, useGain, triggerMode, sampleRate, targetCnt to ET7H16 if(ret==false) { printf("Error code 0x%x\r\n",HS_GetLastError()); } HS_GetAIScanParam(hHS, &chCnt, &useGain, &extriggMode, &sampleRate, &targetCnt,&DataTransMethod,&AutoRun); //Step 3: GetScanParam getsx chCnt, useGain, triggerMode, sampleRate, targetCnt to check with ET7H16 printf("ET-7H16 first Scan parameters chCnt %d, useGain %d, triggMode %d, sampleRate %ld, targetCnt %lu \n", chCnt, useGain, extriggMode, sampleRate, targetCnt); Sleep(10); //Step 4: Start AI Scan ret=HS_StartAIScan(hHS); if(ret==false) { printf("Error code 0x%x\r\n",HS_GetLastError()); } WORD BufferStatus=0; #define BUFFERSIZE 1000 //float fdataBuffer[BUFFERSIZE]; WORD dataBuffer[BUFFERSIZE]; unsigned long ulleng=0; unsigned long totalRecv=0; unsigned int remChannel=0; unsigned long CH1checkerror=0; unsigned long CH7checkerror=0; unsigned long otherCHcheckerror=0; bool quit=false; //Step 5: while loop to get total received data count from ET7H16Logger while(quit==false) { ret=HS_GetAIBufferStatus(hHS,&BufferStatus,&ulleng); if(ret==false) { printf("Error code 0x%x\r\n",HS_GetLastError()); } else { if(BufferStatus>=2) //AI buffer overflow { if(BufferStatus>>1 & 0x1) printf("AI buffer overflow\r\n"); else if(BufferStatus>>2 & 0x1) printf("AI scan stop\r\n"); else printf("other error\r\n"); break; } if(ulleng) { unsigned long size=ulleng; unsigned long temp=0; unsigned long readsize=0; { if(size>BUFFERSIZE) size=BUFFERSIZE; //readsize=HS_GetAIBuffer(hHS,fdataBuffer,size); readsize=HS_GetAIBufferHex(hHS,dataBuffer,size); if(readsize) { printf("."); int i=0; for(i=0;i1.35 || fdataBuffer[i]<0.95) { CH1checkerror++; printf("CH1 error %lu, %f\r\n",CH1checkerror,fdataBuffer[i]); quit=true; }*/ break; case 7: //0V /*if(fdataBuffer[i]>0.2 || fdataBuffer[i]<-0.2) { CH7checkerror++; printf("CH7 error %lu, %f\r\n",CH7checkerror,fdataBuffer[i]); quit=true; }*/ break; } remChannel++; } } else printf("x"); totalRecv=totalRecv+readsize; } } } if(targetCnt && totalRecv>=targetCnt) //targetCnt >0 : N sample mode, 0: continue mode { break; } //continue mode if(_kbhit()) { Sleep(1); if(_getch()=='q' || _getch()=='Q') break; } } //Step8: Stop AI Scan HS_StopAIScan(hHS); printf("AP total read %lu\n", totalRecv); HS_Device_Release(hHS); } return 0; }