add parameter table

This commit is contained in:
Ta-Shun Su
2019-05-22 10:25:09 +08:00
parent 60dcd75bf1
commit 9bc065905c
3 changed files with 696 additions and 0 deletions
@@ -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"
]
}
}
}
@@ -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"
]
}
}
}
@@ -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"
]
}
}
}