Example #1
0
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;
 }