/// <summary>
        /// Set the elements valid while executing :Read/etc. commands
        /// </summary>
        /// <param name="Elements"></param>
        public void SetDataElement(EnumDataStringElements Elements)
        {
            List <string> elemlsit = new List <string>();

            if (Elements.HasFlag(EnumDataStringElements.VOLT))
            {
                elemlsit.Add(EnumDataStringElements.VOLT.ToString());
            }

            if (Elements.HasFlag(EnumDataStringElements.CURR))
            {
                elemlsit.Add(EnumDataStringElements.CURR.ToString());
            }

            if (Elements.HasFlag(EnumDataStringElements.RES))
            {
                elemlsit.Add(EnumDataStringElements.RES.ToString());
            }

            if (Elements.HasFlag(EnumDataStringElements.TIME))
            {
                elemlsit.Add(EnumDataStringElements.TIME.ToString());
            }

            if (Elements.HasFlag(EnumDataStringElements.STAT))
            {
                elemlsit.Add(EnumDataStringElements.STAT.ToString());
            }

            if (elemlsit.Count == 0)
            {
                throw new ArgumentException(string.Format("the null elemtents passed"));
            }
            else
            {
                string arg = String.Join(",", elemlsit.ToArray());
                GPIBDevice.GPIBwr(string.Format("FORM:ELEM {0}", arg));

                this.DataStringElements = Elements;
            }
        }
        public MeasuredData GetMeasuredData(EnumDataStringElements Elements)
        {
            MeasuredData result = new MeasuredData();

            result.Voltage    = double.NaN;
            result.Current    = double.NaN;
            result.Resistance = double.NaN;
            result.Timestamp  = double.NaN;
            result.Status     = UInt32.MinValue;

            var ret = Fetch();

            if (Elements == EnumDataStringElements.ALL)
            {
                var retArray = ret.Split(',');
                // get voltage
                if (double.TryParse(retArray[0], out double v))
                {
                    result.Voltage = v;
                }

                // get current
                if (double.TryParse(retArray[1], out double c))
                {
                    result.Current = c;
                }

                // get resistance
                if (double.TryParse(retArray[2], out double r))
                {
                    result.Resistance = r;
                }

                // get timestamps
                if (double.TryParse(retArray[3], out double t))
                {
                    result.Timestamp = t;
                }

                // get status
                if (UInt32.TryParse(retArray[4], out UInt32 s))
                {
                    result.Status = s;
                }
            }
            else if (Elements == EnumDataStringElements.VOLT)
            {
                // get voltage
                if (double.TryParse(ret, out double v))
                {
                    result.Voltage = v;
                }
            }
            else if (Elements == EnumDataStringElements.CURR)
            {
                // get current
                if (double.TryParse(ret, out double c))
                {
                    result.Current = c;
                }
            }
            else if (Elements == EnumDataStringElements.RES)
            {
                // get resistance
                if (double.TryParse(ret, out double r))
                {
                    result.Resistance = r;
                }
            }
            else if (Elements == EnumDataStringElements.TIME)
            {
                // get timestamps
                if (double.TryParse(ret, out double t))
                {
                    result.Timestamp = t;
                }
            }
            else if (Elements == EnumDataStringElements.STAT)
            {
                // get status
                if (UInt32.TryParse(ret, out UInt32 s))
                {
                    result.Status = s;
                }
            }

            return(result);
        }