Пример #1
0
double Keithley2100Lib::MeasureACVoltage(int range){
	qDebug()<<"MeasureACVoltage-index:"<<range;

        bool ok=true;
        switch(range){
        case 9:
                writeKeithley((char*)"MEAS:VOLT:AC? 0.1");
                break;
        case 10:
                writeKeithley((char*)"MEAS:VOLT:AC? 1");
                break;
        case 11:
                writeKeithley((char*)"MEAS:VOLT:AC? 10");
                break;
        case 12:
                writeKeithley((char*)"MEAS:VOLT:AC? 100");
                break;
        case 13:
        case 14:
                writeKeithley((char*)"MEAS:VOLT:AC? 1000");
                break;
        }
//        usleep(500000);
        sleep(1);
                double retData=QString(readKeithley()).toDouble(&ok);
                return retData;
}
Пример #2
0
double Keithley2100Lib::MeasureResistance(int range){
	qDebug()<<"MeasureResistance-index:"<<range;
	bool ok=true;
	switch(range){
	case 0:
		writeKeithley((char*)"MEAS:RES? 100E0");
		break;
	case 1:
		writeKeithley((char*)"MEAS:RES? 1E3");
		break;
	case 2:
		writeKeithley((char*)"MEAS:RES? 10E3");
		break;
	case 3:
		writeKeithley((char*)"MEAS:RES? 100E3");
		break;
	case 4:
		writeKeithley((char*)"MEAS:RES? 1E6");
		break;
	case 5:
		writeKeithley((char*)"MEAS:RES? 10E6");
		usleep(100000);
		break;
	case 6:
		writeKeithley((char*)"MEAS:RES? 100E6");
		usleep(100000);
        break;
	}
		double retData=QString(readKeithley()).toDouble(&ok);
		return retData;
}
Пример #3
0
double Keithley2100Lib::MeasureDCVoltage(int range){
	qDebug()<<"MeasureDCVoltage-index:"<<range;

        bool ok=true;
        switch(range){
        case 15:
                writeKeithley((char*)"MEAS:VOLT:DC? 0.1");
                break;
        case 16:
                writeKeithley((char*)"MEAS:VOLT:DC? 1");
                break;
        case 17:
                writeKeithley((char*)"MEAS:VOLT:DC? 10");
                break;
        case 18:
                writeKeithley((char*)"MEAS:VOLT:DC? 100");
                break;
        case 19:
        case 20:
                writeKeithley((char*)"MEAS:VOLT:DC? 1000");
                break;
        }
                double retData=QString(readKeithley()).toDouble(&ok);
                return retData;
}
Пример #4
0
Keithley2100Lib::Keithley2100Lib(QObject *parent) :QObject(parent)
{
       fp=open("/dev/usbtmc0",O_RDWR);

       writeKeithley((char*)"*IDN?");
       qDebug()<<readKeithley();

       clearKeithley();
       resetKeithley();

}
Пример #5
0
double Keithley2100Lib::MeasureContinuity(int range){
	qDebug()<<"MeasureContinuity-index:"<<range;

    bool ok=true;
    switch(range){
    case 7:
        writeKeithley((char*)"MEAS:CONT");
        break;
    }
    double retData=QString(readKeithley()).toDouble(&ok);
    return retData;
}
Пример #6
0
double Keithley2100Lib::MeasureDiode(int range){
	qDebug()<<"MeasureDiode-index:"<<range;

    bool ok=true;
    switch(range){
    case 8:
        writeKeithley((char*)"MEAS:DIOD");
    break;
}
    double retData=QString(readKeithley()).toDouble(&ok);
    return retData;
}
Пример #7
0
float getKeithley(){
	float measurement;
	float mantissa;
	int exponent;
	int tooHigh=0;
	int tooLow=0;

	measurement=readKeithley();	
	printf("%f\n",measurement);
	mantissa=frexp(measurement,&exponent);
	printf("BEFORE DECIMAL: %f\n",mantissa);
	printf("AFTER DECIMAL: %f\n",exponent);

	if((mantissa > 1)) tooHigh=1;
	if((mantissa < 1 && exponent < .2)) tooLow=1;

	while(tooLow || tooHigh){
		printf("Too High: %d, Too Low: %d\n",tooHigh,tooLow);
		if(tooLow){
			decreaseKeithleyRange();
		} else if(tooHigh){
			increaseKeithleyRange();
		} else {
			return measurement;
		}
		tooHigh=0;
		tooLow=0;
		measurement=readKeithley();
		mantissa=frexp(measurement,&exponent);
	printf("BEFORE DECIMAL: %f\n",mantissa);
	printf("AFTER DECIMAL: %f\n",exponent);
	if((mantissa > 1 && exponent > .4)) tooHigh=1;
	if((mantissa < 1 && exponent < .2)) tooLow=1;
	}


	return measurement;
}
Пример #8
0
double Keithley2100Lib::MeasureACCurrent(int range){
	qDebug()<<"MeasureACCurrent-index:"<<range;

        bool ok=true;
        switch(range){
        case 26:
        case 27:
        case 28:
        case 29:
                writeKeithley((char*)"MEAS:CURR:AC? 1");
                break;
        case 30:
                writeKeithley((char*)"MEAS:CURR:AC? 3");
                break;
        }
                double retData=QString(readKeithley()).toDouble(&ok);
                return retData;
}
Пример #9
0
double Keithley2100Lib::MeasureDCCurrent(int range){
	qDebug()<<"MeasureDCCurrent-index:"<<range;

        bool ok=true;
        switch(range){
        case 1:
                writeKeithley((char*)"MEAS:CURR:DC? 0.01");
                break;
        case 21:
        case 22:
        case 23:
                writeKeithley((char*)"MEAS:CURR:DC? 0.1");
                break;
        case 24:
                writeKeithley((char*)"MEAS:CURR:DC? 1");
                break;
        case 25:
                writeKeithley((char*)"MEAS:CURR:DC? 3");
                break;

        }
                double retData=QString(readKeithley()).toDouble(&ok);
                return retData;
}