add parameter table
This commit is contained in:
+221
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"name": "NeuliveSTI",
|
||||
"version": "0.1",
|
||||
"match_rule": {
|
||||
"local_name_pattern": "NeuliveSTI.*",
|
||||
"major_product_number": 1,
|
||||
"minor_product_number": 2,
|
||||
"major_version_number": 0,
|
||||
"minor_version_number": 1
|
||||
},
|
||||
"constant": {
|
||||
"SET_CH_NUM": 2,
|
||||
"FREQ_PREC_LIST": [
|
||||
1,
|
||||
0.1
|
||||
]
|
||||
},
|
||||
"parameters": {
|
||||
"SET_CH": {
|
||||
"description": "channel to set",
|
||||
"private": true,
|
||||
"domain": [
|
||||
"SET_CH_NUM"
|
||||
],
|
||||
"value": "VALUE + 1"
|
||||
},
|
||||
"RAW_CHANNEL": {
|
||||
"description": "record channels",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"SET_CH_NUM"
|
||||
]
|
||||
},
|
||||
"value": "VALUE + 1"
|
||||
},
|
||||
"CHANNEL": {
|
||||
"description": "record channels",
|
||||
"domain": "property",
|
||||
"value": "[0, *_value('RAW_CHANNEL')]"
|
||||
},
|
||||
"SAMPLE_RATE": {
|
||||
"description": "",
|
||||
"domain": "constant",
|
||||
"initial": 1
|
||||
},
|
||||
"AMP_GAIN": {
|
||||
"description": "",
|
||||
"domain": "constant",
|
||||
"initial": 1
|
||||
},
|
||||
"STI_MODE": {
|
||||
"description": "Stimulation mode",
|
||||
"domain": {
|
||||
"array": [
|
||||
4
|
||||
],
|
||||
"index": "SET_CH",
|
||||
"size": "SET_CH_NUM"
|
||||
},
|
||||
"value": [
|
||||
"Positive Pulse",
|
||||
"Negative Pulse",
|
||||
"Pos to Neg Pulse",
|
||||
"Neg to Pos Pulse"
|
||||
]
|
||||
},
|
||||
"CURRENT": {
|
||||
"description": "Stimulation current",
|
||||
"domain": [
|
||||
4001
|
||||
]
|
||||
},
|
||||
"STI_FREQ": {
|
||||
"description": "Stimulation frequency",
|
||||
"domain": {
|
||||
"array": [
|
||||
2001
|
||||
],
|
||||
"index": "SET_CH",
|
||||
"size": "SET_CH_NUM"
|
||||
},
|
||||
"value": {
|
||||
"expression": "VALUE * _value('PRECISION')",
|
||||
"dependency": "PRECISION"
|
||||
},
|
||||
"guard": {
|
||||
"expression": "_value('STI_PW_LENGTH') >= 0",
|
||||
"raise": "STI_FREQ too small"
|
||||
}
|
||||
},
|
||||
"STI_PW": {
|
||||
"description": "Stimulation pulse width",
|
||||
"domain": {
|
||||
"array": [
|
||||
1000
|
||||
],
|
||||
"index": "SET_CH",
|
||||
"size": "SET_CH_NUM"
|
||||
},
|
||||
"guard": {
|
||||
"expression": "_value('STI_PW_LENGTH') >= 0",
|
||||
"raise": "STI_PW too large"
|
||||
}
|
||||
},
|
||||
"STI_PW_IPI": {
|
||||
"description": "Stimulation Inter Phase Interval",
|
||||
"domain": {
|
||||
"array": [
|
||||
1000
|
||||
],
|
||||
"index": "SET_CH",
|
||||
"size": "SET_CH_NUM"
|
||||
},
|
||||
"guard": {
|
||||
"expression": "_value('STI_PW_LENGTH') >= 0",
|
||||
"raise": "STI_PW too small"
|
||||
}
|
||||
},
|
||||
"STI_NUM": {
|
||||
"description": "Stimulation Times",
|
||||
"domain": {
|
||||
"array": [
|
||||
1000
|
||||
],
|
||||
"index": "SET_CH",
|
||||
"size": "SET_CH_NUM"
|
||||
}
|
||||
},
|
||||
"PRECISION": {
|
||||
"alias": "PREC",
|
||||
"description": "frequency precision",
|
||||
"domain": {
|
||||
"array": [
|
||||
"len(FREQ_PREC_LIST)"
|
||||
],
|
||||
"index": "SET_CH",
|
||||
"size": "SET_CH_NUM"
|
||||
},
|
||||
"value": "FREQ_PREC_LIST[VALUE]",
|
||||
"guard": {
|
||||
"expression": "_value('STI_PW_LENGTH') >= 0",
|
||||
"raise": "STI_FREQ too small"
|
||||
}
|
||||
},
|
||||
"STI_PW_LENGTH": {
|
||||
"description": "1000000 / freq - (2 * pw + ipi)",
|
||||
"private": true,
|
||||
"domain": "property",
|
||||
"value": "1000000 / _value('STI_FREQ') - (2 * _value('STI_PW') + _value('STI_PW_IPI'))"
|
||||
}
|
||||
},
|
||||
"instruction": {
|
||||
"start": [
|
||||
{
|
||||
"expression": "len(CHANNEL) > 0",
|
||||
"raise": "no stimulation channel"
|
||||
},
|
||||
"_data_format('TDC4VC3')",
|
||||
"set_current",
|
||||
"_sleep(100)",
|
||||
"set_parameter",
|
||||
"_sleep(100)",
|
||||
"set_channel_enable",
|
||||
"_sleep(100)",
|
||||
"VIS_STI",
|
||||
"_notify(True)",
|
||||
"_sync(True)"
|
||||
],
|
||||
"set_current": {
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"5b11111#header;2b0#GV;12bCURRENT"
|
||||
]
|
||||
},
|
||||
"set_parameter": {
|
||||
"type": "RIS",
|
||||
"foreach-parameter": {
|
||||
"parameter": "RAW_CHANNEL",
|
||||
"variable": [
|
||||
"channel"
|
||||
]
|
||||
},
|
||||
"data": [
|
||||
"5b11111#header;2b01#LV",
|
||||
"3b>channel",
|
||||
"1b>PRECISION[channel]",
|
||||
"3b>STI_MODE[channel]",
|
||||
"12b>STI_FREQ[channel]",
|
||||
"10b>STI_PW[channel]",
|
||||
"10b>STI_PW_IPI[channel]",
|
||||
"10b>STI_NUM[channel]"
|
||||
]
|
||||
},
|
||||
"set_channel_enable": {
|
||||
"type": "RIS",
|
||||
"parameter": {
|
||||
"a0": "1 if 0 in RAW_CHANNEL else 0",
|
||||
"a1": "1 if 1 in RAW_CHANNEL else 0",
|
||||
"a2": "1 if 2 in RAW_CHANNEL else 0",
|
||||
"a3": "1 if 3 in RAW_CHANNEL else 0",
|
||||
"a4": "1 if 4 in RAW_CHANNEL else 0",
|
||||
"a5": "1 if 5 in RAW_CHANNEL else 0",
|
||||
"a6": "1 if 6 in RAW_CHANNEL else 0",
|
||||
"a7": "1 if 7 in RAW_CHANNEL else 0",
|
||||
"a8": "1 if 8 in RAW_CHANNEL else 0",
|
||||
"a9": "1 if 9 in RAW_CHANNEL else 0",
|
||||
"aa": "1 if 10 in RAW_CHANNEL else 0",
|
||||
"ab": "1 if 11 in RAW_CHANNEL else 0",
|
||||
"ac": "1 if 12 in RAW_CHANNEL else 0",
|
||||
"ad": "1 if 13 in RAW_CHANNEL else 0",
|
||||
"ae": "1 if 14 in RAW_CHANNEL else 0",
|
||||
"af": "1 if 15 in RAW_CHANNEL else 0"
|
||||
},
|
||||
"data": [
|
||||
"5b11111#header;2b10#CE",
|
||||
"a0;a1;a2;a3;a4;a5;a6;a7;a8;a9;aa;ab;ac;ad;ae;af"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+219
@@ -0,0 +1,219 @@
|
||||
{
|
||||
"name": "Elite",
|
||||
"version": "0.1",
|
||||
"match_rule": {
|
||||
"local_name_pattern": "Elite.*",
|
||||
"major_product_number": 0,
|
||||
"minor_product_number": 1,
|
||||
"major_version_number": 0,
|
||||
"minor_version_number": 1
|
||||
},
|
||||
"constant": {
|
||||
"REC_CHANNEL_COUNT": 16,
|
||||
"STI_CHANNEL_COUNT": 15,
|
||||
"ADC_SAMPLE_RATE_LIST": [
|
||||
15,
|
||||
25,
|
||||
40,
|
||||
50,
|
||||
100,
|
||||
250,
|
||||
500,
|
||||
1000,
|
||||
2500,
|
||||
4000,
|
||||
5000
|
||||
],
|
||||
"STI_FREQ_LIST": [
|
||||
15,
|
||||
25,
|
||||
40,
|
||||
50,
|
||||
100,
|
||||
250,
|
||||
500,
|
||||
1000,
|
||||
2500,
|
||||
4000,
|
||||
5000
|
||||
]
|
||||
},
|
||||
"parameters": {
|
||||
"MODE": {
|
||||
"description": "working mode",
|
||||
"value": [
|
||||
"Recording Mode",
|
||||
"Stimulation Mode",
|
||||
"Artifact Mode"
|
||||
]
|
||||
},
|
||||
"CHANNEL": {
|
||||
"description": "record channels",
|
||||
"record_meta": true,
|
||||
"domain": {
|
||||
"set": [
|
||||
"REC_CHANNEL_COUNT"
|
||||
]
|
||||
}
|
||||
},
|
||||
"SAMPLE_RATE": {
|
||||
"alias": "ADC_RATE",
|
||||
"description": "sampling rate",
|
||||
"record_meta": true,
|
||||
"domain": [
|
||||
"len(ADC_SAMPLE_RATE_LIST)"
|
||||
],
|
||||
"value": "ADC_SAMPLE_RATE_LIST[VALUE]"
|
||||
},
|
||||
"AMP_GAIN": {
|
||||
"description": "",
|
||||
"record_meta": true,
|
||||
"value": [
|
||||
400,
|
||||
1000,
|
||||
2000
|
||||
]
|
||||
},
|
||||
"LOW_FREQ_BAND": {
|
||||
"description": "",
|
||||
"record_meta": true,
|
||||
"domain": [
|
||||
7
|
||||
]
|
||||
},
|
||||
"STI_MODE": {
|
||||
"description": "stimulation mode",
|
||||
"value": [
|
||||
"Positive Pulse",
|
||||
"Negative Pulse",
|
||||
"Pos to Neg Pulse",
|
||||
"Neg to Pos Pulse",
|
||||
"Arbitrary Waveform"
|
||||
]
|
||||
},
|
||||
"STI_VOLT": {
|
||||
"description": "stimulation voltage",
|
||||
"domain": [
|
||||
32
|
||||
],
|
||||
"value": "2 + 3 * VALUE / 31"
|
||||
},
|
||||
"STI_FREQ": {
|
||||
"description": "stimulation frequency",
|
||||
"domain": [
|
||||
"len(STI_FREQ_LIST)"
|
||||
],
|
||||
"value": "STI_FREQ_LIST[VALUE]"
|
||||
},
|
||||
"STI_PMOS": {
|
||||
"description": "stimulation PMOS channel",
|
||||
"domain": [
|
||||
"STI_CHANNEL_COUNT"
|
||||
],
|
||||
"guard": "STI_PMOS != STI_NMOS"
|
||||
},
|
||||
"STI_NMOS": {
|
||||
"description": "stimulation NMOS channel",
|
||||
"domain": [
|
||||
"STI_CHANNEL_COUNT"
|
||||
],
|
||||
"guard": "STI_PMOS != STI_NMOS"
|
||||
},
|
||||
"CHOPPER": {
|
||||
"description": "",
|
||||
"domain": "bool"
|
||||
},
|
||||
"FAST_SETTLE": {
|
||||
"description": "",
|
||||
"domain": "bool"
|
||||
}
|
||||
},
|
||||
"instruction": {
|
||||
"start": [
|
||||
{
|
||||
"expression": "MODE",
|
||||
"when": {
|
||||
"0": "start_recording",
|
||||
"1": "start_stimulation",
|
||||
"2": "start_artifact"
|
||||
}
|
||||
},
|
||||
"VIS_STI"
|
||||
],
|
||||
"start_recording": [
|
||||
{
|
||||
"expression": "len(CHANNEL) > 0",
|
||||
"raise": "no recording channel"
|
||||
},
|
||||
"data_format",
|
||||
"_notify(True)",
|
||||
"start_recording0",
|
||||
"_sync(True)"
|
||||
],
|
||||
"start_artifact": [
|
||||
{
|
||||
"expression": "len(CHANNEL) > 0",
|
||||
"raise": "no recording channel"
|
||||
},
|
||||
"data_format",
|
||||
"_notify(True)",
|
||||
"start_artifact0",
|
||||
"_sync(True)"
|
||||
],
|
||||
"data_format": [
|
||||
"_data_format('TDC4VAF2')"
|
||||
],
|
||||
"start_recording0": {
|
||||
"type": "RIS",
|
||||
"foreach-parameter": {
|
||||
"parameter": "CHANNEL",
|
||||
"variable": [
|
||||
"a",
|
||||
"b",
|
||||
"c",
|
||||
"d"
|
||||
]
|
||||
},
|
||||
"data": [
|
||||
"3b110#recording header;2b<AMP_GAIN;3b<LOW_FREQ_BAND",
|
||||
"4b>SAMPLE_RATE;1ba?;1bb?;1bc?;1bd?",
|
||||
"4b<a?:0;4b<b?:0",
|
||||
"4b<c?:0;4b<d?:0"
|
||||
]
|
||||
},
|
||||
"start_artifact0": {
|
||||
"type": "RIS",
|
||||
"foreach-parameter": {
|
||||
"parameter": "CHANNEL",
|
||||
"variable": [
|
||||
"a",
|
||||
"b",
|
||||
"c",
|
||||
"d"
|
||||
]
|
||||
},
|
||||
"data": [
|
||||
"3b100#artifact mode header;2b0;3b001",
|
||||
"4b>SAMPLE_RATE;1ba?;1bb?;1bc?;1bd?",
|
||||
"4b<a?:0;4b<b?:0",
|
||||
"4b<c?:0;4b<d?:0"
|
||||
]
|
||||
},
|
||||
"start_stimulation": [
|
||||
"start_stimulation0"
|
||||
],
|
||||
"start_stimulation0": {
|
||||
"type": "RIS",
|
||||
"guard": {
|
||||
"expression": "STI_PMOS != STI_NMOS",
|
||||
"raise": "same N/PMos channel"
|
||||
},
|
||||
"data": [
|
||||
"3b111#stimulation header;2b0;3bSTI_MODE",
|
||||
"4b>STI_FREQ;1bCHOPPER;1bFAST_SETTLE;2b0",
|
||||
"4b<STI_PMOS;4b<STI_NMOS",
|
||||
"5b<STI_VOLT;3b0"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+256
@@ -0,0 +1,256 @@
|
||||
{
|
||||
"name": "Neulive",
|
||||
"version": "0.2",
|
||||
"match_rule": {
|
||||
"local_name_pattern": "Neulive.*",
|
||||
"major_product_number": 1,
|
||||
"minor_product_number": 1,
|
||||
"major_version_number": 0,
|
||||
"minor_version_number": 2
|
||||
},
|
||||
"constant": {
|
||||
"STI_CHANNEL_COUNT": 4,
|
||||
"ADC_SAMPLE_RATE_LIST": [
|
||||
15,
|
||||
25,
|
||||
40,
|
||||
50,
|
||||
100,
|
||||
250,
|
||||
400,
|
||||
500,
|
||||
1000,
|
||||
2500,
|
||||
4000,
|
||||
5000
|
||||
],
|
||||
"STI_FREQ_LIST": [
|
||||
30,
|
||||
40,
|
||||
50,
|
||||
60,
|
||||
70,
|
||||
80,
|
||||
90,
|
||||
100,
|
||||
110,
|
||||
120,
|
||||
130,
|
||||
140,
|
||||
150,
|
||||
160,
|
||||
170,
|
||||
180,
|
||||
190,
|
||||
200,
|
||||
1000,
|
||||
2000,
|
||||
3000,
|
||||
4000,
|
||||
5000,
|
||||
6000,
|
||||
7000,
|
||||
8000,
|
||||
9000,
|
||||
10000
|
||||
],
|
||||
"STI_PULSE_WIDTH": [
|
||||
40,
|
||||
90,
|
||||
140,
|
||||
190,
|
||||
240,
|
||||
290,
|
||||
340,
|
||||
390,
|
||||
440,
|
||||
490
|
||||
],
|
||||
"CHANNEL_VALUE": [
|
||||
1,
|
||||
4,
|
||||
8,
|
||||
16
|
||||
]
|
||||
},
|
||||
"parameters": {
|
||||
"CHANNEL_NUMBER": {
|
||||
"description": "record channels",
|
||||
"record_meta": true,
|
||||
"domain": [
|
||||
"len(CHANNEL_VALUE)"
|
||||
],
|
||||
"value": "CHANNEL_VALUE[VALUE]"
|
||||
},
|
||||
"CHANNEL": {
|
||||
"description": "record channels",
|
||||
"record_meta": true,
|
||||
"domain": "property",
|
||||
"value": "list(range(CHANNEL_VALUE[CHANNEL_NUMBER]))"
|
||||
},
|
||||
"SAMPLE_RATE": {
|
||||
"alias": "ADC_RATE",
|
||||
"description": "sampling rate",
|
||||
"record_meta": true,
|
||||
"domain": [
|
||||
"len(ADC_SAMPLE_RATE_LIST)"
|
||||
],
|
||||
"value": "ADC_SAMPLE_RATE_LIST[VALUE]"
|
||||
},
|
||||
"AMP_GAIN": {
|
||||
"description": "amp gain",
|
||||
"record_meta": true,
|
||||
"value": [
|
||||
2,
|
||||
5,
|
||||
10,
|
||||
200,
|
||||
500,
|
||||
1000
|
||||
]
|
||||
},
|
||||
"LOW_FREQ_BAND": {
|
||||
"description": "",
|
||||
"record_meta": true,
|
||||
"domain": [
|
||||
8
|
||||
]
|
||||
},
|
||||
"STI_BEHAVIOR": {
|
||||
"description": "how to execute stimulus",
|
||||
"value": [
|
||||
"DISABLE",
|
||||
"TRIGGER",
|
||||
"LIMITED",
|
||||
"CONTINUOUS"
|
||||
]
|
||||
},
|
||||
"STI_MODE": {
|
||||
"description": "stimulation mode",
|
||||
"value": [
|
||||
"Positive Pulse",
|
||||
"Negative Pulse",
|
||||
"Pos to Neg Pulse",
|
||||
"Neg to Pos Pulse",
|
||||
"Arbitrary Waveform"
|
||||
]
|
||||
},
|
||||
"STI_VOLT": {
|
||||
"description": "stimulation voltage",
|
||||
"type": "float",
|
||||
"domain": [
|
||||
32
|
||||
],
|
||||
"value": "2 + 3 * VALUE / 31"
|
||||
},
|
||||
"STI_TIMES": {
|
||||
"description": "how many times will be executed",
|
||||
"domain": [
|
||||
64
|
||||
],
|
||||
"value": "1 + 4 * VALUE"
|
||||
},
|
||||
"STI_FREQ": {
|
||||
"description": "stimulation frequency",
|
||||
"domain": [
|
||||
"len(STI_FREQ_LIST)"
|
||||
],
|
||||
"value": "STI_FREQ_LIST[VALUE]"
|
||||
},
|
||||
"STI_PMOS": {
|
||||
"description": "stimulation PMOS channel",
|
||||
"domain": [
|
||||
"STI_CHANNEL_COUNT"
|
||||
],
|
||||
"guard": "STI_PMOS != STI_NMOS"
|
||||
},
|
||||
"STI_NMOS": {
|
||||
"description": "stimulation NMOS channel",
|
||||
"domain": [
|
||||
"STI_CHANNEL_COUNT"
|
||||
],
|
||||
"guard": "STI_PMOS != STI_NMOS"
|
||||
},
|
||||
"PULSE_WIDTH": {
|
||||
"description": "stimulation pulse width",
|
||||
"domain": [
|
||||
"len(STI_PULSE_WIDTH)"
|
||||
],
|
||||
"value": "STI_PULSE_WIDTH[VALUE]"
|
||||
},
|
||||
"CHOPPER": {
|
||||
"description": "",
|
||||
"domain": "bool"
|
||||
},
|
||||
"FAST_SETTLE": {
|
||||
"description": "",
|
||||
"domain": "bool"
|
||||
},
|
||||
"UMC_TEST": {
|
||||
"description": "start umc test mode",
|
||||
"domain": "action",
|
||||
"on_change": "umc_default"
|
||||
}
|
||||
},
|
||||
"instruction": {
|
||||
"start": [
|
||||
{
|
||||
"expression": "len(CHANNEL) > 0",
|
||||
"raise": "no recording channel"
|
||||
},
|
||||
"_notify(True)",
|
||||
"start_recording",
|
||||
"umc_parameter",
|
||||
"_sync(True)",
|
||||
"VIS_STI"
|
||||
],
|
||||
"data_format": [
|
||||
"_data_format('TDC4VAF2')"
|
||||
],
|
||||
"start_recording": {
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"3b101#direct header;2b0#don't care;3b>LOW_FREQ_BAND",
|
||||
"4b0#don't care;1bCHOPPER;1bFAST_SETTLE",
|
||||
"5b>STI_VOLT;4b>STI_PMOS",
|
||||
"4b>STI_NMOS;4b>SAMPLE_RATE"
|
||||
]
|
||||
},
|
||||
"umc_parameter": {
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"3b001#umc parameter header",
|
||||
"3b>AMP_GAIN;4b>PULSE_WIDTH",
|
||||
"6b>STI_TIMES;2b>STI_BEHAVIOR",
|
||||
"6b>STI_FREQ"
|
||||
]
|
||||
},
|
||||
"umc_default": [
|
||||
"_set('CHANNEL_NUMBER', 1)",
|
||||
"_set('SAMPLE_RATE', 9)",
|
||||
"_set('AMP_GAIN', 3)",
|
||||
"_set('STI_BEHAVIOR', 1)",
|
||||
"_set('STI_MODE', 0)",
|
||||
"_set('STI_NMOS', STI_PMOS + 1)",
|
||||
"_set('STI_PMOS', 0)",
|
||||
"_set('STI_NMOS', 1)",
|
||||
"_set('STI_VOLT', 0)",
|
||||
"_set('STI_FREQ', 0)",
|
||||
"_set('STI_TIMES', 0)",
|
||||
"_set('PULSE_WIDTH', 0)",
|
||||
"_set('FAST_SETTLE', 0)",
|
||||
"_set('CHOPPER', 1)",
|
||||
"data_format",
|
||||
"_notify(True)",
|
||||
"umc_default0",
|
||||
"_sync(True)",
|
||||
"VIS_STI"
|
||||
],
|
||||
"umc_default0": {
|
||||
"type": "RIS",
|
||||
"data": [
|
||||
"1B0#load umc default parameter into uni"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user