from .library import * DEVLIB_GENERATOR_NAME = 'GENERATOR' REC_CHANNEL_COUNT = 16 MODE_LIST = [ "zero", "sin", "ramp" ] ADC_SAMPLE_RATE_LIST = [ 100, 500, 1000, 2500, 4000, 5000 ] AMP_GAIN_LIST = [ 0.5, 1, 10, 100, 1000 ] NOISE_LIST = [ 0, 0.1, 0.5, 1.0 ] DEVLIB_GENERATOR = DeviceLibrary(DEVLIB_GENERATOR_NAME, DeviceLibraryVersion(0, 6)) DEVLIB_GENERATOR._file = '' _constant = ConstantScope({ 'REC_CHANNEL_COUNT': REC_CHANNEL_COUNT, 'ADC_SAMPLE_RATE_LIST': ADC_SAMPLE_RATE_LIST }) DEVLIB_GENERATOR._constant = _constant DEVLIB_GENERATOR._para = ParameterTable({ 'MODE': ParameterInfo('MODE', ParameterConstantRangeDomain(0, 3), initial=1, value=ArrayExpression(MODE_LIST), description='working mode', record_meta=True), 'CHANNEL': ParameterInfo('CHANNEL', ParameterSetDomain(ParameterConstantRangeDomain(0, REC_CHANNEL_COUNT)), initial=[0], description='record channels', record_meta=True), 'SAMPLE_RATE': ParameterInfo('SAMPLE_RATE', ParameterConstantRangeDomain(0, len(ADC_SAMPLE_RATE_LIST)), value=Expression.parse('ADC_SAMPLE_RATE_LIST[VALUE]'), description='sampling rate', alias=['ADC_RATE'], record_meta=True), 'AMP_GAIN': ParameterInfo('AMP_GAIN', ParameterConstantRangeDomain(0, len(AMP_GAIN_LIST)), initial=1, value=ArrayExpression(AMP_GAIN_LIST), description='amp gain', record_meta=True), 'NOISE': ParameterInfo('NOISE', ParameterConstantRangeDomain(0, len(NOISE_LIST)), description='signal noise factor', record_meta=True), }) DEVLIB_GENERATOR._inst = InstructionTable({ 'start': ListInstruction('start', [ GuardExpression('len(CHANNEL) > 0', 'no recording channel'), "_data_format('TDC4VAF2')", "_sync(True)" ]) })