internal override void InsertSegmentTableData(int channelNumber, SSegmentTable segmentTable) { SendCommand("FORM:DATA ASC"); switch (segmentTable.Swp) { case naEnum.EOnOff.On: SendCommand("SENS" + channelNumber.ToString() + ":SEGM:DATA 6," + Convert_SegmentTable2String(segmentTable)); break; case naEnum.EOnOff.Off: SendCommand("SENS" + channelNumber.ToString() + ":SEGM:DATA 5," + Convert_SegmentTable2String(segmentTable)); break; } SendCommand("FORM:DATA REAL"); base.Operation_Complete(); waitTimer.Wait(300); }
public override void GetSegmentTable(out SSegmentTable segmentTable, int channelNumber) { int count; string DataFormat; segmentTable = new SSegmentTable(); try { SendCommand("FORM:DATA ASC"); count = int.Parse(ReadCommand("SENS" + channelNumber + ":SEGM:COUN?")); segmentTable.Mode = naEnum.EModeSetting.StartStop; segmentTable.Ifbw = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), ReadCommand(String.Format("SENS{0}:SEGM:BWID:CONT?", channelNumber))); segmentTable.Pow = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), ReadCommand(String.Format("SENS{0}:SEGM:POW:CONT?", channelNumber))); segmentTable.Del = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), ReadCommand(String.Format("SENS{0}:SEGM:SWE:DWEL:CONT?", channelNumber))); segmentTable.Time = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), ReadCommand(String.Format("SENS{0}:SEGM:SWE:TIME:CONT?", channelNumber))); segmentTable.Segm = count; segmentTable.SegmentData = new SSegmentData[segmentTable.Segm]; for (int i = 0; i < count; i++) { segmentTable.SegmentData[i].Start = double.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:FREQ:STAR?", channelNumber.ToString(), (i + 1).ToString()))); segmentTable.SegmentData[i].Stop = double.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:FREQ:STOP?", channelNumber.ToString(), (i + 1).ToString()))); segmentTable.SegmentData[i].Points = int.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:SWE:POIN?", channelNumber.ToString(), (i + 1).ToString()))); segmentTable.SegmentData[i].IfbwValue = double.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:BWID?", channelNumber.ToString(), (i + 1).ToString()))); segmentTable.SegmentData[i].PowValue = double.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:POW?", channelNumber.ToString(), (i + 1).ToString()))); segmentTable.SegmentData[i].TimeValue = double.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:SWE:TIME?", channelNumber.ToString(), (i + 1).ToString()))); segmentTable.SegmentData[i].DelValue = double.Parse(ReadCommand(String.Format("SENS{0}:SEGM{1}:SWE:DWEL?", channelNumber.ToString(), (i + 1).ToString()))); } SendCommand("FORM REAL, 64"); SendCommand("FORM:BORD NORM"); } catch (Exception e) { DisplayError(this.ToString(), "Error in verifying Segment Table", "Mistake in Segment Table \r\n" + e.Message); } }
internal override void InsertSegmentTableData(int channelNumber, SSegmentTable segmentTable) { //Delete all segment first SendCommand("SENS" + channelNumber.ToString() + ":SEGM:DEL:ALL"); for (int Seg = segmentTable.SegmentData.Length - 1; Seg >= 0; Seg--) { //[SENSe<Ch>:]SEGMent<Seg>:INSert <StartFreq>, <StopFreq>, <Points>, <Power>, //<SegmentTime>|<MeasDelay>, <Unused>, <MeasBandwidth>[, <LO>, //<Selectivity>] SendCommand(String.Format("SENS{0}:SEGM:INS {1}, {2}, {3}, {4}, {5}, 0, {6}", channelNumber.ToString(), segmentTable.SegmentData[Seg].Start.ToString(), segmentTable.SegmentData[Seg].Stop.ToString(), segmentTable.SegmentData[Seg].Points.ToString(), segmentTable.SegmentData[Seg].PowValue.ToString(), segmentTable.SegmentData[Seg].TimeValue.ToString(), segmentTable.SegmentData[Seg].IfbwValue.ToString())); } SendCommand(String.Format("SENS{0}:SEGM:POW:CONT {1}", channelNumber.ToString(), (segmentTable.Pow == naEnum.EOnOff.On ? "1" : "0"))); SendCommand(String.Format("SENS{0}:SEGM:BWID:CONT {1}", channelNumber.ToString(), (segmentTable.Ifbw == naEnum.EOnOff.On ? "1" : "0"))); SendCommand(String.Format("SENS{0}:SEGM:SWE:DWEL:CONT {1}", channelNumber.ToString(), (segmentTable.Del == naEnum.EOnOff.On ? "1" : "0"))); SendCommand(String.Format("SENS{0}:SEGM:SWE:TIME:CONT {1}", channelNumber.ToString(), (segmentTable.Time == naEnum.EOnOff.On ? "1" : "0"))); switch (segmentTable.Swp) { case naEnum.EOnOff.On: SendCommand("SENS" + channelNumber.ToString() + ":SEGM:STAT ON"); //SendCommand("SENS" + ChannelNumber.ToString() + ":SEGM:DATA 6," + Convert_SegmentTable2String(SegmentData, sweepmode)); break; case naEnum.EOnOff.Off: //SendCommand("SENS" + ChannelNumber.ToString() + ":SEGM:STAT OFF"); //SendCommand("SENS" + ChannelNumber.ToString() + ":SEGM:DATA 5," + Convert_SegmentTable2String(SegmentData, sweepmode)); break; } base.Operation_Complete(); }
private string Convert_SegmentTable2String(SSegmentTable SegmentTable) { string tmpStr; tmpStr = ""; naEnum.EOnOff sweepmode = SegmentTable.Swp; switch (sweepmode) { case naEnum.EOnOff.On: tmpStr = ((int)SegmentTable.Mode).ToString(); tmpStr += "," + ((int)SegmentTable.Ifbw).ToString(); tmpStr += "," + ((int)SegmentTable.Pow).ToString(); tmpStr += "," + ((int)SegmentTable.Del).ToString(); tmpStr += "," + ((int)SegmentTable.Swp).ToString(); tmpStr += "," + ((int)SegmentTable.Time).ToString(); tmpStr += "," + SegmentTable.Segm.ToString(); for (int Seg = 0; Seg < SegmentTable.SegmentData.Length; Seg++) { tmpStr += "," + SegmentTable.SegmentData[Seg].Start.ToString(); tmpStr += "," + SegmentTable.SegmentData[Seg].Stop.ToString(); tmpStr += "," + SegmentTable.SegmentData[Seg].Points.ToString(); if (SegmentTable.Ifbw == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].IfbwValue.ToString(); } if (SegmentTable.Pow == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].PowValue.ToString(); } if (SegmentTable.Del == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].DelValue.ToString(); } if (SegmentTable.Swp == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].SwpValue.ToString(); } if (SegmentTable.Time == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].TimeValue.ToString(); } } break; case naEnum.EOnOff.Off: tmpStr = ((int)SegmentTable.Mode).ToString(); tmpStr += "," + ((int)SegmentTable.Ifbw).ToString(); tmpStr += "," + ((int)SegmentTable.Pow).ToString(); tmpStr += "," + ((int)SegmentTable.Del).ToString(); tmpStr += "," + ((int)SegmentTable.Time).ToString(); tmpStr += "," + SegmentTable.Segm.ToString(); for (int Seg = 0; Seg < SegmentTable.SegmentData.Length; Seg++) { tmpStr += "," + SegmentTable.SegmentData[Seg].Start.ToString(); tmpStr += "," + SegmentTable.SegmentData[Seg].Stop.ToString(); tmpStr += "," + SegmentTable.SegmentData[Seg].Points.ToString(); if (SegmentTable.Ifbw == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].IfbwValue.ToString(); } if (SegmentTable.Pow == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].PowValue.ToString(); } if (SegmentTable.Del == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].DelValue.ToString(); } if (SegmentTable.Time == naEnum.EOnOff.On) { tmpStr += "," + SegmentTable.SegmentData[Seg].TimeValue.ToString(); } } break; } return(tmpStr); }
public override void GetSegmentTable(out SSegmentTable segmentTable, int channelNumber) { string DataFormat; string tmpStr; string[] tmpSegData; long tmpI; int iData = 3, iAdd = 0; segmentTable = new SSegmentTable(); DataFormat = ReadCommand("FORM:DATA?"); SendCommand("FORM:DATA ASC"); tmpStr = ReadCommand("SENS" + channelNumber.ToString() + ":SEGM:DATA?"); tmpSegData = tmpStr.Split(','); for (int s = 0; s < tmpSegData.Length; s++) { tmpI = (long)(Convert.ToDouble(tmpSegData[s])); tmpSegData[s] = tmpI.ToString(); } segmentTable.Mode = (naEnum.EModeSetting)Enum.Parse(typeof(naEnum.EModeSetting), tmpSegData[1]); segmentTable.Ifbw = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), tmpSegData[2]); segmentTable.Pow = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), tmpSegData[3]); segmentTable.Del = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), tmpSegData[4]); if (tmpSegData[0] == "5") { segmentTable.Swp = naEnum.EOnOff.Off; segmentTable.Time = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), tmpSegData[5]); segmentTable.Segm = int.Parse(tmpSegData[6]); } else if (tmpSegData[0] == "6") { segmentTable.Swp = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), tmpSegData[5]); segmentTable.Time = (naEnum.EOnOff)Enum.Parse(typeof(naEnum.EOnOff), tmpSegData[6]); segmentTable.Segm = int.Parse(tmpSegData[7]); iAdd = 1; } segmentTable.SegmentData = new SSegmentData[segmentTable.Segm]; for (int iSeg = 0; iSeg < segmentTable.Segm; iSeg++) { segmentTable.SegmentData[iSeg].Start = double.Parse(tmpSegData[(iSeg * iData) + 7 + iAdd]); segmentTable.SegmentData[iSeg].Stop = double.Parse(tmpSegData[(iSeg * iData) + 8 + iAdd]); segmentTable.SegmentData[iSeg].Points = int.Parse(tmpSegData[(iSeg * iData) + 9 + iAdd]); tmpI = 10; if (segmentTable.Ifbw == naEnum.EOnOff.On) { segmentTable.SegmentData[iSeg].IfbwValue = double.Parse(tmpSegData[(iSeg * iData) + tmpI]); tmpI++; if (iSeg == 0) { iData++; } } if (segmentTable.Pow == naEnum.EOnOff.On) { segmentTable.SegmentData[iSeg].PowValue = double.Parse(tmpSegData[(iSeg * iData) + tmpI]); tmpI++; if (iSeg == 0) { iData++; } } if (segmentTable.Del == naEnum.EOnOff.On) { segmentTable.SegmentData[iSeg].DelValue = double.Parse(tmpSegData[(iSeg * iData) + tmpI]); tmpI++; if (iSeg == 0) { iData++; } } if (segmentTable.Swp == naEnum.EOnOff.On) { segmentTable.SegmentData[iSeg].SwpValue = (naEnum.ESweepMode)Enum.Parse(typeof(naEnum.ESweepMode), tmpSegData[(iSeg * iData) + tmpI]); tmpI++; if (iSeg == 0) { iData++; } } if (segmentTable.Time == naEnum.EOnOff.On) { segmentTable.SegmentData[iSeg].TimeValue = double.Parse(tmpSegData[(iSeg * iData) + tmpI]); tmpI++; if (iSeg == 0) { iData++; } } } SendCommand("FORM:DATA " + DataFormat); }
internal virtual void InsertSegmentTableData(int channelNumber, SSegmentTable segmentTable) { }
public virtual void GetSegmentTable(out SSegmentTable segmentTable, int channelNumber) { segmentTable = new SSegmentTable(); }