void cleanUpAndClose(int exitCode) { int error = 0; for (int i = 0; i < connected_device_count; i++) { LOG_DEBUG(("[%02d] closing", i)); seabreeze_close_spectrometer(i, &error); if (error) { printf("[%02d] Error closing spectrometer: %s\n", i, get_error_string(error)); } } exit(exitCode); }
int main(int argc, char *argv[]) { int flag; int error; char type[16]; int device_count = 0; int i; //////////////////////////////////////////////////////////////////////////// // parse & validate arguments //////////////////////////////////////////////////////////////////////////// parseArgs(argc, argv); if (dtg.year == 0) { printf("ERROR: invalid dtg provided\n"); usage(); } printf("sampleNum is: %i\n", sampleNum); if (sampleNum==0){ printf("Setting up the header file for the csv\n"); }else if (sampleNum >= 1){ printf("performing normal sampling\n"); }else { printf("ERROR: incorrect scanNum option provided\n"); usage(); } //////////////////////////////////////////////////////////////////////////// for(i = 0; i < SEABREEZE_MAX_DEVICES; i++) { printf("\nOpening spectrometer %d.\n", i); flag = seabreeze_open_spectrometer(i, &error); printf("...Result is (%d) [%s]\n", flag, get_error_string(error)); if(0 == flag) { device_count++; } else { break; } } for(i = 0; i < device_count; i++) { printf("\nGetting device %d name.\n", i); seabreeze_get_model(i, &error, type, sizeof(type)); printf("...Result is (%s) [%s]\n", type, get_error_string(error)); } printf("Number of devices found is: %d\n", device_count); for(i = 0; i < device_count; i++) { printf("\nSetting device %d integration time to 100ms.\n", i); seabreeze_set_integration_time_microsec(i, &error, 100000); //printf("...Result is [%s]\n", get_error_string(error)); } if (deviceIndex < device_count){ printf("\n\nBegin sampling using device: %d\n", deviceIndex); if (sampleNum == 0){ get_wavelengths(deviceIndex); }else if (sampleNum>=1){ get_spectrum(deviceIndex); } }else{ printf("deviceIndex provided in arguments is out of range of the number of devices found" ); usage(); } //get_raw_spectrum_test(i); //////////////////////////////////////////////////////////////////////////////// /////close the spectrometers /////////////////////////////////////////////////////////////////////////////// for(i = 0; i < device_count; i++) { printf("\nClosing spectrometer %d.\n", i); flag = seabreeze_close_spectrometer(i, &error); //printf("...Result is (%d) [%s]\n", flag, get_error_string(error)); } seabreeze_shutdown(); return 0; }