Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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();
        }
Example #4
0
        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);
        }
Example #5
0
        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();
 }