/// <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); }