Beispiel #1
0
        public void SetSourceCurrent(double val)
        {
            if (_currentLimitFunction != Keithley26xxBLimitFunctions.LIMIT_IV)
            {
                _currentLimitFunction    = Keithley26xxBLimitFunctions.LIMIT_IV;
                _display.smuX.limit.func = Keithley26xxBLimitFunctions.LIMIT_IV;
            }

            if (SourceMode != SMUSourceMode.Current)
            {
                SourceMode = SMUSourceMode.Current;
            }

            var toSet = val;

            if (val < minCurrentVal)
            {
                toSet = minCurrentVal;
            }
            else if (val > maxCurrentVal)
            {
                toSet = maxCurrentVal;
            }

            _driver.SendCommandRequest(string.Format("SetCurrent_smu{0}({1}, {2})", ChannelIdentifier, toSet.ToString(CultureInfo.InvariantCulture), _currentVoltageCompliance.ToString(CultureInfo.InvariantCulture)));
        }
        public void SetSourceVoltage(double val)
        {
            if (_currentLimitFunction != Keithley26xxBLimitFunctions.LIMIT_IV)
            {
                _currentLimitFunction = Keithley26xxBLimitFunctions.LIMIT_IV;
                _display.smuX.limit.func = Keithley26xxBLimitFunctions.LIMIT_IV;
            }

            if (SMU_SourceMode != SourceMode.Voltage)
                SMU_SourceMode = SourceMode.Voltage;

            var toSet = val;
            if (val < minVoltageVal)
                toSet = minVoltageVal;
            else if (val > maxVoltageVal)
                toSet = maxVoltageVal;

            _driver.SendCommandRequest(string.Format("SetVoltage_smu{0}({1}, {2})", ChannelIdentifier, toSet.ToString(CultureInfo.InvariantCulture), _currentCurrentCompliance.ToString(CultureInfo.InvariantCulture)));
        }