functions = {
    'AbortGeneration':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'AdjustSampleClockRelativeDelay':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'adjustmentTime',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'AllocateNamedWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformSize',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'AllocateWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'waveformHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CheckAttributeViBoolean':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'CheckAttributeViInt32':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CheckAttributeViInt64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViInt64'
            }
        ],
        'returns':'ViStatus'
    },
    'CheckAttributeViReal64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'CheckAttributeViSession':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'CheckAttributeViString':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearArbMemory':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearArbSequence':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sequenceHandle',
                'direction':'in',
                'type':'ViInt32',
                'enum':'SequenceHandle'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearArbWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'waveformHandle',
                'direction':'in',
                'type':'ViInt32',
                'enum':'WaveformHandle'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearError':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearFreqList':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'frequencyListHandle',
                'direction':'in',
                'type':'ViInt32',
                'enum':'FrequencyListOptions'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearInterchangeWarnings':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ClearUserStandardWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'Close':{
        'cname' : 'niFgen_close',
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'Commit':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureAmplitude':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'amplitude',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureArbSequence':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'sequenceHandle',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'gain',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'offset',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureArbWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformHandle',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'gain',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'offset',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureChannels':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channels',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureClockMode':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'clockMode',
                'direction':'in',
                'type':'ViInt32',
                'enum':'ClockMode'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureCustomFIRFilterCoefficients':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'numberOfCoefficients',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'coefficientsArray',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'numberOfCoefficients'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureDigitalEdgeScriptTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'triggerId',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'source',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'edge',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureDigitalEdgeStartTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'source',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'edge',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureDigitalLevelScriptTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'triggerId',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'source',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'triggerWhen',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureFreqList':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'frequencyListHandle',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'amplitude',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'dcOffset',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'startPhase',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureFrequency':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'frequency',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureOperationMode':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'operationMode',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureOutputEnabled':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'enabled',
                'direction':'in',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureOutputImpedance':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'impedance',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureOutputMode':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'outputMode',
                'direction':'in',
                'type':'ViInt32',
                'enum':'OutputMode'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureP2PEndpointFullnessStartTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'p2pEndpointFullnessLevel',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureReferenceClock':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'referenceClockSource',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'referenceClockFrequency',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureSampleClockSource':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sampleClockSource',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureSampleRate':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sampleRate',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureSoftwareEdgeScriptTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'triggerId',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureSoftwareEdgeStartTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureStandardWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveform',
                'direction':'in',
                'type':'ViInt32',
                'enum':'Waveform'
            },
            {
                'name':'amplitude',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'dcOffset',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'frequency',
                'direction':'in',
                'type':'ViReal64'
            },
            {
                'name':'startPhase',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureSynchronization':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'synchronizationSource',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ConfigureTriggerMode':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'triggerMode',
                'direction':'in',
                'type':'ViInt32',
                'enum':'TriggerMode'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateAdvancedArbSequence':{
        'codegen_method': 'CustomCode',
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sequenceLength',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'waveformHandlesArray',
                'direction':'in',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'len',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'loopCountsArray',
                'direction':'in',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'len',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'sampleCountsArray',
                'direction':'in',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'len',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'markerLocationArray',
                'direction':'in',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'len',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'coercedMarkersArray',
                'direction':'out',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'custom-code',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'sequenceHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateArbSequence':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sequenceLength',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'waveformHandlesArray',
                'direction':'in',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'len',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'loopCountsArray',
                'direction':'in',
                'type':'ViInt32[]',
                'size':{
                    'mechanism':'len',
                    'value':'sequenceLength'
                }
            },
            {
                'name':'sequenceHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateFreqList':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'waveform',
                'direction':'in',
                'type':'ViInt32',
                'enum':'Waveform'
            },
            {
                'name':'frequencyListLength',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'frequencyArray',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'frequencyListLength'
                }
            },
            {
                'name':'durationArray',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'frequencyListLength'
                }
            },
            {
                'name':'frequencyListHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateWaveformComplexF64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'numberOfSamples',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'waveformDataArray',
                'direction':'in',
                'type': 'struct NIComplexNumber_struct[]',
                'grpc_type': 'repeated NIComplexNumber',
                'size': {
                    'mechanism': 'len',
                    'value': 'numberOfSamples'
                }
            },
            {
                'name':'waveformHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateWaveformF64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'waveformDataArray',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'waveformSize'
                }
            },
            {
                'name':'waveformHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateWaveformFromFileF64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'fileName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'byteOrder',
                'direction':'in',
                'type':'ViInt32',
                'enum':'ByteOrder'
            },
            {
                'name':'waveformHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateWaveformFromFileHWS':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'fileName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'useRateFromWaveform',
                'direction':'in',
                'type':'ViBoolean'
            },
            {
                'name':'useGainAndOffsetFromWaveform',
                'direction':'in',
                'type':'ViBoolean'
            },
            {
                'name':'waveformHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'CreateWaveformI16': {
        'parameters': [
            {
                'direction': 'in',
                'name': 'vi',
                'type': 'ViSession'
            },
            {
                'direction': 'in',
                'name': 'channelName',
                'type': 'ViConstString'
            },
            {
                'direction': 'in',
                'name': 'waveformSize',
                'type': 'ViInt32'
            },
            {
                'direction': 'in',
                'name': 'waveformDataArray',
                'size': {
                    'mechanism': 'len',
                    'value': 'waveformSize'
                },
                'type': 'ViInt16[]',
                'use_array': True
            },
            {
                'direction': 'out',
                'name': 'waveformHandle',
                'type': 'ViInt32'
            }
        ],
        'returns': 'ViStatus'
    },
    'CreateWaveformFromFileI16':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'fileName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'byteOrder',
                'direction':'in',
                'type':'ViInt32',
                'enum':'ByteOrder'
            },
            {
                'name':'waveformHandle',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'DefineUserStandardWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'waveformDataArray',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'waveformSize'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'DeleteNamedWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'DeleteScript':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'scriptName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'Disable':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'DisableAnalogFilter':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'DisableDigitalFilter':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'DisableDigitalPatterning':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'DisableScriptTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'triggerId',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'DisableStartTrigger':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'EnableAnalogFilter':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'filterCorrectionFrequency',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'EnableDigitalFilter':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'EnableDigitalPatterning':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'ErrorHandler':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'errorCode',
                'direction':'in',
                'type':'ViStatus'
            },
            {
                'name':'errorMessage',
                'direction':'out',
                'type':'ViChar[]',
                'size':{
                    'mechanism':'fixed',
                    'value':256
                }
            }
        ],
        'returns':'ViStatus'
     },
    'ErrorMessage':{
        'cname' : 'niFgen_error_message',
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'errorCode',
                'direction':'in',
                'type':'ViStatus'
            },
            {
                'name':'errorMessage',
                'direction':'out',
                'type':'ViChar[]',
                'size':{
                    'mechanism':'fixed',
                    'value':256
                }
            }
        ],
        'returns':'ViStatus'
    },
    'ErrorQuery': {
        'cname' : 'niFgen_error_query',
        'parameters': [
            {
                'direction': 'in',
                'name': 'vi',
                'type': 'ViSession'
            },
            {
                'direction': 'out',
                'name': 'errorCode',
                'type': 'ViInt32'
            },
            {
                'direction': 'out',
                'name': 'errorMessage',
                'size': {
                    'mechanism': 'fixed',
                    'value': 256
                },
                'type': 'ViChar[]'
            }
        ],
        'returns': 'ViStatus'
    },
    'ExportAttributeConfigurationBuffer':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sizeInBytes',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'configuration',
                'direction':'out',
                'type':'ViAddr[]',
                'size':{
                    'mechanism':'ivi-dance',
                    'value':'sizeInBytes'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'ExportAttributeConfigurationFile':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'filePath',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'ExportSignal':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'signal',
                'direction':'in',
                'enum':'Signal',
                'type':'ViInt32'
            },
            {
                'name':'signalIdentifier',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'outputTerminal',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'GetAttributeViBoolean':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'out',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'GetAttributeViInt32':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'GetAttributeViInt64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'out',
                'type':'ViInt64'
            }
        ],
        'returns':'ViStatus'
    },
    'GetAttributeViReal64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'out',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'GetAttributeViSession':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'out',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'GetAttributeViString':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'arraySize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'attributeValue',
                'direction':'out',
                'type':'ViChar[]',
                'size':{
                    'mechanism':'ivi-dance',
                    'value':'arraySize'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'GetChannelName':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'index',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'bufferSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'channelString',
                'direction':'out',
                'type':'ViChar[]',
                'size':{
                    'mechanism':'ivi-dance',
                    'value':'bufferSize'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'GetError':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'errorCode',
                'direction':'out',
                'type':'ViStatus'
            },
            {
                'name':'errorDescriptionBufferSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'errorDescription',
                'direction':'out',
                'type':'ViChar[]',
                'size':{
                    'mechanism':'ivi-dance',
                    'value':'errorDescriptionBufferSize'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'GetExtCalLastDateAndTime':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'year',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'month',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'day',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'hour',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'minute',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'GetExtCalLastTemp':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'temperature',
                'direction':'out',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'GetExtCalRecommendedInterval':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'months',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'GetFIRFilterCoefficients':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'arraySize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'coefficientsArray',
                'direction':'out',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'ivi-dance-with-a-twist',
                    'value':'arraySize',
                    'value_twist':'numberOfCoefficientsRead',
                }
            },
            {
                'name':'numberOfCoefficientsRead',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'GetHardwareState':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'state',
                'direction':'out',
                'type':'ViInt32',
                'enum':'HardwareState'
            }
        ],
        'returns':'ViStatus'
    },
    'GetNextCoercionRecord':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'bufferSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'coercionRecord',
                'direction':'out',
                'type':'ViChar[]',
                'size': {
                    'mechanism': 'ivi-dance',
                    'value': 'bufferSize'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'GetNextInterchangeWarning':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'bufferSize',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'interchangeWarning',
                'direction':'out',
                'type':'ViChar[]',
                'size': {
                    'mechanism': 'ivi-dance',
                    'value': 'bufferSize'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'GetSelfCalLastDateAndTime':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'year',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'month',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'day',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'hour',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'minute',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'GetSelfCalLastTemp':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'temperature',
                'direction':'out',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'GetSelfCalSupported':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'selfCalSupported',
                'direction':'out',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'GetStreamEndpointHandle':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'streamEndpoint',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'readerHandle',
                'direction':'out',
                'type':'ViUInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'ImportAttributeConfigurationBuffer':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'sizeInBytes',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'configuration',
                'direction':'in',
                'type':'ViAddr[]',
                'size':{
                    'mechanism':'len',
                    'value':'sizeInBytes'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'ImportAttributeConfigurationFile':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'filePath',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'Init': {
        'init_method': True,
        'cname': 'niFgen_init ',
        'parameters': [
            {
                'direction': 'in',
                'name': 'resourceName',
                'type': 'ViRsrc'
            },
            {
                'direction': 'in',
                'name': 'idQuery',
                'type': 'ViBoolean'
            },
            {
                'direction': 'in',
                'name': 'resetDevice',
                'type': 'ViBoolean'
            },
            {
                'direction': 'out',
                'name': 'vi',
                'type': 'ViSession'
            }
        ],
        'returns': 'ViStatus',
    },
    'InitWithOptions':{
        'init_method' : True,
        'parameters':[
            {
                'name':'resourceName',
                'direction':'in',
                'type':'ViRsrc'
            },
            {
                'name':'idQuery',
                'direction':'in',
                'type':'ViBoolean'
            },
            {
                'name':'resetDevice',
                'direction':'in',
                'type':'ViBoolean'
            },
            {
                'name':'optionString',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'vi',
                'direction':'out',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'InitializeWithChannels':{
        'init_method' : True,    
        'parameters':[
            {
                'name':'resourceName',
                'direction':'in',
                'type':'ViRsrc'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'resetDevice',
                'direction':'in',
                'type':'ViBoolean'
            },
            {
                'name':'optionString',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'vi',
                'direction':'out',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'InitiateGeneration':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'InvalidateAllAttributes':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'IsDone':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'done',
                'direction':'out',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'LockSession':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'callerHasLock',
                'direction':'out',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'ManualEnableP2PStream':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'endpointName',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'QueryArbSeqCapabilities':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'maximumNumberOfSequences',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'minimumSequenceLength',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'maximumSequenceLength',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'maximumLoopCount',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'QueryArbWfmCapabilities':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'maximumNumberOfWaveforms',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'waveformQuantum',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'minimumWaveformSize',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'maximumWaveformSize',
                'direction':'out',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'QueryFreqListCapabilities':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'maximumNumberOfFreqLists',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'minimumFrequencyListLength',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'maximumFrequencyListLength',
                'direction':'out',
                'type':'ViInt32'
            },
            {
                'name':'minimumFrequencyListDuration',
                'direction':'out',
                'type':'ViReal64'
            },
            {
                'name':'maximumFrequencyListDuration',
                'direction':'out',
                'type':'ViReal64'
            },
            {
                'name':'frequencyListDurationQuantum',
                'direction':'out',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'ReadCurrentTemperature':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'temperature',
                'direction':'out',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'Reset':{
        'cname' : 'niFgen_reset',
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ResetAttribute':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            }
        ],
        'returns':'ViStatus'
    },
    'ResetDevice':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ResetInterchangeCheck':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'ResetWithDefaults':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'RevisionQuery': {
        'cname' : 'niFgen_revision_query',
        'parameters': [
            {
                'direction': 'in',
                'name': 'vi',
                'type': 'ViSession'
            },
            {
                'direction': 'out',
                'name': 'instrumentDriverRevision',
                'size': {
                    'mechanism': 'fixed',
                    'value': 256
                },
                'type': 'ViChar[]'
            },
            {
                'direction': 'out',
                'name': 'firmwareRevision',
                'size': {
                    'mechanism': 'fixed',
                    'value': 256
                },
                'type': 'ViChar[]'
            }
        ],
        'returns': 'ViStatus'
    },
    'RouteSignalOut':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'routeSignalFrom',
                'direction':'in',
                'type':'ViInt32',
                'enum':'RouteSignalFrom'
            },
            {
                'name':'routeSignalTo',
                'direction':'in',
                'type':'ViInt32',
                'enum':'RouteSignalTo'
            }
        ],
        'returns':'ViStatus'
    },
    'SelfCal':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'SelfTest':{
        'cname' : 'niFgen_self_test',
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'selfTestResult',
                'direction':'out',
                'type':'ViInt16'
            },
            {
                'name':'selfTestMessage',
                'direction':'out',
                'type':'ViChar[]',
                'size':{
                    'mechanism':'fixed',
                    'value':256
                }
            }
        ],
        'returns':'ViStatus'
    },
    'SendSoftwareEdgeTrigger': {
        'parameters': [
            {
                'direction': 'in',
                'name': 'vi',
                'type': 'ViSession'
            },
            {
                'direction': 'in',
                'enum': 'Trigger',
                'name': 'trigger',
                'type': 'ViInt32',
            },
            {
                'direction': 'in',
                'name': 'triggerId',
                'type': 'ViString'
            }
        ],
        'returns': 'ViStatus'
    },
    'SetAttributeViBoolean':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'SetAttributeViInt32':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'SetAttributeViInt64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViInt64'
            }
        ],
        'returns':'ViStatus'
    },
    'SetAttributeViReal64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViReal64'
            }
        ],
        'returns':'ViStatus'
    },
    'SetAttributeViSession':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViSession'
            }
        ],
        'returns':'ViStatus'
    },
    'SetAttributeViString':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'attributeId',
                'direction':'in',
                'type':'ViAttr'
            },
            {
                'name':'attributeValue',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'SetNamedWaveformNextWritePosition':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'relativeTo',
                'direction':'in',
                'type':'ViInt32',
                'enum':'RelativeTo'
            },
            {
                'name':'offset',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'SetWaveformNextWritePosition':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformHandle',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'relativeTo',
                'direction':'in',
                'type':'ViInt32',
                'enum':'RelativeTo'
            },
            {
                'name':'offset',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'UnlockSession':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'callerHasLock',
                'direction':'out',
                'type':'ViBoolean'
            }
        ],
        'returns':'ViStatus'
    },
    'WaitUntilDone':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'maxTime',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'WriteBinary16Waveform': {
        'parameters': [
            {
                'direction': 'in',
                'name': 'vi',
                'type': 'ViSession'
            },
            {
                'direction': 'in',
                'name': 'channelName',
                'type': 'ViConstString'
            },
            {
                'direction': 'in',
                'name': 'waveformHandle',
                'type': 'ViInt32'
            },
            {
                'direction': 'in',
                'name': 'size',
                'type': 'ViInt32'
            },
            {
                'direction': 'in',
                'name': 'data',
                'size': {
                    'mechanism': 'len',
                    'value': 'size'
                },
                'type': 'ViInt16[]',
                'use_array': True
            }
        ],
        'returns': 'ViStatus'
    },
    'WriteComplexBinary16Waveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformHandle',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'size',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'data',
                'direction':'in',
                'type':'struct NIComplexI16_struct[]',
                'grpc_type':'repeated NIComplexInt32',
                'size':{
                    'mechanism':'len',
                    'value':'size'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'WriteNamedWaveformF64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'size',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'data',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'size'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'WriteNamedWaveformI16': {
        'parameters': [
            {
                'direction': 'in',
                'name': 'vi',
                'type': 'ViSession'
            },
            {
                'direction': 'in',
                'name': 'channelName',
                'type': 'ViConstString'
            },
            {
                'direction': 'in',
                'name': 'waveformName',
                'type': 'ViConstString'
            },
            {
                'direction': 'in',
                'name': 'size',
                'type': 'ViInt32'
            },
            {
                'direction': 'in',
                'name': 'data',
                'size': {
                    'mechanism': 'len',
                    'value': 'size'
                },
                'type': 'ViInt16[]',
                'use_array': True
            }
        ],
        'returns': 'ViStatus'
    },
    'WriteP2PEndpointI16':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'endpointName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'numberOfSamples',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'endpointData',
                'direction':'in',
                'type':'ViInt16[]',
                'size': {
                    'mechanism': 'len',
                    'value': 'numberOfSamples'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'WriteScript':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'script',
                'direction':'in',
                'type':'ViConstString'
            }
        ],
        'returns':'ViStatus'
    },
    'WriteWaveform':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformHandle',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'size',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'data',
                'direction':'in',
                'type':'ViReal64[]',
                'size':{
                    'mechanism':'len',
                    'value':'size'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'WriteWaveformComplexF64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'numberOfSamples',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'data',
                'direction':'in',
                'type':'struct NIComplexNumber_struct[]',
                'grpc_type':'repeated NIComplexNumber',
                'size':{
                    'mechanism':'len',
                    'value':'numberOfSamples'
                }
            },
            {
                'name':'waveformHandle',
                'direction':'in',
                'type':'ViInt32'
            }
        ],
        'returns':'ViStatus'
    },
    'WriteNamedWaveformComplexF64':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'size',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'data',
                'direction':'in',
                'type':'struct NIComplexNumber_struct[]',
                'grpc_type':'repeated NIComplexNumber',
                'size':{
                    'mechanism':'len',
                    'value':'size'
                }
            }
        ],
        'returns':'ViStatus'
    },
    'WriteNamedWaveformComplexI16':{
        'parameters':[
            {
                'name':'vi',
                'direction':'in',
                'type':'ViSession'
            },
            {
                'name':'channelName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'waveformName',
                'direction':'in',
                'type':'ViConstString'
            },
            {
                'name':'size',
                'direction':'in',
                'type':'ViInt32'
            },
            {
                'name':'data',
                'direction':'in',
                'type':'struct NIComplexI16_struct[]',
                'grpc_type':'repeated NIComplexInt32',
                'size':{
                    'mechanism':'len',
                    'value':'size'
                }
            }
        ],
        'returns':'ViStatus'
    }
}