public IV_Data[] LogarithmicVoltageSweep(double start, double stop, int numPoints)
        {
            _driver.SendCommandRequest(string.Format("DCSweepVLog_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;
        }
        public IV_Data[] PulsedLinearVoltageSweep(double start, double stop, int numPoints, double pulseWidth, double pulsePeriod, bool remoteSense = false)
        {
            var _senseMode = (remoteSense == true) ? "true" : "false";

            _driver.SendCommandRequest(string.Format("PulsedSweepVSingle_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;
        }
        public IV_Data[] ListVoltageSweep(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("DCSweepVList_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;
        }