{
    "type" : "IQS",

    "ACQuire" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 3,
        "key" : "",

        "DECunation" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "DecimateFactor",
            "paramType" : ["double"],
            "inputType" : "uint32_t",
            "outputType" : "Int"
        }
    },

    "BWIDth" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "IF" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "AnalogIFBWGrade",
            "paramType" : ["double"],
            "inputType" : "uint8_t",
            "outputType" : "Int"
        }
    },

    "FREQuency" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "CENTer" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "CenterFreq_Hz",
            "paramType" : ["Hz","double"],
            "inputType" : "double",
            "outputType" : "Scientific"
        }

    },

    "ANALYsis" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 5,
        "key" : "",

        "BANDwidth" :{
            "end" : false,
            "func" : ["query","set"],
            "power" : ["FindPlus","SetPlus"],
            "minSize" : 4,
            "key" : "DecimateFactor",
            "paramType" : ["Hz","double"],
            "inputType" : "double",
            "outputType" : "Int"
        }
    },


    "TRACe" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "DATA" : {
            "end" : true,
            "func" : ["data"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "DATA",
            "paramType" : ["char"],
            "inputType" : "int32_t",
            "outputType" : "Scientific",

            "TYPE" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["SetPlus","FindPlus"],
                "minSize" : 4,
                "key" : "TraceDataType",
                "paramType" : ["char","double"],
                "inputType" : "double",
                "outputType" : "String"
            }

        },

        "RLEVel" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "RefLevel_dBm",
            "paramType" : ["dBm","double"],
            "inputType" : "double",
            "outputType" : "Scientific"
        },

        "FORMAT" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "DataFormat",
            "paramType" : ["double","char"],
            "inputType" : "int32_t",
            "outputType" : "String"
        },

        "IQ" : {
            "end" : true,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 2,
            "key" : "",

            "SRATe" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 2,
                "key" : "NativeIQSampleRate_SPS",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Scientific"
            },

            "POINts" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["SetPlus"],
                "minSize" : 4,
                "key" : "TriggerLength",
                "paramType" : ["double"],
                "inputType" : "uint64_t",
                "outputType" : "Int"
            }
        }
    },

    


    "ROSCillator" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        

        "EXTernal" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "",

            "FREQuency" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "ReferenceClockFrequency",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Scientific"
            }
        },

        "SOURce" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "ReferenceClockSource",
            "paramType" : ["double","char"],
            "inputType" : "int32_t",
            "outputType" : "String"
        },

        "FREQuency" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "ReferenceClockFrequency",
            "paramType" : ["double"],
            "inputType" : "double",
            "outputType" : "Scientific"
        },

        "OUTPut" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" :4,
            "key" : "",

            "STATe" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" :4,
                "key" : "EnableReferenceClockOut",
                "paramType" : ["double"],
                "inputType" : "uint8_t",
                "outputType" : "Int"
            }
        }
    
    },

    "ROUTe" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "INPut" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "",

            "SELect" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "RxPort",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            }
        }
    },

    "COMM" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",


        "TIMEout" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "",

            "TRANsfer" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "BusTimeout_ms",
                "paramType" : ["double"],
                "inputType" : "uint32_t",
                "outputType" : "Int"
            }
        }
    },

    "GAIN" :{
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "STRategy" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "GainStrategy",
            "paramType" : ["double","char"],
            "inputType" : "int32_t",
            "outputType" : "String"
        },

        "IF" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 2,
            "key" : "IFGainGrade",
            "paramType" : ["double"],
            "inputType" : "uint8_t",
            "outputType" : "Int"
        }
    },

    "PREAmplifier" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "STATe" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "Preamplifier",
            "paramType" : ["double","char"],
            "inputType" : "int32_t",
            "outputType" : "String"
        }
    },

    "DISPlay" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",
    
        "IF" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 2,
            "key" : "",
            
            "AGC" : {
                "end" : false,
                "func" : ["null"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "",
            
                "STATe" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 4,
                    "key" : "EnableIFAGC",
                    "paramType" : ["double","char"],
                    "inputType" : "uint8_t",
                    "outputType" : "String"
                }
            }

        },

        "DDC" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "",

            "STATe" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "DCCancelerMode",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            }
        },

        "WINDow" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "",

            "TRACe" : {
                "end" : false,
                "func" : ["null"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "",

                "Y":{
                    "end" : false,
                    "func" : ["null"],
                    "power" : ["Normal"],
                    "minSize" : 1,
                    "key" : "",

                    "RLEVel" : {
                        "end" : true,
                        "func" : ["query","set"],
                        "power" : ["Normal"],
                        "minSize" : 4,
                        "key" : "RefLevel_dBm",
                        "paramType" : ["dBm","double"],
                        "inputType" : "double",
                        "outputType" : "Scientific"
                    }
                }
            }
        }
    },

    "INPut" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 3,
        "key" : "",
        
        "ATTenuation" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["FindPlus"],
            "minSize" : 3,
            "key" : "Atten",
            "paramType" : ["double"],
            "inputType" : "int8_t",
            "outputType" : "Int"
        }
    },

    "CORRection" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",
        
        "IQ" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 2,
            "key" : "",

            "QDC" : {
                "end" : false,
                "func" : ["null"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "",
    
                "MODE" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 4,
                    "key" : "QDCMode",
                    "paramType" : ["double","char"],
                    "inputType" : "int32_t",
                    "outputType" : "String"
                },

                "IGain" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 2,
                    "key" : "QDCIGain",
                    "paramType" : ["double"],
                    "inputType" : "float",
                    "outputType" : "Int"
                },

                "QGain" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 2,
                    "key" : "QDCQGain",
                    "paramType" : ["double"],
                    "inputType" : "float",
                    "outputType" : "Int"
                },

                "PComp" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 2,
                    "key" : "QDCPhaseComp",
                    "paramType" : ["double"],
                    "inputType" : "float",
                    "outputType" : "Int"
                }
                
            }
        }
    },

    "DCANCeler" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "I" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 1,
            "key" : "",

            "DCBias" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "DCCIOffset",
                "paramType" : ["double"],
                "inputType" : "int8_t",
                "outputType" : "Int"
            }
        },

        "Q" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 1,
            "key" : "",

            "DCBias" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 1,
                "key" : "DCCQOffset",
                "paramType" : ["double"],
                "inputType" : "int8_t",
                "outputType" : "Int"
            }
        }

    },

    "LO" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 2,
        "key" : "",

        "STATe" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "LOOptimization",
            "paramType" : ["double","char"],
            "inputType" : "int32_t",
            "outputType" : "String"
        }
    },

    "TRIGger" : {
        "end" : false,
        "func" : ["null"],
        "power" : ["Normal"],
        "minSize" : 4,
        "key" : "",

        "SEQuence" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "",

            "SOURce" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "TriggerSource",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            },
            
            "SLOPe" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "TriggerEdge",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            },
            
            "LEVel" : {
                "end" : false,
                "func" : ["null"],
                "power" : ["Normal"],
                "minSize" : 3,

                "THReshold" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 3,
                    "key" : "TriggerLevel_dBm",
                    "paramType" : ["double"],
                    "inputType" : "double",
                    "outputType" : "Int"
                },

                "SAFETime" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 5,
                    "key" : "TriggerLevel_SafeTime",
                    "paramType" : ["double"],
                    "inputType" : "double",
                    "outputType" : "Int"
                },

                "HOLDoff" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["Normal"],
                    "minSize" : 5,
                    "key" : "TriggerDelay",
                    "paramType" : ["double"],
                    "inputType" : "double",
                    "outputType" : "Int"
                },

                "PRETime" : {
                    "end" : true,
                    "func" : ["query","set"],
                    "power" : ["FindPlus","SetPlus"],
                    "minSize" : 5,
                    "key" : "PreTriggerTime",
                    "paramType" : ["double"],
                    "inputType" : "double",
                    "outputType" : "Int"
                }

            }

        },

        "LEVel" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,

            "THReshold" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "TriggerLevel_dBm",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Int"
            },

            "SAFETime" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 5,
                "key" : "TriggerLevel_SafeTime",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Int"
            },

            "HOLDoff" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 5,
                "key" : "TriggerDelay",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Int"
            },

            "PRETime" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 5,
                "key" : "PreTriggerTime",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Int"
            }

        },

        "SOURce" : {
            "end" : true,
            "func" : ["query","set"],
            "power" : ["Normal"],
            "minSize" : 4,
            "key" : "TriggerSource",
            "paramType" : ["double","char"],
            "inputType" : "int32_t",
            "outputType" : "String"
        }, 

        "OUTPut" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "",

            "MODE" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "TriggerOutMode",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            },

            "SLOPe" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "TriggerOutPulsePolarity",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            },

            "POLarity" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "TriggerOutPulsePolarity",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            }
        },

        "TIMer" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "",

            "SYNC" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "TriggerTimerSync",
                "paramType" : ["double","char"],
                "inputType" : "int32_t",
                "outputType" : "String"
            },

            "PERiod" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 3,
                "key" : "TriggerTimer_Period",
                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Int"
            }

        },

        "RETRigger" : {
            "end" : false,
            "func" : ["null"],
            "power" : ["Normal"],
            "minSize" : 3,
            "key" : "",

            "ENABle" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "EnableReTrigger",

                "paramType" : ["double"],
                "inputType" : "uint8_t",
                "outputType" : "Int"
            },

            "PERiod" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "ReTrigger_Period",

                "paramType" : ["double"],
                "inputType" : "double",
                "outputType" : "Int"
            },

            "COUNt" : {
                "end" : true,
                "func" : ["query","set"],
                "power" : ["Normal"],
                "minSize" : 4,
                "key" : "ReTrigger_Count",

                "paramType" : ["double"],
                "inputType" : "uint16_t",
                "outputType" : "Int"
            }
        }
    },



    "parameter" : [
        ["ASC,8","TraceDataType",0,3],
        ["REAL,8","TraceDataType",1,6],
        ["REAL,32","TraceDataType",1,7],
        ["INT,8","TraceDataType",1,5],
        ["INT,16","TraceDataType",1,6],
        ["INT,32","TraceDataType",1,6],
        ["VITA,49","TraceDataType",2,4],
        ["External","RxPort",0,3],
        ["Internal","RxPort",1,3],
        ["INT,16","DataFormat",0,6],
        ["INT,32","DataFormat",1,6],
        ["INT,8","DataFormat",2,5],
        ["REAL,16","DataFormat",0,7],
        ["REAL,32","DataFormat",1,7],
        ["REAL,8","DataFormat",2,6],
        ["LOW","GainStrategy",0,3],
        ["HIGH","GainStrategy",1,4],
        ["Auto","Preamplifier",0,4],
        ["OFF","Preamplifier",1,3],
        ["Internal","ReferenceClockSource",0,3],
        ["External","ReferenceClockSource",1,3],
        ["Premium","ReferenceClockSource",2,3],
        ["Forced","ReferenceClockSource",3,3],
        ["OFF","ReferenceClockSource",0,3],
        ["ON","ReferenceClockSource",1,2],
        ["OFF","DCCancelerMode",0,3],
        ["HPFM","DCCancelerMode",1,4],
        ["MANUal","DCCancelerMode",2,4],
        ["AUTO","DCCancelerMode",3,4],
        ["FREE","TriggerSource",0,4],
        ["EXTernal","TriggerSource",1,3],
        ["BUS","TriggerSource",2,3],
        ["LEVEL","TriggerSource",3,5],
        ["TINER","TriggerSource",4,5],
        ["TXsweep","TriggerSource",5,2],
        ["BYEXT","TriggerSource",6,5],
        ["BYGNss1pps","TriggerSource",7,4],
        ["MASK","TriggerSource",8,4],
        ["GNSS1pps","TriggerSource",9,4],
        ["POSitive","TriggerEdge",0,3],
        ["NEGative","TriggerEdge",1,3],
        ["EITHer","TriggerEdge",2,4],
        ["FREE","TriggerOutMode",0,4],
        ["HOP","TriggerOutMode",1,3],
        ["SWEep","TriggerOutMode",2,3],
        ["PROFile","TriggerOutMode",3,4],
        ["POSitive","TriggerOutPulsePolarity",0,3],
        ["NEGative","TriggerOutPulsePolarity",1,3],
        ["AUTO","LOOptimization",0,4],
        ["SPEed","LOOptimization",1,3],
        ["SPUr","LOOptimization",2,3],
        ["PHASE","LOOptimization",3,5],
        ["NONE","TriggerTimerSync", 0 , 4],
        ["EXTR","TriggerTimerSync", 1 , 4],
        ["EXTF","TriggerTimerSync", 2 , 4],
        ["EXTSR","TriggerTimerSync", 3 , 5],
        ["EXTSF","TriggerTimerSync", 4 , 5],
        ["GR","TriggerTimerSync", 5 , 4],
        ["GF","TriggerTimerSync", 6 , 4],
        ["GSR","TriggerTimerSync", 7 , 4],
        ["GSF","TriggerTimerSync", 8 , 4],
        ["OFF","EnableIFAGC",0,3],
        ["ON","EnableIFAGC",1,2],
        ["OFF","QDCMode",0,3],
        ["MANUal","QDCMode",1,4],
        ["AUTO","QDCMode",2,4]
    ]
}