85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
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)"
|
|
])
|
|
})
|