int main(int argc, char* argv[]){ char deviceName[GOIO_MAXSIZE_DEVICE_NAME]; gtype_int32 vendorId; gtype_int32 productId; gtype_int32 rawMeasurements[MAX_NUM_MEASUREMENTS]; gtype_real64 volts[MAX_NUM_MEASUREMENTS]; gtype_real64 calbMeasurements[MAX_NUM_MEASUREMENTS]; gtype_int32 numMeasurements, i; gtype_real64 measureperiod = 0.004; gtype_uint16 MajorVersion; gtype_uint16 MinorVersion; // Initialize the library GoIO_Init(); GoIO_GetDLLVersion(&MajorVersion, &MinorVersion); printf("Using library version %d.%d \n", MajorVersion, MinorVersion); bool bFoundDevice = GetAvailableDeviceName(deviceName, GOIO_MAXSIZE_DEVICE_NAME, &vendorId, &productId); if(!bFoundDevice) printf("No sensor Detected\n"); else{ GOIO_SENSOR_HANDLE hDevice = GoIO_Sensor_Open(deviceName, vendorId, productId, 0); if(hDevice != NULL){ printf("Sensor Opened Succesfully \n"); //Preparing to collect data from the device GoIO_Sensor_SetMeasurementPeriod(hDevice,measureperiod,SKIP_TIMEOUT_MS_DEFAULT); GoIO_Sensor_SendCmdAndGetResponse(hDevice, SKIP_CMD_ID_START_MEASUREMENTS,NULL,0,NULL,NULL,SKIP_TIMEOUT_MS_DEFAULT); OSSleep(8000); numMeasurements = GoIO_Sensor_ReadRawMeasurements(hDevice, rawMeasurements, MAX_NUM_MEASUREMENTS); printf("Recorded %d measurements \n", numMeasurements); // Begin outputting data to file to be processed further FILE * fp; fp = fopen("ekgdata.txt","w+"); for (i = 0; i < numMeasurements; i++){ volts[i]= GoIO_Sensor_ConvertToVoltage(hDevice, rawMeasurements[i]); calbMeasurements[i] = GoIO_Sensor_CalibrateData(hDevice,volts[i]); fprintf(fp,"%f\n",calbMeasurements[i]); } fclose(fp); printf("Closing Sensor \n"); GoIO_Sensor_Close(hDevice); } else{ printf("Unable to open Sensor, exiting."); return 0; } GoIO_Uninit(); } }
int main(int argc, char* argv[]) { char deviceName[GOIO_MAX_SIZE_DEVICE_NAME]; gtype_int32 vendorId; //USB vendor id gtype_int32 productId; //USB product id char tmpstring[100]; gtype_uint16 MajorVersion; gtype_uint16 MinorVersion; char units[20]; char equationType = 0; gtype_int32 rawMeasurements[MAX_NUM_MEASUREMENTS]; gtype_real64 volts[MAX_NUM_MEASUREMENTS]; gtype_real64 calbMeasurements[MAX_NUM_MEASUREMENTS]; gtype_int32 numMeasurements, i; gtype_real64 averageCalbMeasurement; printf("GoIO_DeviceCheck version 1.0\n"); GoIO_Init(); GoIO_GetDLLVersion(&MajorVersion, &MinorVersion); printf("This app is linked to GoIO lib version %d.%d .\n", MajorVersion, MinorVersion); bool bFoundDevice = GetAvailableDeviceName(deviceName, GOIO_MAX_SIZE_DEVICE_NAME, &vendorId, &productId); if (!bFoundDevice) printf("No Go devices found.\n"); else { GOIO_SENSOR_HANDLE hDevice = GoIO_Sensor_Open(deviceName, vendorId, productId, 0); if (hDevice != NULL) { printf("Successfully opened %s device %s .\n", deviceDesc[productId], deviceName); unsigned char charId; GoIO_Sensor_DDSMem_GetSensorNumber(hDevice, &charId, 0, 0); printf("Sensor id = %d", charId); GoIO_Sensor_DDSMem_GetLongName(hDevice, tmpstring, sizeof(tmpstring)); if (strlen(tmpstring) != 0) printf("(%s)", tmpstring); printf("\n"); GoIO_Sensor_SetMeasurementPeriod(hDevice, 0.040, SKIP_TIMEOUT_MS_DEFAULT);//40 milliseconds measurement period. GoIO_Sensor_SendCmdAndGetResponse(hDevice, SKIP_CMD_ID_START_MEASUREMENTS, NULL, 0, NULL, NULL, SKIP_TIMEOUT_MS_DEFAULT); OSSleep(1000); //Wait 1 second. numMeasurements = GoIO_Sensor_ReadRawMeasurements(hDevice, rawMeasurements, MAX_NUM_MEASUREMENTS); printf("%d measurements received after about 1 second.\n", numMeasurements); averageCalbMeasurement = 0.0; for (i = 0; i < numMeasurements; i++) { volts[i] = GoIO_Sensor_ConvertToVoltage(hDevice, rawMeasurements[i]); calbMeasurements[i] = GoIO_Sensor_CalibrateData(hDevice, volts[i]); averageCalbMeasurement += calbMeasurements[i]; } if (numMeasurements > 1) averageCalbMeasurement = averageCalbMeasurement/numMeasurements; GoIO_Sensor_DDSMem_GetCalibrationEquation(hDevice, &equationType); if (equationType != kEquationType_Linear) strcpy(units, "volts"); else { gtype_real32 a, b, c; unsigned char activeCalPage = 0; GoIO_Sensor_DDSMem_GetActiveCalPage(hDevice, &activeCalPage); GoIO_Sensor_DDSMem_GetCalPage(hDevice, activeCalPage, &a, &b, &c, units, sizeof(units)); } printf("Average measurement = %8.3f %s .\n", averageCalbMeasurement, units); #ifdef TARGET_OS_WIN getchar(); #endif GoIO_Sensor_Close(hDevice); } } GoIO_Uninit(); return 0; }