diff --git a/python/biopro/devlib/data.py b/python/biopro/devlib/data.py index 56a87b9..49e9f01 100644 --- a/python/biopro/devlib/data.py +++ b/python/biopro/devlib/data.py @@ -1586,12 +1586,7 @@ class EISZeroOneDataDecoder(RecDataDecoder): else: impedance = 0 - if (real > 0): - raw_phase = math.atan(img / real) * 180 / math.pi - elif (real == 0): - raw_phase = 90 - else: - raw_phase = math.atan(img / real) * 180 / math.pi + 180 + raw_phase = math.atan2(img , real) * 180 / math.pi if (freq >= 1000000): # 10000 Hz fre_idx = 0 @@ -1602,16 +1597,21 @@ class EISZeroOneDataDecoder(RecDataDecoder): elif (freq >= 1): # 0.01 Hz fre_idx = 3 - ideal_raw_phase = phase_coeff[fre_idx][gain] /1e10 * freq + phase_offset[fre_idx][gain] / 1e6 - + ideal_raw_phase = phase_coeff[gain][fre_idx] /1e10 * freq + phase_offset[gain][fre_idx] / 1e6 phase = raw_phase - ideal_raw_phase + phase = phase % 180 if phase % 180<=90 else phase % 180-180 - if (self._first_phase_flag): - self._last_phase = phase - self._first_phase_flag = 0 - elif (abs(phase - self._last_phase) >= 90): - phase -= 360 - self._last_phase = phase + # last_phase_to90 = self._last_phase % 180 if self._last_phase % 180<=90 else self._last_phase % 180-180 + # diff = phase - last_phase_to90 + + # if (self._first_phase_flag): + # # self._last_phase = phase + # self._first_phase_flag = 0 + # elif (abs(diff) >= 90): + # phase = self._last_phase + diff + (180 if diff<0 else-180) + # else: + # phase = self._last_phase + diff + # self._last_phase = phase imag_after_cal = impedance * math.sin(round(phase) * math.pi / 180) real_after_cal = impedance * math.cos(round(phase) * math.pi / 180) diff --git a/python/res/devlib/json/Elite_EIS_1.0.devlib.json b/python/res/devlib/json/Elite_EIS_1.0.devlib.json index 36c7fb3..7c7fabc 100644 --- a/python/res/devlib/json/Elite_EIS_1.0.devlib.json +++ b/python/res/devlib/json/Elite_EIS_1.0.devlib.json @@ -70,7 +70,7 @@ "description": "DPV current recording period start", "record_meta": true, "initial": [ - 13422819, + 13333333, 7 ], "domain": { diff --git a/python/res/devlib/json/Elite_EIS_1.1.devlib.json b/python/res/devlib/json/Elite_EIS_1.1.devlib.json index d3f0a5a..23c0849 100644 --- a/python/res/devlib/json/Elite_EIS_1.1.devlib.json +++ b/python/res/devlib/json/Elite_EIS_1.1.devlib.json @@ -63,6 +63,7 @@ "EIS CURVE", "Cyclic Voltammetry", "Chronoamperometric", + "V-T Graph", "Dev Mode" ] }, @@ -277,6 +278,17 @@ "expression": "VALUE" } }, + "MEASURE_VIN_RANGE": { + "description": "measure range of Vin", + "record_meta": true, + "initial": 0, + "value": [ + "0", + "1", + "2", + "auto" + ] + }, "BLE_WRITE": { "description": "send msg to elite", "domain": { @@ -308,14 +320,16 @@ "expression": "MODE", "when": { "1": "set_adc_gain_I", - "2": "set_adc_gain_I" + "2": "set_adc_gain_I", + "3": "set_adc_gain_I" } }, { "expression": "MODE", "when": { "1": "set_adc_gain_Vin", - "2": "set_adc_gain_Vin" + "2": "set_adc_gain_Vin", + "3": "set_adc_gain_Vin" } }, { @@ -323,7 +337,8 @@ "when": { "0": "curve_eis", "1": "curve_cv3", - "2": "curve_const_vscan" + "2": "curve_const_vscan", + "3": "curve_vt" } }, { @@ -456,6 +471,23 @@ "2B>pe" ] }, + "curve_vt": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE", + "va": "MEASURE_VIN_RANGE" + }, + "data": [ + "X05;", + "4b>pa;4b>pb;", + "4b>0;4b>pd;", + "2B>pe;", + "1B>va" + ] + }, "ble_instru_send": [ "ble_write", "_cdr('20X>ADC_VALUE_I')" diff --git a/python/res/devlib/json/Elite_EIS_MINI_1.0.devlib.json b/python/res/devlib/json/Elite_EIS_MINI_1.0.devlib.json index 4c4fa31..006988c 100644 --- a/python/res/devlib/json/Elite_EIS_MINI_1.0.devlib.json +++ b/python/res/devlib/json/Elite_EIS_MINI_1.0.devlib.json @@ -63,6 +63,7 @@ "EIS CURVE", "Cyclic Voltammetry", "Chronoamperometric", + "V-T Graph", "Dev Mode" ] }, @@ -70,7 +71,7 @@ "description": "DPV current recording period start", "record_meta": true, "initial": [ - 13422819, + 13333333, 7 ], "domain": { @@ -277,6 +278,17 @@ "expression": "VALUE" } }, + "MEASURE_VIN_RANGE": { + "description": "measure range of Vin", + "record_meta": true, + "initial": 0, + "value": [ + "0", + "1", + "2", + "auto" + ] + }, "BLE_WRITE": { "description": "send msg to elite", "domain": { @@ -308,14 +320,16 @@ "expression": "MODE", "when": { "1": "set_adc_gain_I", - "2": "set_adc_gain_I" + "2": "set_adc_gain_I", + "3": "set_adc_gain_I" } }, { "expression": "MODE", "when": { "1": "set_adc_gain_Vin", - "2": "set_adc_gain_Vin" + "2": "set_adc_gain_Vin", + "3": "set_adc_gain_Vin" } }, { @@ -323,7 +337,8 @@ "when": { "0": "curve_eis", "1": "curve_cv3", - "2": "curve_const_vscan" + "2": "curve_const_vscan", + "3": "curve_vt" } }, { @@ -456,6 +471,23 @@ "2B>pe" ] }, + "curve_vt": { + "type": "RIS", + "parameter": { + "pa": "ADC_LEVEL_I_15", + "pb": "ADC_LEVEL_V_IN_15", + "pd": "CTRL_HIGH_Z_15", + "pe": "SAMPLE_RATE", + "va": "MEASURE_VIN_RANGE" + }, + "data": [ + "X05;", + "4b>pa;4b>pb;", + "4b>0;4b>pd;", + "2B>pe;", + "1B>va" + ] + }, "ble_instru_send": [ "ble_write", "_cdr('20X>ADC_VALUE_I')"