From a6b523404b77a63ecaf0c672ff4ca16cf5f889aa Mon Sep 17 00:00:00 2001 From: Roy Date: Tue, 5 Jul 2022 18:20:32 +0800 Subject: [PATCH] [update] update elite device library --- .../res/devlib/json/ELITE_BAT_1_0.devlib.json | 1676 +++++++++++++++++ ....devlib.json => ELITE_EDC_1_4.devlib.json} | 2 +- ....devlib.json => ELITE_EDC_1_5.devlib.json} | 2 +- .../devlib/json/ELITE_EDC_1_5_R2.devlib.json | 1676 +++++++++++++++++ .../devlib/json/ELITE_EDC_1_5_RE.devlib.json | 1676 +++++++++++++++++ ....devlib.json => ELITE_EIS_1_0.devlib.json} | 2 +- .../res/devlib/json/ELITE_EIS_1_1.devlib.json | 459 +++++ ...lib.json => ELITE_MEGAFLY_0_1.devlib.json} | 6 +- ...devlib.json => ELITE_TRIG_0_1.devlib.json} | 2 +- python/res/devlib/json/elite.devlib.json | 221 --- .../res/devlib/json/elite_legacy.devlib.json | 220 --- python/res/devlib/json/elite_zm.devlib.json | 343 ---- .../json/elite_zm_LargeCurrent.devlib.json | 320 ---- .../json/elite_zm_SmallCurrent.devlib.json | 320 ---- 14 files changed, 5494 insertions(+), 1431 deletions(-) create mode 100644 python/res/devlib/json/ELITE_BAT_1_0.devlib.json rename python/res/devlib/json/{elite_zm_02mv.devlib.json => ELITE_EDC_1_4.devlib.json} (99%) rename python/res/devlib/json/{elite_zm_15.devlib.json => ELITE_EDC_1_5.devlib.json} (99%) create mode 100644 python/res/devlib/json/ELITE_EDC_1_5_R2.devlib.json create mode 100644 python/res/devlib/json/ELITE_EDC_1_5_RE.devlib.json rename python/res/devlib/json/{elite_eis.devlib.json => ELITE_EIS_1_0.devlib.json} (99%) create mode 100644 python/res/devlib/json/ELITE_EIS_1_1.devlib.json rename python/res/devlib/json/{elite_zm_pulsefly.devlib.json => ELITE_MEGAFLY_0_1.devlib.json} (99%) rename python/res/devlib/json/{elite_trigger.devlib.json => ELITE_TRIG_0_1.devlib.json} (99%) delete mode 100644 python/res/devlib/json/elite.devlib.json delete mode 100644 python/res/devlib/json/elite_legacy.devlib.json delete mode 100644 python/res/devlib/json/elite_zm.devlib.json delete mode 100644 python/res/devlib/json/elite_zm_LargeCurrent.devlib.json delete mode 100644 python/res/devlib/json/elite_zm_SmallCurrent.devlib.json diff --git a/python/res/devlib/json/ELITE_BAT_1_0.devlib.json b/python/res/devlib/json/ELITE_BAT_1_0.devlib.json new file mode 100644 index 0000000..bc42c2d --- /dev/null +++ b/python/res/devlib/json/ELITE_BAT_1_0.devlib.json @@ -0,0 +1,1676 @@ +{ + "name": "Elite_EDC2", + "version": "1.2.30", + "match_rule": { + "local_name_pattern": "Elite.*", + "major_product_number": 0, + "minor_product_number": 3, + "major_version_number": 1, + "minor_version_number": 0 + }, + "constant": { + "TIME_MAX": 100000, + "VOLT_MAX": 65536, + "Const_Current_Range": 1500001, + "BLE_WRITE_MAX": 255 + }, + "parameters": { + "DPV_e_init": { + "description": "DPV initial voltage ", + "record_meta": true, + "initial": 20000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_final": { + "description": "DPV final voltage", + "record_meta": true, + "initial": 30000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_1": { + "description": "DPV voltage return 1", + "record_meta": true, + "initial": 35000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_2": { + "description": "DPV voltage return 2", + "record_meta": true, + "initial": 15000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_amp": { + "description": "DPV pulse amplitude", + "record_meta": true, + "initial": 25125, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_pul_width": { + "description": "DPV pulse width", + "record_meta": true, + "initial": 50, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_increment": { + "description": "DPV increment", + "record_meta": true, + "initial": 25025, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_step_time": { + "description": "DPV step time = time of one period", + "record_meta": true, + "initial": 500, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_notify_rate": { + "description": "DPV sample rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_curr_rec": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": [ + 25, + 100 + ], + "domain": { + "list": [ + 101 + ] + }, + "value": "VALUE" + }, + "DPV_curr_rec_min": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": 25, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_curr_rec_max": { + "description": "DPV current recording period end", + "record_meta": true, + "initial": 100, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_pulse_option": { + "description": "Invert of pulse option", + "record_meta": true, + "domain": "bool", + "initial": false + }, + "DPV_mode": { + "description": "AUTO: 0 / ADVANCED: 1/ ENGINEERING: 2", + "record_meta": true, + "initial": 0, + "value": [ + 0, + 1, + 2 + ] + }, + "DPV_engineering_enable": { + "description": "Engineering mode switch", + "record_meta": true, + "domain": "bool", + "initial": false + }, + "V_initial": { + "description": "Pulse Mode Segment Voltage", + "record_meta": true, + "initial": [ + 50000, + 25000, + 25000, + 25000 + ], + "domain": { + "list": [ + 50001 + ] + }, + "value": "VALUE" + }, + "V_initial_0": { + "description": "Pulse Mode Segment Voltage 0", + "record_meta": true, + "initial": 50000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_1": { + "description": "Pulse Mode Segment Voltage 1", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_2": { + "description": "Pulse Mode Segment Voltage 2", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_3": { + "description": "Pulse Mode Segment Voltage 3", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse": { + "description": "Pulse Mode Segment Duration", + "record_meta": true, + "initial": [ + 750, + 9250, + 1000, + 1000 + ], + "domain": { + "list": [ + 1000001 + ] + }, + "value": "VALUE" + }, + "t_pulse_0": { + "description": "Pulse Mode Segment Duration 0", + "record_meta": true, + "initial": 750, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_1": { + "description": "Pulse Mode Segment Duration 1", + "record_meta": true, + "initial": 9250, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_2": { + "description": "Pulse Mode Segment Duration 2", + "record_meta": true, + "initial": 1000, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_3": { + "description": "Pulse Mode Segment Duration 3", + "record_meta": true, + "initial": 1000, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC": { + "description": "Pulse Mode Current Recording Period", + "record_meta": true, + "initial": [ + [ + 35, + 90 + ], + [ + 35, + 99 + ], + [ + 35, + 95 + ], + [ + 35, + 95 + ] + ], + "domain": { + "list": { + "list": [ + 100 + ] + } + }, + "value": "VALUE" + }, + "CURR_REC_START_0": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_1": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_2": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_3": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_0": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 90, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_1": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 99, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_2": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 95, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_3": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 95, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order": { + "description": "Pulse Mode Segment Order", + "record_meta": true, + "initial": [ + 0, + 1, + -1, + -1 + ], + "domain": { + "list": [ + -1, + 6 + ] + }, + "value": "VALUE" + }, + "segment_order": { + "description": "Pulse Mode Segment Order", + "record_meta": true, + "initial": [ + 0, + 1, + -1, + -1 + ], + "domain": { + "list": [ + -1, + 6 + ] + }, + "value": "VALUE" + }, + "segment_ui_order_0": { + "description": "Pulse Mode Segment UI Order 0, value: segment ID + 1", + "record_meta": true, + "initial": 1, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_1": { + "description": "Pulse Mode Segment UI Order 1, value: segment ID + 1", + "record_meta": true, + "initial": 2, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_2": { + "description": "Pulse Mode Segment UI Order 2, value: segment ID + 1", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_3": { + "description": "Pulse Mode Segment UI Order 3, value: segment ID + 1", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_0": { + "description": "Pulse Mode Segment Order for ID 0, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 1, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_1": { + "description": "Pulse Mode Segment Order for ID 1, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 2, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_2": { + "description": "Pulse Mode Segment Order for ID 2, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_3": { + "description": "Pulse Mode Segment Order for ID 3, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "DATA_OUTPUT": { + "description": "Pulse Mode Data Output", + "initial": 0, + "value": [ + "Average", + "Raw Data" + ] + }, + "CHANNEL": { + "description": "record channels", + "record_meta": true, + "domain": "property", + "value": "[0, 1, 2]" + }, + "CHANNEL_LABEL": { + "description": "channel label", + "record_meta": true, + "domain": "property", + "value": "['current', 'voltage', 'impedance']" + }, + "SAMPLE_RATE": { + "description": "data sampling rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_sample_rate" + }, + "AMP_GAIN": { + "description": "amp gain", + "record_meta": true, + "domain": "constant", + "value": 1 + }, + "MODE": { + "description": "working mode", + "record_meta": true, + "value": [ + "I-V Curve", + "Cycle I-V", + "Function Generator", + "R-T Graph", + "V-T Graph", + "I-T Graph", + "Constant Current", + "Cyclic Voltammetry", + "Linear Sweep Voltammetry", + "Chronoamperometric", + "Cali DAC - test", + "Cali ADC - test", + "Dev Mode", + "Open Circuit Potential", + "Pulse Sensing", + "Differential Pulse Voltammetry (DPV)", + "Chronopotentiometry" + ] + }, + "VOLT_ORIGIN": { + "description": "Origin Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_FINAL": { + "description": "The last Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": " VALUE" + } + }, + "VOLT_STEP": { + "description": "Voltage Step", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + } + }, + "STEP_TIME": { + "description": "How much time between two step", + "record_meta": true, + "initial": 1, + "value": [ + 0.5, + 1.0, + 2.0 + ] + }, + "CYCLE_NUMBER": { + "description": "CV cycle number", + "record_meta": true, + "initial": 1, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + } + }, + "CALI_VOLT": { + "description": "CALI output Voltage", + "record_meta": true, + "initial": 25000, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_para_DAC_VOLT" + }, + "DAC_VOLT": { + "description": "DAC output Voltage", + "record_meta": true, + "initial": 25000, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_para_DAC_VOLT" + }, + "ADC_VALUE_I": { + "description": "ADC value current value", + "domain": "int" + }, + "Const_Current_value": { + "description": "Constant Current value Setting", + "initial": 0, + "domain": [ + "Const_Current_Range" + ], + "value": { + "expression": "VALUE" + } + }, + "Charge": { + "description": "Charge battery or not", + "initial": 1, + "value": [ + "Charge", + "Discharge" + ] + }, + "VOLT_INITIAL": { + "description": "Initial Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_EFINAL": { + "description": "Final Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 27500, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 22500, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "Scan_Rate": { + "description": "Voltage Scan Rate", + "record_meta": true, + "initial": 10000, + "domain": [ + 100001 + ], + "value": { + "expression": "VALUE" + } + }, + "CURRNET_LIMIT_VALUE": { + "description": "Current value Setting", + "initial": 1500000, + "domain": [ + "Const_Current_Range" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLTSTOP_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 50000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLTSTOP_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 0, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_VSCAN": { + "description": "Voltage of VScan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "CC_CP_SPEED": { + "description": "charge speed for CC and CP mode", + "initial": 1, + "value": [ + "low", + "normal", + "high" + ] + }, + "ADC_LEVEL_I_15": { + "description": "ADC level", + "record_meta": true, + "initial": 4, + "value": [ + "0", + "1", + "2", + "3", + "auto" + ], + "on_change": "set_adc_gain_I" + }, + "ADC_LEVEL_V_IN_15": { + "description": "ADC level", + "record_meta": true, + "initial": 3, + "value": [ + "0", + "1", + "2", + "auto" + ], + "on_change": "set_adc_gain_Vin" + }, + "DAC_LEVEL_V_OUT_15": { + "description": "DAC level", + "record_meta": true, + "initial": 2, + "value": [ + "0", + "1", + "auto" + ], + "on_change": "set_dac_gain_Vout" + }, + "CTRL_HIGH_Z_15": { + "description": "ctrl highZ level", + "record_meta": true, + "initial": 1, + "value": [ + "On", + "Off" + ], + "on_change": "set_ctrl_highZ" + }, + "ADC_DAC_CHANNEL_15": { + "description": "read ADC data", + "initial": 0, + "value": [ + "Iin", + "Vin" + ] + }, + "BLE_WRITE": { + "description": "send msg to elite", + "domain": { + "list": [ + "BLE_WRITE_MAX" + ] + }, + "initial": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]", + "value": "VALUE" + }, + "BLE_READ": { + "description": "receive msg from elite", + "domain": "int" + }, + "TIME_UNIT": { + "description": "Duration unit", + "initial": 2, + "value": [ + "h", + "m", + "s", + "ms" + ] + }, + "TIME_DURATION": { + "description": "Run duration", + "record_meta": true, + "initial": 0, + "domain": [ + "TIME_MAX" + ], + "value": { + "expression": "VALUE" + } + } + }, + "instruction": { + "start": [ + { + "expression": "MODE", + "when": { + "10": "cali_dac_test", + "11": "cali_adc_test", + "12": "", + "*": "start_data" + } + } + ], + "cali_dac_test": [ + "set_dac_gain_Vout", + "cali_Vout_dac", + "VIS_STI" + ], + "cali_adc_test": [ + "data_format", + "_notify(True)", + "set_adc_gain_I", + "set_adc_gain_Vin", + { + "expression": "ADC_DAC_CHANNEL_15", + "when": { + "0": "cali_Iin", + "1": "cali_Vin" + } + }, + "_sync(True)", + "VIS_STI", + "_cdr('1X;4X>ADC_VALUE_I')" + ], + "start_data": [ + "data_format", + "_notify(True)", + { + "expression": "MODE", + "when": { + "0": "set_adc_gain_I", + "1": "set_adc_gain_I", + "2": "set_adc_gain_I", + "4": "set_adc_gain_I", + "5": "set_adc_gain_I", + "6": "set_adc_gain_I", + "7": "set_adc_gain_I", + "8": "set_adc_gain_I", + "9": "set_adc_gain_I", + "13": "set_adc_gain_I", + "16": "set_adc_gain_I" + } + }, + { + "expression": "MODE", + "when": { + "0": "set_adc_gain_Vin", + "1": "set_adc_gain_Vin", + "2": "set_adc_gain_Vin", + "4": "set_adc_gain_Vin", + "5": "set_adc_gain_Vin", + "6": "set_adc_gain_Vin", + "7": "set_adc_gain_Vin", + "8": "set_adc_gain_Vin", + "9": "set_adc_gain_Vin", + "13": "set_adc_gain_Vin", + "16": "set_adc_gain_Vin" + } + }, + { + "expression": "MODE", + "when": { + "0": "curve_iv", + "1": "curve_cv", + "2": "func_gen", + "3": "curve_zt", + "4": "curve_vt", + "5": "curve_it", + "6": "const_current", + "7": "curve_cv3", + "8": "curve_lsv", + "9": "curve_const_vscan", + "13": "curve_ocp", + "14": "curve_pulse_sensing", + "15": "curve_dpv", + "16": "curve_cp" + } + }, + { + "expression": "MODE", + "when": { + "7": "curve_cv3_para2", + "8": "curve_lsv_para2" + } + }, + "_sync(True)", + "VIS_STI" + ], + "data_format": [ + "_data_format('I4V4Z4T4')", + { + "expression": "MODE", + "when": { + "0": "_disable_cache(True)", + "1": "_disable_cache(True)", + "*": "_disable_cache(False)" + } + } + ], + "set_sample_rate": { + "type": "RIS", + "parameter": { + "va": "SAMPLE_RATE" + }, + "data": [ + "XE0;2B>va" + ] + }, + "set_dac_gain_Vout": { + "type": "RIS", + "data": [ + "XE1;X02;B>DAC_LEVEL_V_OUT_15" + ] + }, + "set_adc_gain_I": { + "type": "RIS", + "data": [ + "XE1;X00;B>ADC_LEVEL_I_15" + ] + }, + "set_adc_gain_Vin": { + "type": "RIS", + "data": [ + "XE1;X01;B>ADC_LEVEL_V_IN_15" + ] + }, + "set_ctrl_highZ": { + "type": "RIS", + "data": [ + "XE1;X03;B>CTRL_HIGH_Z_15" + ] + }, + "cali_Vout_dac": { + "type": "RIS", + "parameter": { + "v": "DAC_VOLT" + }, + "data": [ + "XF0;2B>v" + ] + }, + "cali_Iin": { + "type": "RIS", + "data": [ + "XF1;B>ADC_DAC_CHANNEL_15;B>ADC_LEVEL_I_15" + ] + }, + "cali_Vin": { + "type": "RIS", + "data": [ + "XF1;B>ADC_DAC_CHANNEL_15;B>ADC_LEVEL_V_IN_15" + ] + }, + "curve_iv": { + "type": "RIS", + "parameter": { + "va": "VOLT_ORIGIN", + "vb": "VOLT_FINAL", + "vc": "VOLT_STEP", + "vd": "STEP_TIME * 0x12", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X01;", + "2B>va;2B>vb;2B>vc;B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_cv": { + "type": "RIS", + "parameter": { + "va": "VOLT_ORIGIN", + "vb": "VOLT_FINAL", + "vc": "VOLT_STEP", + "vd": "STEP_TIME * 0x12", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X02;", + "2B>va;2B>vb;2B>vc;B>vd;2B>ve;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "func_gen": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X03;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_zt": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X04;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_vt": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X05;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_it": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X06;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "const_current": { + "type": "RIS", + "parameter": { + "va": "Charge", + "vb": "Const_Current_value", + "vc": "VOLTSTOP_MAX", + "vd": "VOLTSTOP_MIN", + "ve": "CC_CP_SPEED", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X07;", + "B>va;4B>vb;2B>vc;2B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe;", + "4b>0b0001;4b>ve" + ] + }, + "curve_cp": { + "type": "RIS", + "parameter": { + "va": "Charge", + "vb": "Const_Current_value", + "vc": "VOLTSTOP_MAX", + "vd": "VOLTSTOP_MIN", + "ve": "CC_CP_SPEED", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X07;", + "B>va;4B>vb;2B>vc;2B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe;", + "4b>0b0000;4b>ve" + ] + }, + "curve_cv3": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "vd": "Scan_Rate", + "ve": "CURRNET_LIMIT_VALUE", + "vf": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X09;", + "1X01;", + "2B>va;2B>vb;2B>vc;4B>vd;4B>ve" + ] + }, + "curve_cv3_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "vd": "Scan_Rate", + "ve": "CURRNET_LIMIT_VALUE", + "vf": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X09;", + "1X02;", + "2B>vf;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_lsv": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_EFINAL", + "vc": "Scan_Rate", + "vd": "CURRNET_LIMIT_VALUE", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0A;", + "1X01;", + "2B>va;2B>vb;4B>vc;4B>vd;2B>ve" + ] + }, + "curve_lsv_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_EFINAL", + "vc": "Scan_Rate", + "vd": "CURRNET_LIMIT_VALUE", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0A;", + "1X02;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_const_vscan": { + "type": "RIS", + "parameter": { + "va": "VOLT_VSCAN", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0B;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_ocp": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X08;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_pulse_sensing": [ + { + "expression": "segment_ui_order[0]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[1]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[2]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[3]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + "pul_sen_start" + ], + "pul_sen_start": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1XFF", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "pul_sen_segment_0": { + "type": "RIS", + "parameter": { + "va": "V_initial[0]", + "vb": "t_pulse[0]", + "vc": "CURR_REC[0][0]", + "vd": "CURR_REC[0][1]", + "ve": "segment_order.index(segment_order[0])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X01;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_1": { + "type": "RIS", + "parameter": { + "va": "V_initial[1]", + "vb": "t_pulse[1]", + "vc": "CURR_REC[1][0]", + "vd": "CURR_REC[1][1]", + "ve": "segment_order.index(segment_order[1])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X02;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_2": { + "type": "RIS", + "parameter": { + "va": "V_initial[2]", + "vb": "t_pulse[2]", + "vc": "CURR_REC[2][0]", + "vd": "CURR_REC[2][1]", + "ve": "segment_order.index(segment_order[2])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X03;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_3": { + "type": "RIS", + "parameter": { + "va": "V_initial[3]", + "vb": "t_pulse[3]", + "vc": "CURR_REC[3][0]", + "vd": "CURR_REC[3][1]", + "ve": "segment_order.index(segment_order[3])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X04;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "curve_dpv": [ + { + "expression": "DPV_mode", + "when": { + "0": "dpv_auto_mode", + "1": "dpv_advanced_mode", + "2": "dpv_engineering_mode" + } + } + ], + "dpv_auto_mode": [ + "dpv_auto_mode_ins_1", + "dpv_auto_mode_ins_2", + "dpv_auto_mode_ins_3", + "dpv_auto_mode_ins_final" + ], + "dpv_auto_mode_ins_1": { + "type": "RIS", + "parameter": { + "va": "DPV_mode", + "vb": "DPV_engineering_enable" + }, + "data": [ + "1X0E;", + "1X01;", + "B>va;B>vb" + ] + }, + "dpv_auto_mode_ins_2": { + "type": "RIS", + "parameter": { + "va": "DPV_e_init", + "vb": "DPV_e_final", + "vc": "DPV_amp", + "vd": "DPV_pul_width", + "ve": "DPV_increment" + }, + "data": [ + "1X0E;", + "1X02;", + "2B>va;2B>vb;2B>vc;4B>vd;2B>ve" + ] + }, + "dpv_auto_mode_ins_3": { + "type": "RIS", + "parameter": { + "va": "DPV_step_time", + "vb": "DPV_notify_rate", + "vc": "DPV_curr_rec[0]", + "vd": "DPV_curr_rec[1]" + }, + "data": [ + "1X0E;", + "1X03;", + "4B>va;2B>vb;B>vc;B>vd" + ] + }, + "dpv_auto_mode_ins_final": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0E;", + "1XFF;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "dpv_advanced_mode": [ + "dpv_advanced_mode_ins_1", + "dpv_advanced_mode_ins_2", + "dpv_advanced_mode_ins_3", + "dpv_advanced_mode_ins_4", + "dpv_advanced_mode_ins_final" + ], + "dpv_advanced_mode_ins_1": { + "type": "RIS", + "parameter": { + "va": "DPV_mode", + "vb": "DPV_engineering_enable" + }, + "data": [ + "1X10;", + "1X01;", + "B>va;B>vb" + ] + }, + "dpv_advanced_mode_ins_2": { + "type": "RIS", + "parameter": { + "va": "DPV_e_init", + "vb": "DPV_e_final", + "vc": "DPV_amp", + "vd": "DPV_pul_width", + "ve": "DPV_increment" + }, + "data": [ + "1X10;", + "1X02;", + "2B>va;2B>vb;2B>vc;4B>vd;2B>ve" + ] + }, + "dpv_advanced_mode_ins_3": { + "type": "RIS", + "parameter": { + "va": "DPV_step_time", + "vb": "DPV_notify_rate", + "vc": "DPV_curr_rec[0]", + "vd": "DPV_curr_rec[1]" + }, + "data": [ + "1X10;", + "1X03;", + "4B>va;2B>vb;B>vc;B>vd" + ] + }, + "dpv_advanced_mode_ins_4": { + "type": "RIS", + "parameter": { + "va": "DPV_e_1", + "vb": "DPV_e_2", + "vc": "DPV_pulse_option", + "vd": "CYCLE_NUMBER" + }, + "data": [ + "1X10;", + "1X04;", + "2B>va;2B>vb;B>vc;2B>vd" + ] + }, + "dpv_advanced_mode_ins_final": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X10;", + "1XFF;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "dpv_engineering_mode": [ + { + "expression": "DPV_engineering_enable", + "when": { + "0": "dpv_engineering_mode_auto", + "1": "dpv_engineering_mode_advanced" + } + } + ], + "dpv_engineering_mode_auto": [ + "dpv_auto_mode" + ], + "dpv_engineering_mode_advanced": [ + "dpv_advanced_mode" + ], + "VIS_CC_ZERO": [ + "_data_format('I4V4Z4T4')", + "_disable_cache(False)", + "_notify(True)", + "set_adc_gain_I", + "set_adc_gain_Vin", + "VIS_CC_ZERO", + "_sync(True)", + "VIS_STI" + ], + "ble_instru_send": [ + "ble_write", + "_cdr('20X>ADC_VALUE_I')" + ], + "ble_write": { + "type": "RIS", + "data": [ + "XFF;", + "1B>BLE_WRITE[0];1B>BLE_WRITE[1];1B>BLE_WRITE[2];1B>BLE_WRITE[3];", + "1B>BLE_WRITE[4];1B>BLE_WRITE[5];1B>BLE_WRITE[6];1B>BLE_WRITE[7];", + "1B>BLE_WRITE[8];1B>BLE_WRITE[9];1B>BLE_WRITE[10];1B>BLE_WRITE[11];", + "1B>BLE_WRITE[12];1B>BLE_WRITE[13];1B>BLE_WRITE[14];1B>BLE_WRITE[15];", + "1B>BLE_WRITE[16];" + ] + }, + "dev_version": [ + "CIS_VERSION", + "_cdr('20X>ADC_VALUE_I')" + ], + "dev_battery": [ + "CIS_VOLT", + "_cdr('20X>ADC_VALUE_I')" + ], + "set_para_DAC_VOLT": { + "type": "RIS", + "data": [ + "XE2;X01;2B>DAC_VOLT" + ] + } + } +} \ No newline at end of file diff --git a/python/res/devlib/json/elite_zm_02mv.devlib.json b/python/res/devlib/json/ELITE_EDC_1_4.devlib.json similarity index 99% rename from python/res/devlib/json/elite_zm_02mv.devlib.json rename to python/res/devlib/json/ELITE_EDC_1_4.devlib.json index 8b50737..20bbbdb 100644 --- a/python/res/devlib/json/elite_zm_02mv.devlib.json +++ b/python/res/devlib/json/ELITE_EDC_1_4.devlib.json @@ -1,5 +1,5 @@ { - "name": "EliteZM02", + "name": "Elite_EDC1", "version": "1.2.30", "match_rule": { "local_name_pattern": "Elite.*", diff --git a/python/res/devlib/json/elite_zm_15.devlib.json b/python/res/devlib/json/ELITE_EDC_1_5.devlib.json similarity index 99% rename from python/res/devlib/json/elite_zm_15.devlib.json rename to python/res/devlib/json/ELITE_EDC_1_5.devlib.json index 546a3f9..bbf77f2 100644 --- a/python/res/devlib/json/elite_zm_15.devlib.json +++ b/python/res/devlib/json/ELITE_EDC_1_5.devlib.json @@ -1,5 +1,5 @@ { - "name": "EliteZM15", + "name": "Elite_EDC2", "version": "1.2.30", "match_rule": { "local_name_pattern": "Elite.*", diff --git a/python/res/devlib/json/ELITE_EDC_1_5_R2.devlib.json b/python/res/devlib/json/ELITE_EDC_1_5_R2.devlib.json new file mode 100644 index 0000000..5daaf02 --- /dev/null +++ b/python/res/devlib/json/ELITE_EDC_1_5_R2.devlib.json @@ -0,0 +1,1676 @@ +{ + "name": "Elite_EDC2", + "version": "1.2.30", + "match_rule": { + "local_name_pattern": "Elite.*", + "major_product_number": 0, + "minor_product_number": 2, + "major_version_number": 1, + "minor_version_number": 8 + }, + "constant": { + "TIME_MAX": 100000, + "VOLT_MAX": 65536, + "Const_Current_Range": 1500001, + "BLE_WRITE_MAX": 255 + }, + "parameters": { + "DPV_e_init": { + "description": "DPV initial voltage ", + "record_meta": true, + "initial": 20000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_final": { + "description": "DPV final voltage", + "record_meta": true, + "initial": 30000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_1": { + "description": "DPV voltage return 1", + "record_meta": true, + "initial": 35000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_2": { + "description": "DPV voltage return 2", + "record_meta": true, + "initial": 15000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_amp": { + "description": "DPV pulse amplitude", + "record_meta": true, + "initial": 25125, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_pul_width": { + "description": "DPV pulse width", + "record_meta": true, + "initial": 50, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_increment": { + "description": "DPV increment", + "record_meta": true, + "initial": 25025, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_step_time": { + "description": "DPV step time = time of one period", + "record_meta": true, + "initial": 500, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_notify_rate": { + "description": "DPV sample rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_curr_rec": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": [ + 25, + 100 + ], + "domain": { + "list": [ + 101 + ] + }, + "value": "VALUE" + }, + "DPV_curr_rec_min": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": 25, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_curr_rec_max": { + "description": "DPV current recording period end", + "record_meta": true, + "initial": 100, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_pulse_option": { + "description": "Invert of pulse option", + "record_meta": true, + "domain": "bool", + "initial": false + }, + "DPV_mode": { + "description": "AUTO: 0 / ADVANCED: 1/ ENGINEERING: 2", + "record_meta": true, + "initial": 0, + "value": [ + 0, + 1, + 2 + ] + }, + "DPV_engineering_enable": { + "description": "Engineering mode switch", + "record_meta": true, + "domain": "bool", + "initial": false + }, + "V_initial": { + "description": "Pulse Mode Segment Voltage", + "record_meta": true, + "initial": [ + 50000, + 25000, + 25000, + 25000 + ], + "domain": { + "list": [ + 50001 + ] + }, + "value": "VALUE" + }, + "V_initial_0": { + "description": "Pulse Mode Segment Voltage 0", + "record_meta": true, + "initial": 50000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_1": { + "description": "Pulse Mode Segment Voltage 1", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_2": { + "description": "Pulse Mode Segment Voltage 2", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_3": { + "description": "Pulse Mode Segment Voltage 3", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse": { + "description": "Pulse Mode Segment Duration", + "record_meta": true, + "initial": [ + 750, + 9250, + 1000, + 1000 + ], + "domain": { + "list": [ + 1000001 + ] + }, + "value": "VALUE" + }, + "t_pulse_0": { + "description": "Pulse Mode Segment Duration 0", + "record_meta": true, + "initial": 750, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_1": { + "description": "Pulse Mode Segment Duration 1", + "record_meta": true, + "initial": 9250, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_2": { + "description": "Pulse Mode Segment Duration 2", + "record_meta": true, + "initial": 1000, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_3": { + "description": "Pulse Mode Segment Duration 3", + "record_meta": true, + "initial": 1000, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC": { + "description": "Pulse Mode Current Recording Period", + "record_meta": true, + "initial": [ + [ + 35, + 90 + ], + [ + 35, + 99 + ], + [ + 35, + 95 + ], + [ + 35, + 95 + ] + ], + "domain": { + "list": { + "list": [ + 100 + ] + } + }, + "value": "VALUE" + }, + "CURR_REC_START_0": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_1": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_2": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_3": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_0": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 90, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_1": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 99, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_2": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 95, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_3": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 95, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order": { + "description": "Pulse Mode Segment Order", + "record_meta": true, + "initial": [ + 0, + 1, + -1, + -1 + ], + "domain": { + "list": [ + -1, + 6 + ] + }, + "value": "VALUE" + }, + "segment_order": { + "description": "Pulse Mode Segment Order", + "record_meta": true, + "initial": [ + 0, + 1, + -1, + -1 + ], + "domain": { + "list": [ + -1, + 6 + ] + }, + "value": "VALUE" + }, + "segment_ui_order_0": { + "description": "Pulse Mode Segment UI Order 0, value: segment ID + 1", + "record_meta": true, + "initial": 1, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_1": { + "description": "Pulse Mode Segment UI Order 1, value: segment ID + 1", + "record_meta": true, + "initial": 2, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_2": { + "description": "Pulse Mode Segment UI Order 2, value: segment ID + 1", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_3": { + "description": "Pulse Mode Segment UI Order 3, value: segment ID + 1", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_0": { + "description": "Pulse Mode Segment Order for ID 0, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 1, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_1": { + "description": "Pulse Mode Segment Order for ID 1, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 2, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_2": { + "description": "Pulse Mode Segment Order for ID 2, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_3": { + "description": "Pulse Mode Segment Order for ID 3, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "DATA_OUTPUT": { + "description": "Pulse Mode Data Output", + "initial": 0, + "value": [ + "Average", + "Raw Data" + ] + }, + "CHANNEL": { + "description": "record channels", + "record_meta": true, + "domain": "property", + "value": "[0, 1, 2]" + }, + "CHANNEL_LABEL": { + "description": "channel label", + "record_meta": true, + "domain": "property", + "value": "['current', 'voltage', 'impedance']" + }, + "SAMPLE_RATE": { + "description": "data sampling rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_sample_rate" + }, + "AMP_GAIN": { + "description": "amp gain", + "record_meta": true, + "domain": "constant", + "value": 1 + }, + "MODE": { + "description": "working mode", + "record_meta": true, + "value": [ + "I-V Curve", + "Cycle I-V", + "Function Generator", + "R-T Graph", + "V-T Graph", + "I-T Graph", + "Constant Current", + "Cyclic Voltammetry", + "Linear Sweep Voltammetry", + "Chronoamperometric", + "Cali DAC - test", + "Cali ADC - test", + "Dev Mode", + "Open Circuit Potential", + "Pulse Sensing", + "Differential Pulse Voltammetry (DPV)", + "Chronopotentiometry" + ] + }, + "VOLT_ORIGIN": { + "description": "Origin Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_FINAL": { + "description": "The last Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": " VALUE" + } + }, + "VOLT_STEP": { + "description": "Voltage Step", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + } + }, + "STEP_TIME": { + "description": "How much time between two step", + "record_meta": true, + "initial": 1, + "value": [ + 0.5, + 1.0, + 2.0 + ] + }, + "CYCLE_NUMBER": { + "description": "CV cycle number", + "record_meta": true, + "initial": 1, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + } + }, + "CALI_VOLT": { + "description": "CALI output Voltage", + "record_meta": true, + "initial": 25000, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_para_DAC_VOLT" + }, + "DAC_VOLT": { + "description": "DAC output Voltage", + "record_meta": true, + "initial": 25000, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_para_DAC_VOLT" + }, + "ADC_VALUE_I": { + "description": "ADC value current value", + "domain": "int" + }, + "Const_Current_value": { + "description": "Constant Current value Setting", + "initial": 0, + "domain": [ + "Const_Current_Range" + ], + "value": { + "expression": "VALUE" + } + }, + "Charge": { + "description": "Charge battery or not", + "initial": 1, + "value": [ + "Charge", + "Discharge" + ] + }, + "VOLT_INITIAL": { + "description": "Initial Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_EFINAL": { + "description": "Final Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 27500, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 22500, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "Scan_Rate": { + "description": "Voltage Scan Rate", + "record_meta": true, + "initial": 10000, + "domain": [ + 100001 + ], + "value": { + "expression": "VALUE" + } + }, + "CURRNET_LIMIT_VALUE": { + "description": "Current value Setting", + "initial": 1500000, + "domain": [ + "Const_Current_Range" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLTSTOP_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 50000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLTSTOP_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 0, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_VSCAN": { + "description": "Voltage of VScan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "CC_CP_SPEED": { + "description": "charge speed for CC and CP mode", + "initial": 1, + "value": [ + "low", + "normal", + "high" + ] + }, + "ADC_LEVEL_I_15": { + "description": "ADC level", + "record_meta": true, + "initial": 4, + "value": [ + "0", + "1", + "2", + "3", + "auto" + ], + "on_change": "set_adc_gain_I" + }, + "ADC_LEVEL_V_IN_15": { + "description": "ADC level", + "record_meta": true, + "initial": 3, + "value": [ + "0", + "1", + "2", + "auto" + ], + "on_change": "set_adc_gain_Vin" + }, + "DAC_LEVEL_V_OUT_15": { + "description": "DAC level", + "record_meta": true, + "initial": 2, + "value": [ + "0", + "1", + "auto" + ], + "on_change": "set_dac_gain_Vout" + }, + "CTRL_HIGH_Z_15": { + "description": "ctrl highZ level", + "record_meta": true, + "initial": 1, + "value": [ + "On", + "Off" + ], + "on_change": "set_ctrl_highZ" + }, + "ADC_DAC_CHANNEL_15": { + "description": "read ADC data", + "initial": 0, + "value": [ + "Iin", + "Vin" + ] + }, + "BLE_WRITE": { + "description": "send msg to elite", + "domain": { + "list": [ + "BLE_WRITE_MAX" + ] + }, + "initial": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]", + "value": "VALUE" + }, + "BLE_READ": { + "description": "receive msg from elite", + "domain": "int" + }, + "TIME_UNIT": { + "description": "Duration unit", + "initial": 2, + "value": [ + "h", + "m", + "s", + "ms" + ] + }, + "TIME_DURATION": { + "description": "Run duration", + "record_meta": true, + "initial": 0, + "domain": [ + "TIME_MAX" + ], + "value": { + "expression": "VALUE" + } + } + }, + "instruction": { + "start": [ + { + "expression": "MODE", + "when": { + "10": "cali_dac_test", + "11": "cali_adc_test", + "12": "", + "*": "start_data" + } + } + ], + "cali_dac_test": [ + "set_dac_gain_Vout", + "cali_Vout_dac", + "VIS_STI" + ], + "cali_adc_test": [ + "data_format", + "_notify(True)", + "set_adc_gain_I", + "set_adc_gain_Vin", + { + "expression": "ADC_DAC_CHANNEL_15", + "when": { + "0": "cali_Iin", + "1": "cali_Vin" + } + }, + "_sync(True)", + "VIS_STI", + "_cdr('1X;4X>ADC_VALUE_I')" + ], + "start_data": [ + "data_format", + "_notify(True)", + { + "expression": "MODE", + "when": { + "0": "set_adc_gain_I", + "1": "set_adc_gain_I", + "2": "set_adc_gain_I", + "4": "set_adc_gain_I", + "5": "set_adc_gain_I", + "6": "set_adc_gain_I", + "7": "set_adc_gain_I", + "8": "set_adc_gain_I", + "9": "set_adc_gain_I", + "13": "set_adc_gain_I", + "16": "set_adc_gain_I" + } + }, + { + "expression": "MODE", + "when": { + "0": "set_adc_gain_Vin", + "1": "set_adc_gain_Vin", + "2": "set_adc_gain_Vin", + "4": "set_adc_gain_Vin", + "5": "set_adc_gain_Vin", + "6": "set_adc_gain_Vin", + "7": "set_adc_gain_Vin", + "8": "set_adc_gain_Vin", + "9": "set_adc_gain_Vin", + "13": "set_adc_gain_Vin", + "16": "set_adc_gain_Vin" + } + }, + { + "expression": "MODE", + "when": { + "0": "curve_iv", + "1": "curve_cv", + "2": "func_gen", + "3": "curve_zt", + "4": "curve_vt", + "5": "curve_it", + "6": "const_current", + "7": "curve_cv3", + "8": "curve_lsv", + "9": "curve_const_vscan", + "13": "curve_ocp", + "14": "curve_pulse_sensing", + "15": "curve_dpv", + "16": "curve_cp" + } + }, + { + "expression": "MODE", + "when": { + "7": "curve_cv3_para2", + "8": "curve_lsv_para2" + } + }, + "_sync(True)", + "VIS_STI" + ], + "data_format": [ + "_data_format('I4V4Z4T4')", + { + "expression": "MODE", + "when": { + "0": "_disable_cache(True)", + "1": "_disable_cache(True)", + "*": "_disable_cache(False)" + } + } + ], + "set_sample_rate": { + "type": "RIS", + "parameter": { + "va": "SAMPLE_RATE" + }, + "data": [ + "XE0;2B>va" + ] + }, + "set_dac_gain_Vout": { + "type": "RIS", + "data": [ + "XE1;X02;B>DAC_LEVEL_V_OUT_15" + ] + }, + "set_adc_gain_I": { + "type": "RIS", + "data": [ + "XE1;X00;B>ADC_LEVEL_I_15" + ] + }, + "set_adc_gain_Vin": { + "type": "RIS", + "data": [ + "XE1;X01;B>ADC_LEVEL_V_IN_15" + ] + }, + "set_ctrl_highZ": { + "type": "RIS", + "data": [ + "XE1;X03;B>CTRL_HIGH_Z_15" + ] + }, + "cali_Vout_dac": { + "type": "RIS", + "parameter": { + "v": "DAC_VOLT" + }, + "data": [ + "XF0;2B>v" + ] + }, + "cali_Iin": { + "type": "RIS", + "data": [ + "XF1;B>ADC_DAC_CHANNEL_15;B>ADC_LEVEL_I_15" + ] + }, + "cali_Vin": { + "type": "RIS", + "data": [ + "XF1;B>ADC_DAC_CHANNEL_15;B>ADC_LEVEL_V_IN_15" + ] + }, + "curve_iv": { + "type": "RIS", + "parameter": { + "va": "VOLT_ORIGIN", + "vb": "VOLT_FINAL", + "vc": "VOLT_STEP", + "vd": "STEP_TIME * 0x12", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X01;", + "2B>va;2B>vb;2B>vc;B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_cv": { + "type": "RIS", + "parameter": { + "va": "VOLT_ORIGIN", + "vb": "VOLT_FINAL", + "vc": "VOLT_STEP", + "vd": "STEP_TIME * 0x12", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X02;", + "2B>va;2B>vb;2B>vc;B>vd;2B>ve;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "func_gen": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X03;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_zt": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X04;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_vt": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X05;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_it": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X06;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "const_current": { + "type": "RIS", + "parameter": { + "va": "Charge", + "vb": "Const_Current_value", + "vc": "VOLTSTOP_MAX", + "vd": "VOLTSTOP_MIN", + "ve": "CC_CP_SPEED", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X07;", + "B>va;4B>vb;2B>vc;2B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe;", + "4b>0b0001;4b>ve" + ] + }, + "curve_cp": { + "type": "RIS", + "parameter": { + "va": "Charge", + "vb": "Const_Current_value", + "vc": "VOLTSTOP_MAX", + "vd": "VOLTSTOP_MIN", + "ve": "CC_CP_SPEED", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X07;", + "B>va;4B>vb;2B>vc;2B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe;", + "4b>0b0000;4b>ve" + ] + }, + "curve_cv3": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "vd": "Scan_Rate", + "ve": "CURRNET_LIMIT_VALUE", + "vf": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X09;", + "1X01;", + "2B>va;2B>vb;2B>vc;4B>vd;4B>ve" + ] + }, + "curve_cv3_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "vd": "Scan_Rate", + "ve": "CURRNET_LIMIT_VALUE", + "vf": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X09;", + "1X02;", + "2B>vf;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_lsv": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_EFINAL", + "vc": "Scan_Rate", + "vd": "CURRNET_LIMIT_VALUE", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0A;", + "1X01;", + "2B>va;2B>vb;4B>vc;4B>vd;2B>ve" + ] + }, + "curve_lsv_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_EFINAL", + "vc": "Scan_Rate", + "vd": "CURRNET_LIMIT_VALUE", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0A;", + "1X02;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_const_vscan": { + "type": "RIS", + "parameter": { + "va": "VOLT_VSCAN", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0B;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_ocp": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X08;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_pulse_sensing": [ + { + "expression": "segment_ui_order[0]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[1]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[2]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[3]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + "pul_sen_start" + ], + "pul_sen_start": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1XFF", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "pul_sen_segment_0": { + "type": "RIS", + "parameter": { + "va": "V_initial[0]", + "vb": "t_pulse[0]", + "vc": "CURR_REC[0][0]", + "vd": "CURR_REC[0][1]", + "ve": "segment_order.index(segment_order[0])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X01;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_1": { + "type": "RIS", + "parameter": { + "va": "V_initial[1]", + "vb": "t_pulse[1]", + "vc": "CURR_REC[1][0]", + "vd": "CURR_REC[1][1]", + "ve": "segment_order.index(segment_order[1])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X02;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_2": { + "type": "RIS", + "parameter": { + "va": "V_initial[2]", + "vb": "t_pulse[2]", + "vc": "CURR_REC[2][0]", + "vd": "CURR_REC[2][1]", + "ve": "segment_order.index(segment_order[2])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X03;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_3": { + "type": "RIS", + "parameter": { + "va": "V_initial[3]", + "vb": "t_pulse[3]", + "vc": "CURR_REC[3][0]", + "vd": "CURR_REC[3][1]", + "ve": "segment_order.index(segment_order[3])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X04;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "curve_dpv": [ + { + "expression": "DPV_mode", + "when": { + "0": "dpv_auto_mode", + "1": "dpv_advanced_mode", + "2": "dpv_engineering_mode" + } + } + ], + "dpv_auto_mode": [ + "dpv_auto_mode_ins_1", + "dpv_auto_mode_ins_2", + "dpv_auto_mode_ins_3", + "dpv_auto_mode_ins_final" + ], + "dpv_auto_mode_ins_1": { + "type": "RIS", + "parameter": { + "va": "DPV_mode", + "vb": "DPV_engineering_enable" + }, + "data": [ + "1X0E;", + "1X01;", + "B>va;B>vb" + ] + }, + "dpv_auto_mode_ins_2": { + "type": "RIS", + "parameter": { + "va": "DPV_e_init", + "vb": "DPV_e_final", + "vc": "DPV_amp", + "vd": "DPV_pul_width", + "ve": "DPV_increment" + }, + "data": [ + "1X0E;", + "1X02;", + "2B>va;2B>vb;2B>vc;4B>vd;2B>ve" + ] + }, + "dpv_auto_mode_ins_3": { + "type": "RIS", + "parameter": { + "va": "DPV_step_time", + "vb": "DPV_notify_rate", + "vc": "DPV_curr_rec[0]", + "vd": "DPV_curr_rec[1]" + }, + "data": [ + "1X0E;", + "1X03;", + "4B>va;2B>vb;B>vc;B>vd" + ] + }, + "dpv_auto_mode_ins_final": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0E;", + "1XFF;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "dpv_advanced_mode": [ + "dpv_advanced_mode_ins_1", + "dpv_advanced_mode_ins_2", + "dpv_advanced_mode_ins_3", + "dpv_advanced_mode_ins_4", + "dpv_advanced_mode_ins_final" + ], + "dpv_advanced_mode_ins_1": { + "type": "RIS", + "parameter": { + "va": "DPV_mode", + "vb": "DPV_engineering_enable" + }, + "data": [ + "1X10;", + "1X01;", + "B>va;B>vb" + ] + }, + "dpv_advanced_mode_ins_2": { + "type": "RIS", + "parameter": { + "va": "DPV_e_init", + "vb": "DPV_e_final", + "vc": "DPV_amp", + "vd": "DPV_pul_width", + "ve": "DPV_increment" + }, + "data": [ + "1X10;", + "1X02;", + "2B>va;2B>vb;2B>vc;4B>vd;2B>ve" + ] + }, + "dpv_advanced_mode_ins_3": { + "type": "RIS", + "parameter": { + "va": "DPV_step_time", + "vb": "DPV_notify_rate", + "vc": "DPV_curr_rec[0]", + "vd": "DPV_curr_rec[1]" + }, + "data": [ + "1X10;", + "1X03;", + "4B>va;2B>vb;B>vc;B>vd" + ] + }, + "dpv_advanced_mode_ins_4": { + "type": "RIS", + "parameter": { + "va": "DPV_e_1", + "vb": "DPV_e_2", + "vc": "DPV_pulse_option", + "vd": "CYCLE_NUMBER" + }, + "data": [ + "1X10;", + "1X04;", + "2B>va;2B>vb;B>vc;2B>vd" + ] + }, + "dpv_advanced_mode_ins_final": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X10;", + "1XFF;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "dpv_engineering_mode": [ + { + "expression": "DPV_engineering_enable", + "when": { + "0": "dpv_engineering_mode_auto", + "1": "dpv_engineering_mode_advanced" + } + } + ], + "dpv_engineering_mode_auto": [ + "dpv_auto_mode" + ], + "dpv_engineering_mode_advanced": [ + "dpv_advanced_mode" + ], + "VIS_CC_ZERO": [ + "_data_format('I4V4Z4T4')", + "_disable_cache(False)", + "_notify(True)", + "set_adc_gain_I", + "set_adc_gain_Vin", + "VIS_CC_ZERO", + "_sync(True)", + "VIS_STI" + ], + "ble_instru_send": [ + "ble_write", + "_cdr('20X>ADC_VALUE_I')" + ], + "ble_write": { + "type": "RIS", + "data": [ + "XFF;", + "1B>BLE_WRITE[0];1B>BLE_WRITE[1];1B>BLE_WRITE[2];1B>BLE_WRITE[3];", + "1B>BLE_WRITE[4];1B>BLE_WRITE[5];1B>BLE_WRITE[6];1B>BLE_WRITE[7];", + "1B>BLE_WRITE[8];1B>BLE_WRITE[9];1B>BLE_WRITE[10];1B>BLE_WRITE[11];", + "1B>BLE_WRITE[12];1B>BLE_WRITE[13];1B>BLE_WRITE[14];1B>BLE_WRITE[15];", + "1B>BLE_WRITE[16];" + ] + }, + "dev_version": [ + "CIS_VERSION", + "_cdr('20X>ADC_VALUE_I')" + ], + "dev_battery": [ + "CIS_VOLT", + "_cdr('20X>ADC_VALUE_I')" + ], + "set_para_DAC_VOLT": { + "type": "RIS", + "data": [ + "XE2;X01;2B>DAC_VOLT" + ] + } + } +} \ No newline at end of file diff --git a/python/res/devlib/json/ELITE_EDC_1_5_RE.devlib.json b/python/res/devlib/json/ELITE_EDC_1_5_RE.devlib.json new file mode 100644 index 0000000..43e2718 --- /dev/null +++ b/python/res/devlib/json/ELITE_EDC_1_5_RE.devlib.json @@ -0,0 +1,1676 @@ +{ + "name": "Elite_EDC2", + "version": "1.2.30", + "match_rule": { + "local_name_pattern": "Elite.*", + "major_product_number": 0, + "minor_product_number": 2, + "major_version_number": 1, + "minor_version_number": 7 + }, + "constant": { + "TIME_MAX": 100000, + "VOLT_MAX": 65536, + "Const_Current_Range": 1500001, + "BLE_WRITE_MAX": 255 + }, + "parameters": { + "DPV_e_init": { + "description": "DPV initial voltage ", + "record_meta": true, + "initial": 20000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_final": { + "description": "DPV final voltage", + "record_meta": true, + "initial": 30000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_1": { + "description": "DPV voltage return 1", + "record_meta": true, + "initial": 35000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_e_2": { + "description": "DPV voltage return 2", + "record_meta": true, + "initial": 15000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_amp": { + "description": "DPV pulse amplitude", + "record_meta": true, + "initial": 25125, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_pul_width": { + "description": "DPV pulse width", + "record_meta": true, + "initial": 50, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_increment": { + "description": "DPV increment", + "record_meta": true, + "initial": 25025, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_step_time": { + "description": "DPV step time = time of one period", + "record_meta": true, + "initial": 500, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_notify_rate": { + "description": "DPV sample rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_curr_rec": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": [ + 25, + 100 + ], + "domain": { + "list": [ + 101 + ] + }, + "value": "VALUE" + }, + "DPV_curr_rec_min": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": 25, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_curr_rec_max": { + "description": "DPV current recording period end", + "record_meta": true, + "initial": 100, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "DPV_pulse_option": { + "description": "Invert of pulse option", + "record_meta": true, + "domain": "bool", + "initial": false + }, + "DPV_mode": { + "description": "AUTO: 0 / ADVANCED: 1/ ENGINEERING: 2", + "record_meta": true, + "initial": 0, + "value": [ + 0, + 1, + 2 + ] + }, + "DPV_engineering_enable": { + "description": "Engineering mode switch", + "record_meta": true, + "domain": "bool", + "initial": false + }, + "V_initial": { + "description": "Pulse Mode Segment Voltage", + "record_meta": true, + "initial": [ + 50000, + 25000, + 25000, + 25000 + ], + "domain": { + "list": [ + 50001 + ] + }, + "value": "VALUE" + }, + "V_initial_0": { + "description": "Pulse Mode Segment Voltage 0", + "record_meta": true, + "initial": 50000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_1": { + "description": "Pulse Mode Segment Voltage 1", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_2": { + "description": "Pulse Mode Segment Voltage 2", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "V_initial_3": { + "description": "Pulse Mode Segment Voltage 3", + "record_meta": true, + "initial": 25000, + "domain": [ + 50001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse": { + "description": "Pulse Mode Segment Duration", + "record_meta": true, + "initial": [ + 750, + 9250, + 1000, + 1000 + ], + "domain": { + "list": [ + 1000001 + ] + }, + "value": "VALUE" + }, + "t_pulse_0": { + "description": "Pulse Mode Segment Duration 0", + "record_meta": true, + "initial": 750, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_1": { + "description": "Pulse Mode Segment Duration 1", + "record_meta": true, + "initial": 9250, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_2": { + "description": "Pulse Mode Segment Duration 2", + "record_meta": true, + "initial": 1000, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "t_pulse_3": { + "description": "Pulse Mode Segment Duration 3", + "record_meta": true, + "initial": 1000, + "domain": [ + 1000001 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC": { + "description": "Pulse Mode Current Recording Period", + "record_meta": true, + "initial": [ + [ + 35, + 90 + ], + [ + 35, + 99 + ], + [ + 35, + 95 + ], + [ + 35, + 95 + ] + ], + "domain": { + "list": { + "list": [ + 100 + ] + } + }, + "value": "VALUE" + }, + "CURR_REC_START_0": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_1": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_2": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_START_3": { + "description": "Pulse Mode Current Recording Period Start", + "record_meta": true, + "initial": 35, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_0": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 90, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_1": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 99, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_2": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 95, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "CURR_REC_END_3": { + "description": "Pulse Mode Current Recording Period End", + "record_meta": true, + "initial": 95, + "domain": [ + 100 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order": { + "description": "Pulse Mode Segment Order", + "record_meta": true, + "initial": [ + 0, + 1, + -1, + -1 + ], + "domain": { + "list": [ + -1, + 6 + ] + }, + "value": "VALUE" + }, + "segment_order": { + "description": "Pulse Mode Segment Order", + "record_meta": true, + "initial": [ + 0, + 1, + -1, + -1 + ], + "domain": { + "list": [ + -1, + 6 + ] + }, + "value": "VALUE" + }, + "segment_ui_order_0": { + "description": "Pulse Mode Segment UI Order 0, value: segment ID + 1", + "record_meta": true, + "initial": 1, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_1": { + "description": "Pulse Mode Segment UI Order 1, value: segment ID + 1", + "record_meta": true, + "initial": 2, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_2": { + "description": "Pulse Mode Segment UI Order 2, value: segment ID + 1", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_ui_order_3": { + "description": "Pulse Mode Segment UI Order 3, value: segment ID + 1", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_0": { + "description": "Pulse Mode Segment Order for ID 0, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 1, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_1": { + "description": "Pulse Mode Segment Order for ID 1, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 2, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_2": { + "description": "Pulse Mode Segment Order for ID 2, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "segment_order_3": { + "description": "Pulse Mode Segment Order for ID 3, value: order (1,2,3,4), 0 means not use the segment", + "record_meta": true, + "initial": 0, + "domain": [ + 6 + ], + "value": { + "expression": "VALUE" + } + }, + "DATA_OUTPUT": { + "description": "Pulse Mode Data Output", + "initial": 0, + "value": [ + "Average", + "Raw Data" + ] + }, + "CHANNEL": { + "description": "record channels", + "record_meta": true, + "domain": "property", + "value": "[0, 1, 2]" + }, + "CHANNEL_LABEL": { + "description": "channel label", + "record_meta": true, + "domain": "property", + "value": "['current', 'voltage', 'impedance']" + }, + "SAMPLE_RATE": { + "description": "data sampling rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_sample_rate" + }, + "AMP_GAIN": { + "description": "amp gain", + "record_meta": true, + "domain": "constant", + "value": 1 + }, + "MODE": { + "description": "working mode", + "record_meta": true, + "value": [ + "I-V Curve", + "Cycle I-V", + "Function Generator", + "R-T Graph", + "V-T Graph", + "I-T Graph", + "Constant Current", + "Cyclic Voltammetry", + "Linear Sweep Voltammetry", + "Chronoamperometric", + "Cali DAC - test", + "Cali ADC - test", + "Dev Mode", + "Open Circuit Potential", + "Pulse Sensing", + "Differential Pulse Voltammetry (DPV)", + "Chronopotentiometry" + ] + }, + "VOLT_ORIGIN": { + "description": "Origin Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_FINAL": { + "description": "The last Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": " VALUE" + } + }, + "VOLT_STEP": { + "description": "Voltage Step", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + } + }, + "STEP_TIME": { + "description": "How much time between two step", + "record_meta": true, + "initial": 1, + "value": [ + 0.5, + 1.0, + 2.0 + ] + }, + "CYCLE_NUMBER": { + "description": "CV cycle number", + "record_meta": true, + "initial": 1, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + } + }, + "CALI_VOLT": { + "description": "CALI output Voltage", + "record_meta": true, + "initial": 25000, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_para_DAC_VOLT" + }, + "DAC_VOLT": { + "description": "DAC output Voltage", + "record_meta": true, + "initial": 25000, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_para_DAC_VOLT" + }, + "ADC_VALUE_I": { + "description": "ADC value current value", + "domain": "int" + }, + "Const_Current_value": { + "description": "Constant Current value Setting", + "initial": 0, + "domain": [ + "Const_Current_Range" + ], + "value": { + "expression": "VALUE" + } + }, + "Charge": { + "description": "Charge battery or not", + "initial": 1, + "value": [ + "Charge", + "Discharge" + ] + }, + "VOLT_INITIAL": { + "description": "Initial Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_EFINAL": { + "description": "Final Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 27500, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 22500, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "Scan_Rate": { + "description": "Voltage Scan Rate", + "record_meta": true, + "initial": 10000, + "domain": [ + 100001 + ], + "value": { + "expression": "VALUE" + } + }, + "CURRNET_LIMIT_VALUE": { + "description": "Current value Setting", + "initial": 1500000, + "domain": [ + "Const_Current_Range" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLTSTOP_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 50000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLTSTOP_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 0, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_VSCAN": { + "description": "Voltage of VScan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "CC_CP_SPEED": { + "description": "charge speed for CC and CP mode", + "initial": 1, + "value": [ + "low", + "normal", + "high" + ] + }, + "ADC_LEVEL_I_15": { + "description": "ADC level", + "record_meta": true, + "initial": 4, + "value": [ + "0", + "1", + "2", + "3", + "auto" + ], + "on_change": "set_adc_gain_I" + }, + "ADC_LEVEL_V_IN_15": { + "description": "ADC level", + "record_meta": true, + "initial": 3, + "value": [ + "0", + "1", + "2", + "auto" + ], + "on_change": "set_adc_gain_Vin" + }, + "DAC_LEVEL_V_OUT_15": { + "description": "DAC level", + "record_meta": true, + "initial": 2, + "value": [ + "0", + "1", + "auto" + ], + "on_change": "set_dac_gain_Vout" + }, + "CTRL_HIGH_Z_15": { + "description": "ctrl highZ level", + "record_meta": true, + "initial": 1, + "value": [ + "On", + "Off" + ], + "on_change": "set_ctrl_highZ" + }, + "ADC_DAC_CHANNEL_15": { + "description": "read ADC data", + "initial": 0, + "value": [ + "Iin", + "Vin" + ] + }, + "BLE_WRITE": { + "description": "send msg to elite", + "domain": { + "list": [ + "BLE_WRITE_MAX" + ] + }, + "initial": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]", + "value": "VALUE" + }, + "BLE_READ": { + "description": "receive msg from elite", + "domain": "int" + }, + "TIME_UNIT": { + "description": "Duration unit", + "initial": 2, + "value": [ + "h", + "m", + "s", + "ms" + ] + }, + "TIME_DURATION": { + "description": "Run duration", + "record_meta": true, + "initial": 0, + "domain": [ + "TIME_MAX" + ], + "value": { + "expression": "VALUE" + } + } + }, + "instruction": { + "start": [ + { + "expression": "MODE", + "when": { + "10": "cali_dac_test", + "11": "cali_adc_test", + "12": "", + "*": "start_data" + } + } + ], + "cali_dac_test": [ + "set_dac_gain_Vout", + "cali_Vout_dac", + "VIS_STI" + ], + "cali_adc_test": [ + "data_format", + "_notify(True)", + "set_adc_gain_I", + "set_adc_gain_Vin", + { + "expression": "ADC_DAC_CHANNEL_15", + "when": { + "0": "cali_Iin", + "1": "cali_Vin" + } + }, + "_sync(True)", + "VIS_STI", + "_cdr('1X;4X>ADC_VALUE_I')" + ], + "start_data": [ + "data_format", + "_notify(True)", + { + "expression": "MODE", + "when": { + "0": "set_adc_gain_I", + "1": "set_adc_gain_I", + "2": "set_adc_gain_I", + "4": "set_adc_gain_I", + "5": "set_adc_gain_I", + "6": "set_adc_gain_I", + "7": "set_adc_gain_I", + "8": "set_adc_gain_I", + "9": "set_adc_gain_I", + "13": "set_adc_gain_I", + "16": "set_adc_gain_I" + } + }, + { + "expression": "MODE", + "when": { + "0": "set_adc_gain_Vin", + "1": "set_adc_gain_Vin", + "2": "set_adc_gain_Vin", + "4": "set_adc_gain_Vin", + "5": "set_adc_gain_Vin", + "6": "set_adc_gain_Vin", + "7": "set_adc_gain_Vin", + "8": "set_adc_gain_Vin", + "9": "set_adc_gain_Vin", + "13": "set_adc_gain_Vin", + "16": "set_adc_gain_Vin" + } + }, + { + "expression": "MODE", + "when": { + "0": "curve_iv", + "1": "curve_cv", + "2": "func_gen", + "3": "curve_zt", + "4": "curve_vt", + "5": "curve_it", + "6": "const_current", + "7": "curve_cv3", + "8": "curve_lsv", + "9": "curve_const_vscan", + "13": "curve_ocp", + "14": "curve_pulse_sensing", + "15": "curve_dpv", + "16": "curve_cp" + } + }, + { + "expression": "MODE", + "when": { + "7": "curve_cv3_para2", + "8": "curve_lsv_para2" + } + }, + "_sync(True)", + "VIS_STI" + ], + "data_format": [ + "_data_format('I4V4Z4T4')", + { + "expression": "MODE", + "when": { + "0": "_disable_cache(True)", + "1": "_disable_cache(True)", + "*": "_disable_cache(False)" + } + } + ], + "set_sample_rate": { + "type": "RIS", + "parameter": { + "va": "SAMPLE_RATE" + }, + "data": [ + "XE0;2B>va" + ] + }, + "set_dac_gain_Vout": { + "type": "RIS", + "data": [ + "XE1;X02;B>DAC_LEVEL_V_OUT_15" + ] + }, + "set_adc_gain_I": { + "type": "RIS", + "data": [ + "XE1;X00;B>ADC_LEVEL_I_15" + ] + }, + "set_adc_gain_Vin": { + "type": "RIS", + "data": [ + "XE1;X01;B>ADC_LEVEL_V_IN_15" + ] + }, + "set_ctrl_highZ": { + "type": "RIS", + "data": [ + "XE1;X03;B>CTRL_HIGH_Z_15" + ] + }, + "cali_Vout_dac": { + "type": "RIS", + "parameter": { + "v": "DAC_VOLT" + }, + "data": [ + "XF0;2B>v" + ] + }, + "cali_Iin": { + "type": "RIS", + "data": [ + "XF1;B>ADC_DAC_CHANNEL_15;B>ADC_LEVEL_I_15" + ] + }, + "cali_Vin": { + "type": "RIS", + "data": [ + "XF1;B>ADC_DAC_CHANNEL_15;B>ADC_LEVEL_V_IN_15" + ] + }, + "curve_iv": { + "type": "RIS", + "parameter": { + "va": "VOLT_ORIGIN", + "vb": "VOLT_FINAL", + "vc": "VOLT_STEP", + "vd": "STEP_TIME * 0x12", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X01;", + "2B>va;2B>vb;2B>vc;B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_cv": { + "type": "RIS", + "parameter": { + "va": "VOLT_ORIGIN", + "vb": "VOLT_FINAL", + "vc": "VOLT_STEP", + "vd": "STEP_TIME * 0x12", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X02;", + "2B>va;2B>vb;2B>vc;B>vd;2B>ve;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "func_gen": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X03;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_zt": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X04;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_vt": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X05;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_it": { + "type": "RIS", + "parameter": { + "va": "DAC_VOLT", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X06;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "const_current": { + "type": "RIS", + "parameter": { + "va": "Charge", + "vb": "Const_Current_value", + "vc": "VOLTSTOP_MAX", + "vd": "VOLTSTOP_MIN", + "ve": "CC_CP_SPEED", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X07;", + "B>va;4B>vb;2B>vc;2B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe;", + "4b>0b0001;4b>ve" + ] + }, + "curve_cp": { + "type": "RIS", + "parameter": { + "va": "Charge", + "vb": "Const_Current_value", + "vc": "VOLTSTOP_MAX", + "vd": "VOLTSTOP_MIN", + "ve": "CC_CP_SPEED", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X07;", + "B>va;4B>vb;2B>vc;2B>vd;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe;", + "4b>0b0000;4b>ve" + ] + }, + "curve_cv3": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "vd": "Scan_Rate", + "ve": "CURRNET_LIMIT_VALUE", + "vf": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X09;", + "1X01;", + "2B>va;2B>vb;2B>vc;4B>vd;4B>ve" + ] + }, + "curve_cv3_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "vd": "Scan_Rate", + "ve": "CURRNET_LIMIT_VALUE", + "vf": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X09;", + "1X02;", + "2B>vf;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_lsv": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_EFINAL", + "vc": "Scan_Rate", + "vd": "CURRNET_LIMIT_VALUE", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0A;", + "1X01;", + "2B>va;2B>vb;4B>vc;4B>vd;2B>ve" + ] + }, + "curve_lsv_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_EFINAL", + "vc": "Scan_Rate", + "vd": "CURRNET_LIMIT_VALUE", + "ve": "CYCLE_NUMBER", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0A;", + "1X02;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_const_vscan": { + "type": "RIS", + "parameter": { + "va": "VOLT_VSCAN", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0B;", + "2B>va;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_ocp": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "X08;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd;", + "2B>pe" + ] + }, + "curve_pulse_sensing": [ + { + "expression": "segment_ui_order[0]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[1]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[2]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + { + "expression": "segment_ui_order[3]", + "when": { + "0": "pul_sen_segment_0", + "1": "pul_sen_segment_1", + "2": "pul_sen_segment_2", + "3": "pul_sen_segment_3" + } + }, + "pul_sen_start" + ], + "pul_sen_start": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1XFF", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "pul_sen_segment_0": { + "type": "RIS", + "parameter": { + "va": "V_initial[0]", + "vb": "t_pulse[0]", + "vc": "CURR_REC[0][0]", + "vd": "CURR_REC[0][1]", + "ve": "segment_order.index(segment_order[0])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X01;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_1": { + "type": "RIS", + "parameter": { + "va": "V_initial[1]", + "vb": "t_pulse[1]", + "vc": "CURR_REC[1][0]", + "vd": "CURR_REC[1][1]", + "ve": "segment_order.index(segment_order[1])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X02;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_2": { + "type": "RIS", + "parameter": { + "va": "V_initial[2]", + "vb": "t_pulse[2]", + "vc": "CURR_REC[2][0]", + "vd": "CURR_REC[2][1]", + "ve": "segment_order.index(segment_order[2])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X03;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "pul_sen_segment_3": { + "type": "RIS", + "parameter": { + "va": "V_initial[3]", + "vb": "t_pulse[3]", + "vc": "CURR_REC[3][0]", + "vd": "CURR_REC[3][1]", + "ve": "segment_order.index(segment_order[3])", + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0D;", + "1X04;", + "2B>va;4B>vb;1B>vc;1B>vd;1B>ve" + ] + }, + "curve_dpv": [ + { + "expression": "DPV_mode", + "when": { + "0": "dpv_auto_mode", + "1": "dpv_advanced_mode", + "2": "dpv_engineering_mode" + } + } + ], + "dpv_auto_mode": [ + "dpv_auto_mode_ins_1", + "dpv_auto_mode_ins_2", + "dpv_auto_mode_ins_3", + "dpv_auto_mode_ins_final" + ], + "dpv_auto_mode_ins_1": { + "type": "RIS", + "parameter": { + "va": "DPV_mode", + "vb": "DPV_engineering_enable" + }, + "data": [ + "1X0E;", + "1X01;", + "B>va;B>vb" + ] + }, + "dpv_auto_mode_ins_2": { + "type": "RIS", + "parameter": { + "va": "DPV_e_init", + "vb": "DPV_e_final", + "vc": "DPV_amp", + "vd": "DPV_pul_width", + "ve": "DPV_increment" + }, + "data": [ + "1X0E;", + "1X02;", + "2B>va;2B>vb;2B>vc;4B>vd;2B>ve" + ] + }, + "dpv_auto_mode_ins_3": { + "type": "RIS", + "parameter": { + "va": "DPV_step_time", + "vb": "DPV_notify_rate", + "vc": "DPV_curr_rec[0]", + "vd": "DPV_curr_rec[1]" + }, + "data": [ + "1X0E;", + "1X03;", + "4B>va;2B>vb;B>vc;B>vd" + ] + }, + "dpv_auto_mode_ins_final": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X0E;", + "1XFF;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "dpv_advanced_mode": [ + "dpv_advanced_mode_ins_1", + "dpv_advanced_mode_ins_2", + "dpv_advanced_mode_ins_3", + "dpv_advanced_mode_ins_4", + "dpv_advanced_mode_ins_final" + ], + "dpv_advanced_mode_ins_1": { + "type": "RIS", + "parameter": { + "va": "DPV_mode", + "vb": "DPV_engineering_enable" + }, + "data": [ + "1X10;", + "1X01;", + "B>va;B>vb" + ] + }, + "dpv_advanced_mode_ins_2": { + "type": "RIS", + "parameter": { + "va": "DPV_e_init", + "vb": "DPV_e_final", + "vc": "DPV_amp", + "vd": "DPV_pul_width", + "ve": "DPV_increment" + }, + "data": [ + "1X10;", + "1X02;", + "2B>va;2B>vb;2B>vc;4B>vd;2B>ve" + ] + }, + "dpv_advanced_mode_ins_3": { + "type": "RIS", + "parameter": { + "va": "DPV_step_time", + "vb": "DPV_notify_rate", + "vc": "DPV_curr_rec[0]", + "vd": "DPV_curr_rec[1]" + }, + "data": [ + "1X10;", + "1X03;", + "4B>va;2B>vb;B>vc;B>vd" + ] + }, + "dpv_advanced_mode_ins_4": { + "type": "RIS", + "parameter": { + "va": "DPV_e_1", + "vb": "DPV_e_2", + "vc": "DPV_pulse_option", + "vd": "CYCLE_NUMBER" + }, + "data": [ + "1X10;", + "1X04;", + "2B>va;2B>vb;B>vc;2B>vd" + ] + }, + "dpv_advanced_mode_ins_final": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pc": "DAC_LEVEL_V_OUT_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE" + }, + "data": [ + "1X10;", + "1XFF;", + "4b>pa;4b>pb;", + "4b>pc;4b>pd" + ] + }, + "dpv_engineering_mode": [ + { + "expression": "DPV_engineering_enable", + "when": { + "0": "dpv_engineering_mode_auto", + "1": "dpv_engineering_mode_advanced" + } + } + ], + "dpv_engineering_mode_auto": [ + "dpv_auto_mode" + ], + "dpv_engineering_mode_advanced": [ + "dpv_advanced_mode" + ], + "VIS_CC_ZERO": [ + "_data_format('I4V4Z4T4')", + "_disable_cache(False)", + "_notify(True)", + "set_adc_gain_I", + "set_adc_gain_Vin", + "VIS_CC_ZERO", + "_sync(True)", + "VIS_STI" + ], + "ble_instru_send": [ + "ble_write", + "_cdr('20X>ADC_VALUE_I')" + ], + "ble_write": { + "type": "RIS", + "data": [ + "XFF;", + "1B>BLE_WRITE[0];1B>BLE_WRITE[1];1B>BLE_WRITE[2];1B>BLE_WRITE[3];", + "1B>BLE_WRITE[4];1B>BLE_WRITE[5];1B>BLE_WRITE[6];1B>BLE_WRITE[7];", + "1B>BLE_WRITE[8];1B>BLE_WRITE[9];1B>BLE_WRITE[10];1B>BLE_WRITE[11];", + "1B>BLE_WRITE[12];1B>BLE_WRITE[13];1B>BLE_WRITE[14];1B>BLE_WRITE[15];", + "1B>BLE_WRITE[16];" + ] + }, + "dev_version": [ + "CIS_VERSION", + "_cdr('20X>ADC_VALUE_I')" + ], + "dev_battery": [ + "CIS_VOLT", + "_cdr('20X>ADC_VALUE_I')" + ], + "set_para_DAC_VOLT": { + "type": "RIS", + "data": [ + "XE2;X01;2B>DAC_VOLT" + ] + } + } +} \ No newline at end of file diff --git a/python/res/devlib/json/elite_eis.devlib.json b/python/res/devlib/json/ELITE_EIS_1_0.devlib.json similarity index 99% rename from python/res/devlib/json/elite_eis.devlib.json rename to python/res/devlib/json/ELITE_EIS_1_0.devlib.json index 38050fe..68d1717 100644 --- a/python/res/devlib/json/elite_eis.devlib.json +++ b/python/res/devlib/json/ELITE_EIS_1_0.devlib.json @@ -1,5 +1,5 @@ { - "name": "EliteEIS", + "name": "Elite_EIS1", "version": "1.2.30", "match_rule": { "local_name_pattern": "Elite.*", diff --git a/python/res/devlib/json/ELITE_EIS_1_1.devlib.json b/python/res/devlib/json/ELITE_EIS_1_1.devlib.json new file mode 100644 index 0000000..e8fc4ea --- /dev/null +++ b/python/res/devlib/json/ELITE_EIS_1_1.devlib.json @@ -0,0 +1,459 @@ +{ + "name": "Elite_EIS1", + "version": "1.2.30", + "match_rule": { + "local_name_pattern": "Elite.*", + "major_product_number": 0, + "minor_product_number": 4, + "major_version_number": 1, + "minor_version_number": 1 + }, + "constant": { + "FREQ_MAX": 4294967296, + "VOLT_MAX": 65536, + "BLE_WRITE_MAX": 255, + "TIME_MAX": 100000 + }, + "parameters": { + "TIME_DURATION": { + "description": "Run duration", + "record_meta": true, + "initial": 0, + "domain": [ + "TIME_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "CHANNEL": { + "derzteription": "record channels", + "record_meta": true, + "domain": "property", + "value": "[0, 1, 2]" + }, + "CHANNEL_LABEL": { + "description": "channel label", + "record_meta": true, + "domain": "property", + "value": "['current', 'voltage', 'impedance']" + }, + "SAMPLE_RATE": { + "description": "data sampling rate", + "record_meta": true, + "initial": 1000, + "domain": [ + 1001 + ], + "value": { + "expression": "VALUE" + }, + "on_change": "set_sample_rate" + }, + "AMP_GAIN": { + "description": "amp gain", + "record_meta": true, + "domain": "constant", + "value": 1 + }, + "MODE": { + "description": "working mode", + "record_meta": true, + "value": [ + "EIS CURVE", + "Cyclic Voltammetry", + "Dev Mode" + ] + }, + "FREQ": { + "description": "DPV current recording period start", + "record_meta": true, + "initial": [ + 13422819, + 7 + ], + "domain": { + "list": [ + "FREQ_MAX" + ] + }, + "value": "VALUE" + }, + "FREQ_START": { + "description": "Start of Freq Scan", + "record_meta": true, + "initial": 13422819, + "domain": [ + "FREQ_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "FREQ_STOP": { + "description": "End of Freq Scan", + "record_meta": true, + "initial": 7, + "domain": [ + "FREQ_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "DELAY": { + "description": "Wait x peroid before start taking measurements", + "record_meta": true, + "initial": 0, + "domain": [ + 101 + ], + "value": { + "expression": "VALUE" + } + }, + "AVERAGE_NUM": { + "description": "Number of sample used for average funciton", + "record_meta": true, + "initial": 8, + "value": [ + 2, + 4, + 8, + 16 + ] + }, + "DC_BIAS": { + "description": "DC voltage bias in mV", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "AC_AMP": { + "description": "AC Amplitude in mV", + "record_meta": true, + "initial": 25, + "domain": [ + 2048 + ] + }, + "SCALE": { + "description": "Point spacing pattern", + "record_meta": true, + "initial": 0, + "value": [ + 0, + 1 + ] + }, + "PPD": { + "description": "Point per decades", + "record_meta": true, + "initial": 10, + "domain": [ + 11 + ] + }, + "RTIA": { + "description": "High speed tia gain", + "record_meta": true, + "initial": 4, + "value": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + "ADC_VALUE_I": { + "description": "ADC value current value", + "domain": "int" + }, + "Scan_Rate": { + "description": "Voltage Scan Rate", + "record_meta": true, + "initial": 10000, + "domain": [ + 100001 + ], + "value": { + "expression": "VALUE" + } + }, + "CTRL_HIGH_Z_15": { + "description": "ctrl highZ level", + "record_meta": true, + "initial": 1, + "value": [ + "On", + "Off" + ], + "on_change": "set_ctrl_highZ" + }, + "ADC_LEVEL_I_15": { + "description": "ADC level", + "record_meta": true, + "initial": 4, + "value": [ + "0", + "1", + "2", + "3", + "auto" + ], + "on_change": "set_adc_gain_I" + }, + "ADC_LEVEL_V_IN_15": { + "description": "ADC level", + "record_meta": true, + "initial": 3, + "value": [ + "0", + "1", + "2", + "auto" + ], + "on_change": "set_adc_gain_Vin" + }, + "VOLT_INITIAL": { + "description": "Initial Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MAX": { + "description": "Max Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "VOLT_MIN": { + "description": "Min Voltage of Scan", + "record_meta": true, + "initial": 25000, + "domain": [ + "VOLT_MAX" + ], + "value": { + "expression": "VALUE" + } + }, + "CYCLE_NUMBER": { + "description": "CV cycle number", + "record_meta": true, + "initial": 1, + "domain": [ + 65536 + ], + "value": { + "expression": "VALUE" + } + }, + "BLE_WRITE": { + "description": "send msg to elite", + "domain": { + "list": [ + "BLE_WRITE_MAX" + ] + }, + "initial": "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]", + "value": "VALUE" + }, + "BLE_READ": { + "description": "receive msg from elite", + "domain": "int" + } + }, + "instruction": { + "start": [ + { + "expression": "MODE", + "when": { + "*": "start_data" + } + } + ], + "start_data": [ + "data_format_cali", + "_notify(True)", + { + "expression": "MODE", + "when": { + "1": "set_adc_gain_I" + } + }, + { + "expression": "MODE", + "when": { + "1": "set_adc_gain_Vin" + } + }, + { + "expression": "MODE", + "when": { + "0": "curve_eis", + "1": "curve_cv3" + } + }, + { + "expression": "MODE", + "when": { + "0": "curve_eis_para2", + "1": "curve_cv3_para2" + } + }, + "_sync(True)", + "VIS_STI" + ], + "data_format": [ + "_data_format('EISZeroOne')", + { + "expression": "MODE", + "when": { + "0": "_disable_cache(True)", + "1": "_disable_cache(True)", + "*": "_disable_cache(False)" + } + } + ], + "data_format_cali": [ + "_data_format_cali('EISZeroOne')" + ], + "set_sample_rate": { + "type": "RIS", + "parameter": { + "va": "SAMPLE_RATE" + }, + "data": [ + "XE0;2B>va" + ] + }, + "set_adc_gain_I": { + "type": "RIS", + "data": [ + "XE1;X05;B>ADC_LEVEL_I_15" + ] + }, + "set_adc_gain_Vin": { + "type": "RIS", + "data": [ + "XE1;X06;B>ADC_LEVEL_V_IN_15" + ] + }, + "set_ctrl_highZ": { + "type": "RIS", + "data": [ + "XE1;X03;B>CTRL_HIGH_Z_15" + ] + }, + "curve_eis": { + "type": "RIS", + "parameter": { + "fa": "FREQ[0]", + "fb": "FREQ[1]", + "dp": "DELAY", + "dc": "DC_BIAS", + "am": "AC_AMP", + "an": "AVERAGE_NUM", + "rt": "RTIA", + "pp": "PPD", + "sp": "SCALE" + }, + "data": [ + "1XD1;1X01;4B>fa;4B>fb;2B>dp" + ] + }, + "curve_eis_para2": { + "type": "RIS", + "parameter": { + "fa": "FREQ[0]", + "fb": "FREQ[1]", + "dp": "DELAY", + "dc": "DC_BIAS", + "am": "AC_AMP", + "an": "AVERAGE_NUM", + "rt": "RTIA", + "pp": "PPD", + "sp": "SCALE" + }, + "data": [ + "1XD1;1X02;2B>dc;2B>am;B>an;B>rt;2B>pp;B>sp" + ] + }, + "curve_cv3": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "ve": "Scan_Rate", + "vf": "SAMPLE_RATE", + "cn": "CYCLE_NUMBER" + }, + "data": [ + "1XD2;1X01;2B>va;2B>vb;2B>vc;" + ] + }, + "curve_cv3_para2": { + "type": "RIS", + "parameter": { + "va": "VOLT_INITIAL", + "vb": "VOLT_MAX", + "vc": "VOLT_MIN", + "ve": "Scan_Rate", + "vf": "SAMPLE_RATE", + "cn": "CYCLE_NUMBER" + }, + "data": [ + "1XD2;1X02;4B>ve;2B>vf;2B>cn" + ] + }, + "VIS_CC_ZERO": [ + "_data_format('EISZeroOne')", + "_disable_cache(False)", + "_notify(True)", + "VIS_CC_ZERO", + "_sync(True)", + "VIS_STI" + ], + "ble_instru_send": [ + "ble_write", + "_cdr('20X>ADC_VALUE_I')" + ], + "ble_write": { + "type": "RIS", + "data": [ + "XFF;", + "1B>BLE_WRITE[0];1B>BLE_WRITE[1];1B>BLE_WRITE[2];1B>BLE_WRITE[3];", + "1B>BLE_WRITE[4];1B>BLE_WRITE[5];1B>BLE_WRITE[6];1B>BLE_WRITE[7];", + "1B>BLE_WRITE[8];1B>BLE_WRITE[9];1B>BLE_WRITE[10];1B>BLE_WRITE[11];", + "1B>BLE_WRITE[12];1B>BLE_WRITE[13];1B>BLE_WRITE[14];1B>BLE_WRITE[15];", + "1B>BLE_WRITE[16];" + ] + }, + "dev_version": [ + "CIS_VERSION", + "_cdr('20X>ADC_VALUE_I')" + ], + "dev_battery": [ + "CIS_VOLT", + "_cdr('20X>ADC_VALUE_I')" + ] + } +} \ No newline at end of file diff --git a/python/res/devlib/json/elite_zm_pulsefly.devlib.json b/python/res/devlib/json/ELITE_MEGAFLY_0_1.devlib.json similarity index 99% rename from python/res/devlib/json/elite_zm_pulsefly.devlib.json rename to python/res/devlib/json/ELITE_MEGAFLY_0_1.devlib.json index 07c9aa1..9d78a94 100644 --- a/python/res/devlib/json/elite_zm_pulsefly.devlib.json +++ b/python/res/devlib/json/ELITE_MEGAFLY_0_1.devlib.json @@ -1,12 +1,12 @@ { - "name": "EliteZM_pulsefly", + "name": "Elite_MEGAFLY1", "version": "1.2.30", "match_rule": { "local_name_pattern": "Elite.*", "major_product_number": 0, - "minor_product_number": 2, + "minor_product_number": 6, "major_version_number": 1, - "minor_version_number": 7 + "minor_version_number": 0 }, "constant": { "ADC_CHANNEL_NUMBER": [ diff --git a/python/res/devlib/json/elite_trigger.devlib.json b/python/res/devlib/json/ELITE_TRIG_0_1.devlib.json similarity index 99% rename from python/res/devlib/json/elite_trigger.devlib.json rename to python/res/devlib/json/ELITE_TRIG_0_1.devlib.json index f000cd6..5d0f79f 100644 --- a/python/res/devlib/json/elite_trigger.devlib.json +++ b/python/res/devlib/json/ELITE_TRIG_0_1.devlib.json @@ -1,5 +1,5 @@ { - "name": "Elite_TRI", + "name": "Elite_TRIG1", "version": "1.2.30", "match_rule": { "local_name_pattern": "Trigger.*", diff --git a/python/res/devlib/json/elite.devlib.json b/python/res/devlib/json/elite.devlib.json deleted file mode 100644 index a19a0a4..0000000 --- a/python/res/devlib/json/elite.devlib.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "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", - "initial": 0, - "domain": [ - "STI_CHANNEL_COUNT" - ], - "guard": "STI_PMOS != STI_NMOS" - }, - "STI_NMOS": { - "description": "stimulation NMOS channel", - "initial": "STI_CHANNEL_COUNT - 1", - "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;2bSAMPLE_RATE;1ba?;1bb?;1bc?;1bd?", - "4bSAMPLE_RATE;1ba?;1bb?;1bc?;1bd?", - "4bSTI_FREQ;1bCHOPPER;1bFAST_SETTLE;2b0", - "4b 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('TC4VAF2')" - ], - "start_recording0": { - "type": "RIS", - "foreach-parameter": { - "parameter": "CHANNEL", - "variable": [ - "a", - "b", - "c", - "d" - ] - }, - "data": [ - "3b110#recording header;2bSAMPLE_RATE;1ba?;1bb?;1bc?;1bd?", - "4bSAMPLE_RATE;1ba?;1bb?;1bc?;1bd?", - "4bSTI_FREQ;1bCHOPPER;1bFAST_SETTLE;2b0", - "4bADC_VALUE_I;4X>ADC_VALUE_V')" - ], - "start_data": [ - "data_format", - "_notify(True)", - "set_sample_rate", - { - "expression": "MODE", - "when": { - "0": "curve_iv", - "1": "curve_cv", - "3": "curve_zt", - "4": "curve_vt", - "5": "curve_it", - "7": "const_current" - } - }, - "_sync(True)", - "VIS_STI" - ], - "data_format": [ - "_data_format('I4V4Z4T4')", - { - "expression": "MODE", - "when": { - "0": "_disable_cache(True)", - "1": "_disable_cache(True)", - "*": "_disable_cache(False)" - } - } - ], - "curve_iv": { - "type": "RIS", - "parameter": { - "va": "(VOLT_ORIGIN) * 0x0001", - "vb": "(VOLT_FINAL) * 0x0001", - "dv": "(VOLT_STEP + 1) * 0x0001", - "dt": "STEP_TIME * 0x12" - }, - "data": [ - "1X10;2B>va;2B>vb;2B>dv;B>dt" - ] - }, - "curve_cv": { - "type": "RIS", - "parameter": { - "va": "(VOLT_ORIGIN) * 0x0001", - "vb": "(VOLT_FINAL) * 0x0001", - "dv": "(VOLT_STEP + 1) * 0x0001", - "dt": "STEP_TIME * 0x12", - "cn": "CYCLE_NUMBER+1" - }, - "data": [ - "1X20;2B>va;2B>vb;2B>dv;B>dt;B>cn" - ] - }, - "func_gen": { - "type": "RIS", - "parameter": { - "v": "(DAC_VOLT) * 0x0001" - }, - "data": [ - "X30;2B>v" - ] - }, - "curve_zt": { - "type": "RIS", - "data": [ - "X40" - ] - }, - "curve_vt": { - "type": "RIS", - "data": [ - "X50" - ] - }, - "curve_it": { - "type": "RIS", - "data": [ - "X60" - ] - }, - "adc_test0": { - "type": "RIS", - "data": [ - "X90;B>ADC_LEVEL;B>ADC_CHANNEL" - ] - }, - "set_sample_rate": { - "type": "RIS", - "data": [ - "X70;B>SAMPLE_RATE" - ] - }, - "set_adc_gain": { - "type": "RIS", - "data": [ - "X80;B>ADC_LEVEL" - ] - }, - "set_Resister_level": { - "type": "RIS", - "data": [ - "XE0;B>Resister_LEVEL" - ] - }, - "const_current": { - "type": "RIS", - "data": [ - "XD0;B>Charge;2X>Const_Current_VStop;4X>Const_Current_value" - ] - } - } -} - - diff --git a/python/res/devlib/json/elite_zm_LargeCurrent.devlib.json b/python/res/devlib/json/elite_zm_LargeCurrent.devlib.json deleted file mode 100644 index 4873db8..0000000 --- a/python/res/devlib/json/elite_zm_LargeCurrent.devlib.json +++ /dev/null @@ -1,320 +0,0 @@ -{ - "name": "EliteZML", - "version": "1.2.30", - "match_rule": { - "local_name_pattern": "Elite-ZM.+", - "major_product_number": 0, - "minor_product_number": 2, - "major_version_number": 1, - "minor_version_number": 4 - }, - "constant": { - "ADC_CHANNEL_NUMBER": [ - 12, - 13, - 14, - 15 - ], - "VOLT_MAX": 65536, - "STEP_MAX": 100, - "Const_Current_Range": 3000001 - }, - "parameters": { - "CHANNEL": { - "description": "record channels", - "record_meta": true, - "domain": "property", - "value": "[0, 1, 2]" - }, - "CHANNEL_LABEL": { - "description": "channel label", - "record_meta": true, - "domain": "property", - "value": "['current', 'voltage', 'impedance']" - }, - "SAMPLE_RATE": { - "description": "data sampling rate", - "record_meta": true, - "value": [ - 100, - 10, - 5, - 1, - 0.1, - 0.01 - ], - "on_change": "set_sample_rate" - }, - "AMP_GAIN": { - "description": "amp gain", - "record_meta": true, - "domain": "constant", - "value": 1 - }, - "MODE": { - "description": "working mode", - "record_meta": true, - "value": [ - "I-V Curve", - "Cyclic Voltammetry", - "Function Generator", - "R-T Curve", - "V-T Curve", - "I-T Curve", - "ADC test", - "Constant Current" - ] - }, - "VOLT_ORIGIN": { - "description": "Origin Voltage of Scan", - "record_meta": true, - "initial": 25000, - "domain": [ - "VOLT_MAX" - ], - "value": { - "expression": "(VALUE + 1) * 0x0001" - } - }, - "VOLT_FINAL": { - "description": "The last Voltage of Scan", - "record_meta": true, - "initial": 25000, - "domain": [ - "VOLT_MAX" - ], - "value": { - "expression": " (VALUE + 1) * 0x0001" - } - }, - "VOLT_STEP": { - "description": "Voltage Step", - "record_meta": true, - "initial": 0, - "domain": [ - "STEP_MAX" - ], - "value": { - "expression": "(VALUE + 1) * 0x0001" - } - }, - "STEP_TIME": { - "description": "How much time between two step", - "record_meta": true, - "initial": 1, - "value": [ - 0.5, - 1.0, - 2.0 - ] - }, - "CYCLE_NUMBER": { - "description": "CV cycle number", - "record_meta": true, - "domain": [ - 200 - ], - "value": { - "expression": "VALUE + 1" - } - }, - "DAC_VOLT": { - "description": "DAC output Voltage", - "record_meta": true, - "domain": [ - 65536 - ] - }, - "ADC_CHANNEL": { - "description": "read ADC data", - "record_meta": true, - "value": [ - "ANA0", - "ANA1", - "ANA2", - "ANA3" - ] - }, - "ADC_LEVEL": { - "description": "ADC level", - "record_meta": true, - "value": [ - "200k", - "10k", - "200R", - "auto" - ], - "on_change": "set_adc_gain" - }, - "Resister_LEVEL": { - "description": "Resister_LEVEL", - "record_meta": true, - "value": [ - "Small", - "Middle", - "Large", - "Auto" - ], - "on_change": "set_Resister_level" - }, - "ADC_VALUE_V": { - "description": "ADC value voltage value", - "domain": "int" - }, - "ADC_VALUE_I": { - "description": "ADC value current value", - "domain": "int" - }, - "Const_Current_unit": { - "description": "Constant Current unit Setting", - "value": [ - "uA", - "mA" - ] - }, - "Const_Current_value": { - "description": "Constant Current value Setting", - "initial": 1500000, - "domain": [ - "Const_Current_Range" - ], - "value": { - "expression": "(VALUE) * 0x00000001" - } - } - }, - "instruction": { - "start": [ - { - "expression": "MODE", - "when": { - "2": "start_fun_gen", - "6": "adc_test", - "*": "start_data" - } - } - ], - "start_fun_gen": [ - "data_format", - "func_gen", - "VIS_STI" - ], - "adc_test": [ - "adc_test0", - "_cdr('1X;4X>ADC_VALUE_I;4X>ADC_VALUE_V')" - ], - "start_data": [ - "data_format", - "_notify(True)", - "set_sample_rate", - { - "expression": "MODE", - "when": { - "0": "curve_iv", - "1": "curve_cv", - "3": "curve_zt", - "4": "curve_vt", - "5": "curve_it", - "7": "const_current" - } - }, - "_sync(True)", - "VIS_STI" - ], - "data_format": [ - "_data_format('I4V4Z4T4')", - { - "expression": "MODE", - "when": { - "0": "_disable_cache(True)", - "1": "_disable_cache(True)", - "*": "_disable_cache(False)" - } - } - ], - "curve_iv": { - "type": "RIS", - "parameter": { - "va": "(VOLT_ORIGIN + 1) * 0x0001", - "vb": "(VOLT_FINAL + 1) * 0x0001", - "dv": "(VOLT_STEP + 1) * 0x0001", - "dt": "STEP_TIME * 0x12" - }, - "data": [ - "1X10;2B>va;2B>vb;2B>dv;B>dt" - ] - }, - "curve_cv": { - "type": "RIS", - "parameter": { - "va": "(VOLT_ORIGIN + 1) * 0x0001", - "vb": "(VOLT_FINAL + 1) * 0x0001", - "dv": "(VOLT_STEP + 1) * 0x0001", - "dt": "STEP_TIME * 0x12", - "cn": "CYCLE_NUMBER+1" - }, - "data": [ - "1X20;2B>va;2B>vb;2B>dv;B>dt;B>CYCLE_NUMBER" - ] - }, - "func_gen": { - "type": "RIS", - "parameter": { - "v": "(DAC_VOLT) * 0x0001" - }, - "data": [ - "X30;2B>v" - ] - }, - "curve_zt": { - "type": "RIS", - "data": [ - "X40" - ] - }, - "curve_vt": { - "type": "RIS", - "data": [ - "X50" - ] - }, - "curve_it": { - "type": "RIS", - "data": [ - "X60" - ] - }, - "adc_test0": { - "type": "RIS", - "data": [ - "X90;B>ADC_LEVEL;B>ADC_CHANNEL" - ] - }, - "set_sample_rate": { - "type": "RIS", - "data": [ - "X70;B>SAMPLE_RATE" - ] - }, - "set_adc_gain": { - "type": "RIS", - "data": [ - "X80;B>ADC_LEVEL" - ] - }, - "set_Resister_level": { - "type": "RIS", - "data": [ - "XE0;B>Resister_LEVEL" - ] - }, - "const_current": { - "type": "RIS", - "data": [ - "XD0;4X>Const_Current_value" - ] - } - } -} - - diff --git a/python/res/devlib/json/elite_zm_SmallCurrent.devlib.json b/python/res/devlib/json/elite_zm_SmallCurrent.devlib.json deleted file mode 100644 index 9b9c07e..0000000 --- a/python/res/devlib/json/elite_zm_SmallCurrent.devlib.json +++ /dev/null @@ -1,320 +0,0 @@ -{ - "name": "EliteZMS", - "version": "1.2.30", - "match_rule": { - "local_name_pattern": "Elite-ZM.+", - "major_product_number": 0, - "minor_product_number": 2, - "major_version_number": 1, - "minor_version_number": 3 - }, - "constant": { - "ADC_CHANNEL_NUMBER": [ - 12, - 13, - 14, - 15 - ], - "VOLT_MAX": 65536, - "STEP_MAX": 100, - "Const_Current_Range": 3000001 - }, - "parameters": { - "CHANNEL": { - "description": "record channels", - "record_meta": true, - "domain": "property", - "value": "[0, 1, 2]" - }, - "CHANNEL_LABEL": { - "description": "channel label", - "record_meta": true, - "domain": "property", - "value": "['current', 'voltage', 'impedance']" - }, - "SAMPLE_RATE": { - "description": "data sampling rate", - "record_meta": true, - "value": [ - 100, - 10, - 5, - 1, - 0.1, - 0.01 - ], - "on_change": "set_sample_rate" - }, - "AMP_GAIN": { - "description": "amp gain", - "record_meta": true, - "domain": "constant", - "value": 1 - }, - "MODE": { - "description": "working mode", - "record_meta": true, - "value": [ - "I-V Curve", - "Cyclic Voltammetry", - "Function Generator", - "R-T Curve", - "V-T Curve", - "I-T Curve", - "ADC test", - "Constant Current" - ] - }, - "VOLT_ORIGIN": { - "description": "Origin Voltage of Scan", - "record_meta": true, - "initial": 25000, - "domain": [ - "VOLT_MAX" - ], - "value": { - "expression": "(VALUE + 1) * 0x0001" - } - }, - "VOLT_FINAL": { - "description": "The last Voltage of Scan", - "record_meta": true, - "initial": 25000, - "domain": [ - "VOLT_MAX" - ], - "value": { - "expression": " (VALUE + 1) * 0x0001" - } - }, - "VOLT_STEP": { - "description": "Voltage Step", - "record_meta": true, - "initial": 0, - "domain": [ - "STEP_MAX" - ], - "value": { - "expression": "(VALUE + 1) * 0x0001" - } - }, - "STEP_TIME": { - "description": "How much time between two step", - "record_meta": true, - "initial": 1, - "value": [ - 0.5, - 1.0, - 2.0 - ] - }, - "CYCLE_NUMBER": { - "description": "CV cycle number", - "record_meta": true, - "domain": [ - 200 - ], - "value": { - "expression": "VALUE + 1" - } - }, - "DAC_VOLT": { - "description": "DAC output Voltage", - "record_meta": true, - "domain": [ - 65536 - ] - }, - "ADC_CHANNEL": { - "description": "read ADC data", - "record_meta": true, - "value": [ - "ANA0", - "ANA1", - "ANA2", - "ANA3" - ] - }, - "ADC_LEVEL": { - "description": "ADC level", - "record_meta": true, - "value": [ - "200k", - "10k", - "200R", - "auto" - ], - "on_change": "set_adc_gain" - }, - "Resister_LEVEL": { - "description": "Resister_LEVEL", - "record_meta": true, - "value": [ - "Small", - "Middle", - "Large", - "Auto" - ], - "on_change": "set_Resister_level" - }, - "ADC_VALUE_V": { - "description": "ADC value voltage value", - "domain": "int" - }, - "ADC_VALUE_I": { - "description": "ADC value current value", - "domain": "int" - }, - "Const_Current_unit": { - "description": "Constant Current unit Setting", - "value": [ - "uA", - "mA" - ] - }, - "Const_Current_value": { - "description": "Constant Current value Setting", - "initial": 1500000, - "domain": [ - "Const_Current_Range" - ], - "value": { - "expression": "(VALUE) * 0x00000001" - } - } - }, - "instruction": { - "start": [ - { - "expression": "MODE", - "when": { - "2": "start_fun_gen", - "6": "adc_test", - "*": "start_data" - } - } - ], - "start_fun_gen": [ - "data_format", - "func_gen", - "VIS_STI" - ], - "adc_test": [ - "adc_test0", - "_cdr('1X;4X>ADC_VALUE_I;4X>ADC_VALUE_V')" - ], - "start_data": [ - "data_format", - "_notify(True)", - "set_sample_rate", - { - "expression": "MODE", - "when": { - "0": "curve_iv", - "1": "curve_cv", - "3": "curve_zt", - "4": "curve_vt", - "5": "curve_it", - "7": "const_current" - } - }, - "_sync(True)", - "VIS_STI" - ], - "data_format": [ - "_data_format('I4V4Z4T4')", - { - "expression": "MODE", - "when": { - "0": "_disable_cache(True)", - "1": "_disable_cache(True)", - "*": "_disable_cache(False)" - } - } - ], - "curve_iv": { - "type": "RIS", - "parameter": { - "va": "(VOLT_ORIGIN + 1) * 0x0001", - "vb": "(VOLT_FINAL + 1) * 0x0001", - "dv": "(VOLT_STEP + 1) * 0x0001", - "dt": "STEP_TIME * 0x12" - }, - "data": [ - "1X10;2B>va;2B>vb;2B>dv;B>dt" - ] - }, - "curve_cv": { - "type": "RIS", - "parameter": { - "va": "(VOLT_ORIGIN + 1) * 0x0001", - "vb": "(VOLT_FINAL + 1) * 0x0001", - "dv": "(VOLT_STEP + 1) * 0x0001", - "dt": "STEP_TIME * 0x12", - "cn": "CYCLE_NUMBER+1" - }, - "data": [ - "1X20;2B>va;2B>vb;2B>dv;B>dt;B>CYCLE_NUMBER" - ] - }, - "func_gen": { - "type": "RIS", - "parameter": { - "v": "(DAC_VOLT) * 0x0001" - }, - "data": [ - "X30;2B>v" - ] - }, - "curve_zt": { - "type": "RIS", - "data": [ - "X40" - ] - }, - "curve_vt": { - "type": "RIS", - "data": [ - "X50" - ] - }, - "curve_it": { - "type": "RIS", - "data": [ - "X60" - ] - }, - "adc_test0": { - "type": "RIS", - "data": [ - "X90;B>ADC_LEVEL;B>ADC_CHANNEL" - ] - }, - "set_sample_rate": { - "type": "RIS", - "data": [ - "X70;B>SAMPLE_RATE" - ] - }, - "set_adc_gain": { - "type": "RIS", - "data": [ - "X80;B>ADC_LEVEL" - ] - }, - "set_Resister_level": { - "type": "RIS", - "data": [ - "XE0;B>Resister_LEVEL" - ] - }, - "const_current": { - "type": "RIS", - "data": [ - "XD0;4X>Const_Current_value" - ] - } - } -} - -