Beispiel #1
0
        public IV_Data[] ListCurrentSweep(double[] sweepList)
        {
            var stringList = "{";

            for (int i = 0; i < sweepList.Length - 1; i++)
            {
                stringList += sweepList[i].ToString(NumberFormatInfo.InvariantInfo) + ", ";
            }
            stringList += sweepList[sweepList.Length - 1] + "}";

            _driver.SendCommandRequest(string.Format("DCSweepIList_smu{0}({1}, {2}, {3}, {4})",
                                                     ChannelIdentifier,
                                                     stringList,
                                                     sweepList.Length.ToString(NumberFormatInfo.InvariantInfo),
                                                     Compliance.ToString(NumberFormatInfo.InvariantInfo),
                                                     NPLC.ToString(NumberFormatInfo.InvariantInfo)));

            var result = new IV_Data[sweepList.Length];

            for (int i = 0; i < result.Length; i++)
            {
                result[i] = new IV_Data(_driver.ReceiveDeviceAnswer());
            }

            return(result);
        }
Beispiel #2
0
        public IV_Data[] LogarithmicCurrentSweep(double start, double stop, int numPoints)
        {
            _driver.SendCommandRequest(string.Format("DCSweepILog_smu{0}({1}, {2}, {3}, {4}, {5})",
                                                     ChannelIdentifier,
                                                     start.ToString(NumberFormatInfo.InvariantInfo),
                                                     stop.ToString(NumberFormatInfo.InvariantInfo),
                                                     numPoints.ToString(NumberFormatInfo.InvariantInfo),
                                                     Compliance.ToString(NumberFormatInfo.InvariantInfo),
                                                     NPLC.ToString(NumberFormatInfo.InvariantInfo)));

            var result = new IV_Data[numPoints];

            for (int i = 0; i < result.Length; i++)
            {
                result[i] = new IV_Data(_driver.ReceiveDeviceAnswer());
            }

            return(result);
        }
Beispiel #3
0
        public IV_Data[] PulsedLinearCurrentSweep(double start, double stop, int numPoints, double pulseWidth, double pulsePeriod, bool remoteSense = false)
        {
            var _senseMode = (remoteSense == true) ? "true" : "false";

            _driver.SendCommandRequest(string.Format("PulsedSweepISingle_smu{0}({1}, {2}, {3}, {4}, {5}, {6}, {7}, {8})",
                                                     ChannelIdentifier,
                                                     start.ToString(NumberFormatInfo.InvariantInfo),
                                                     stop.ToString(NumberFormatInfo.InvariantInfo),
                                                     numPoints.ToString(NumberFormatInfo.InvariantInfo),
                                                     pulseWidth.ToString(NumberFormatInfo.InvariantInfo),
                                                     pulsePeriod.ToString(NumberFormatInfo.InvariantInfo),
                                                     Compliance.ToString(NumberFormatInfo.InvariantInfo),
                                                     NPLC.ToString(NumberFormatInfo.InvariantInfo),
                                                     _senseMode));

            var result = new IV_Data[numPoints];

            for (int i = 0; i < result.Length; i++)
            {
                result[i] = new IV_Data(_driver.ReceiveDeviceAnswer());
            }

            return(result);
        }