Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 26e02f2d40 | |||
| ead98fe8da | |||
| dc4e1bd233 | |||
| 42025d2243 | |||
| b341dbf073 | |||
| 20f6f126b0 | |||
| bf4a00db1a | |||
| 0b7a650b95 | |||
| 062613c681 |
@@ -1586,6 +1586,9 @@ class ControlAPI(metaclass=Router):
|
|||||||
def stop_project(self, project) -> bool:
|
def stop_project(self, project) -> bool:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
def show_device_data(self, device) -> bool:
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
# noinspection PyAbstractClass
|
# noinspection PyAbstractClass
|
||||||
class ControlClient(SocketClient, ControlAPI, metaclass=SocketClientMacro(ControlAPI)):
|
class ControlClient(SocketClient, ControlAPI, metaclass=SocketClientMacro(ControlAPI)):
|
||||||
"""Connect to controller server through the socket.
|
"""Connect to controller server through the socket.
|
||||||
|
|||||||
@@ -131,6 +131,14 @@ class DataAPI(metaclass=abc.ABCMeta):
|
|||||||
""""""
|
""""""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@abc.abstractmethod
|
||||||
|
def show_data(self, device: Union[int, Device]):
|
||||||
|
"""show device data
|
||||||
|
|
||||||
|
:param device: device ID
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyAbstractClass
|
# noinspection PyAbstractClass
|
||||||
class DataClient(SocketClient, DataAPI, metaclass=SocketClientMacro(DataAPI)):
|
class DataClient(SocketClient, DataAPI, metaclass=SocketClientMacro(DataAPI)):
|
||||||
@@ -192,6 +200,9 @@ class DataClient(SocketClient, DataAPI, metaclass=SocketClientMacro(DataAPI)):
|
|||||||
def stop_sync(self, *device: Union[int, Device]):
|
def stop_sync(self, *device: Union[int, Device]):
|
||||||
self.send_command('stop_sync', *self._to_device_id(*device))
|
self.send_command('stop_sync', *self._to_device_id(*device))
|
||||||
|
|
||||||
|
def show_data(self, device: int):
|
||||||
|
self.send_command('show_data', device)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _to_device_id(*device: Union[int, Device]) -> Tuple[int, ...]:
|
def _to_device_id(*device: Union[int, Device]) -> Tuple[int, ...]:
|
||||||
return tuple(map(lambda d: d.device_id if isinstance(d, Device) else d, device))
|
return tuple(map(lambda d: d.device_id if isinstance(d, Device) else d, device))
|
||||||
|
|||||||
@@ -853,7 +853,7 @@ class I4V4Z4T4DataDecoder(RecDataDecoder):
|
|||||||
|
|
||||||
__slots__ = ('_message', '_cycle_number', '_start_return_data', '_time_stamp',
|
__slots__ = ('_message', '_cycle_number', '_start_return_data', '_time_stamp',
|
||||||
'_total_time_stamp', '_mode', '_cycle_start_time',
|
'_total_time_stamp', '_mode', '_cycle_start_time',
|
||||||
'_mode_stop')
|
'_mode_stop', '_show_data')
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -868,6 +868,8 @@ class I4V4Z4T4DataDecoder(RecDataDecoder):
|
|||||||
self._mode = 0
|
self._mode = 0
|
||||||
self._cycle_start_time = []
|
self._cycle_start_time = []
|
||||||
|
|
||||||
|
self._show_data = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self) -> str:
|
def name(self) -> str:
|
||||||
return self.NAME
|
return self.NAME
|
||||||
@@ -885,12 +887,8 @@ class I4V4Z4T4DataDecoder(RecDataDecoder):
|
|||||||
mem_cnt = data[1]
|
mem_cnt = data[1]
|
||||||
time_stamp: float = struct.unpack('<I', data[4:8])[0] # unit: ms 0x18030000
|
time_stamp: float = struct.unpack('<I', data[4:8])[0] # unit: ms 0x18030000
|
||||||
current = struct.unpack('<i', data[8:12])[0] # unit: nA
|
current = struct.unpack('<i', data[8:12])[0] # unit: nA
|
||||||
ch2 = struct.unpack('<i', data[12:16])[0] # unit: uV
|
voltage = struct.unpack('<i', data[12:16])[0] # unit: uV
|
||||||
impedance = struct.unpack('<i', data[16:20])[0] # unit: mOm
|
impedance = struct.unpack('<i', data[16:20])[0] # unit: mOm
|
||||||
if self._mode == 16:
|
|
||||||
voltage = impedance - ch2
|
|
||||||
else:
|
|
||||||
voltage = ch2
|
|
||||||
|
|
||||||
cycle_number = struct.unpack('<H', data[20:22])[0]
|
cycle_number = struct.unpack('<H', data[20:22])[0]
|
||||||
finish_mode_falg = data[22]
|
finish_mode_falg = data[22]
|
||||||
@@ -919,9 +917,10 @@ class I4V4Z4T4DataDecoder(RecDataDecoder):
|
|||||||
print("error timeStamp full data:", list(data), datetime.now(), '\n')
|
print("error timeStamp full data:", list(data), datetime.now(), '\n')
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
# print('|', time_stamp, '|', delta, '|', int(time_stamp * 1000 / 2),
|
if self._show_data:
|
||||||
# '|', current, '|', voltage, '|', impedance,
|
print('|', time_stamp, '|', delta, '|', int(time_stamp * 1000 / 2),
|
||||||
# '|', cycle_number, '|', finishMode, '@', str(self.device))
|
'|', current, '|', voltage, '|', impedance,
|
||||||
|
'|', cycle_number, '|', finishMode, '@', str(self.device))
|
||||||
|
|
||||||
# print('|', '{:10}'.format(time_stamp),
|
# print('|', '{:10}'.format(time_stamp),
|
||||||
# '|', '{:4}'.format(delta),
|
# '|', '{:4}'.format(delta),
|
||||||
|
|||||||
@@ -651,8 +651,6 @@ class DeviceInstruction:
|
|||||||
VIS_DEVICE_DONE = 0x20
|
VIS_DEVICE_DONE = 0x20
|
||||||
"""identify device done"""
|
"""identify device done"""
|
||||||
|
|
||||||
VIS_CC_ZERO = 0x40
|
|
||||||
|
|
||||||
VIS_STI = 0xC0
|
VIS_STI = 0xC0
|
||||||
"""stimulation on virtual instruction"""
|
"""stimulation on virtual instruction"""
|
||||||
|
|
||||||
@@ -726,7 +724,6 @@ class DeviceCommonInstruction:
|
|||||||
STOP_STIMULATE = "stop_stimulate"
|
STOP_STIMULATE = "stop_stimulate"
|
||||||
VIS_DEVICE_DETECT = 'VIS_DEVICE_DETECT'
|
VIS_DEVICE_DETECT = 'VIS_DEVICE_DETECT'
|
||||||
VIS_DEVICE_DONE = 'VIS_DEVICE_DONE'
|
VIS_DEVICE_DONE = 'VIS_DEVICE_DONE'
|
||||||
VIS_CC_ZERO = 'VIS_CC_ZERO'
|
|
||||||
CIS_VOLT = 'CIS_VOLT'
|
CIS_VOLT = 'CIS_VOLT'
|
||||||
CIS_VERSION = 'CIS_VERSION'
|
CIS_VERSION = 'CIS_VERSION'
|
||||||
|
|
||||||
@@ -750,8 +747,6 @@ class DeviceCommonInstruction:
|
|||||||
return 'VIS_DEVICE_DETECT',
|
return 'VIS_DEVICE_DETECT',
|
||||||
elif instruction == cls.VIS_DEVICE_DONE:
|
elif instruction == cls.VIS_DEVICE_DONE:
|
||||||
return 'VIS_DEVICE_DONE',
|
return 'VIS_DEVICE_DONE',
|
||||||
elif instruction == cls.VIS_CC_ZERO:
|
|
||||||
return 'VIS_CC_ZERO',
|
|
||||||
elif instruction == cls.RECORD:
|
elif instruction == cls.RECORD:
|
||||||
return 'VIS_STARTR',
|
return 'VIS_STARTR',
|
||||||
elif instruction == cls.RECORD_ALL:
|
elif instruction == cls.RECORD_ALL:
|
||||||
|
|||||||
@@ -211,6 +211,9 @@ class Project(threading.Thread):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def as_json(self):
|
def as_json(self):
|
||||||
|
running_task = None
|
||||||
|
if self._task_manager.running_task is not None:
|
||||||
|
running_task = self._task_manager.running_task.as_json()
|
||||||
data = {
|
data = {
|
||||||
'id': self._id,
|
'id': self._id,
|
||||||
'name': self._name,
|
'name': self._name,
|
||||||
@@ -219,6 +222,6 @@ class Project(threading.Thread):
|
|||||||
'status': self._status,
|
'status': self._status,
|
||||||
'device': self._device,
|
'device': self._device,
|
||||||
'task': self.task_list,
|
'task': self.task_list,
|
||||||
'running_task': self._task_manager.running_task.as_json()
|
'running_task': running_task
|
||||||
}
|
}
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -1131,14 +1131,17 @@ class RecordingFileWriter:
|
|||||||
self._splitting_size = 0
|
self._splitting_size = 0
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def close(self):
|
def close(self, mqtt_thread):
|
||||||
# if self._recording_file is not None:
|
|
||||||
# self._recording_file.close()
|
|
||||||
# self._recording_file = None
|
|
||||||
print('close1')
|
|
||||||
self._close = True
|
self._close = True
|
||||||
if len(self._recording_file_dict) > 0:
|
if len(self._recording_file_dict) > 0:
|
||||||
for ch in self._data_db.keys():
|
for ch in self._data_db.keys():
|
||||||
|
if len(self._data_rl[ch]) > 0:
|
||||||
|
self._data_rl[ch].append(str(int(self._time_now)))
|
||||||
|
mes = ' '.join(self._data_rl[ch])
|
||||||
|
mqtt_thread[ch].on_message(mes)
|
||||||
|
self._data_rl[ch].clear()
|
||||||
|
self._send_data[ch] = False
|
||||||
|
|
||||||
if self._recording_file_dict[ch]._status:
|
if self._recording_file_dict[ch]._status:
|
||||||
_data = ' '.join(self._data_db[ch])
|
_data = ' '.join(self._data_db[ch])
|
||||||
self._raw_save['data'][ch] = _data
|
self._raw_save['data'][ch] = _data
|
||||||
|
|||||||
@@ -700,6 +700,9 @@ class DataServer(SocketServer, DataAPI):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def show_data(self, device):
|
||||||
|
self._configurations[device].put_rec_queue('show_data')
|
||||||
|
|
||||||
class DataRuntime(metaclass=abc.ABCMeta):
|
class DataRuntime(metaclass=abc.ABCMeta):
|
||||||
__slots__ = ('_server', '_device', '_meta_file', '_data_format',
|
__slots__ = ('_server', '_device', '_meta_file', '_data_format',
|
||||||
'_sync_started', 'sync_file_request', '_writer')
|
'_sync_started', 'sync_file_request', '_writer')
|
||||||
|
|||||||
@@ -1340,6 +1340,13 @@ class ControlServer(SocketServer, ControlServerAPI):
|
|||||||
# TODO write options files
|
# TODO write options files
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@logging_info
|
||||||
|
def show_device_data(self, device: int):
|
||||||
|
client = self.data_server.client()
|
||||||
|
if client is not None:
|
||||||
|
with client:
|
||||||
|
client.show_data(device)
|
||||||
|
|
||||||
class _RandomCrashThread(ServerThread):
|
class _RandomCrashThread(ServerThread):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__('Crash')
|
super().__init__('Crash')
|
||||||
|
|||||||
@@ -185,6 +185,8 @@ class RecordingProcess(Process):
|
|||||||
self.final_write()
|
self.final_write()
|
||||||
self.is_closed = True
|
self.is_closed = True
|
||||||
return False
|
return False
|
||||||
|
elif q == 'show_data':
|
||||||
|
self._decoder._show_data = not self._decoder._show_data
|
||||||
else:
|
else:
|
||||||
self.rec_update()
|
self.rec_update()
|
||||||
self.sync_data(q)
|
self.sync_data(q)
|
||||||
@@ -229,6 +231,24 @@ class RecordingProcess(Process):
|
|||||||
# except:
|
# except:
|
||||||
# pass
|
# pass
|
||||||
|
|
||||||
|
if result is not None:
|
||||||
|
##
|
||||||
|
if len(self._mqtt_send_data_ch_level) == 0:
|
||||||
|
for ch in result.channels():
|
||||||
|
self._mqtt_send_data_ch_level[ch] = MqttDataMessageHandler(self._mqtt_thread, 'data_server/device_data_stream/' + str(result.device) + '/' + str(ch) )
|
||||||
|
ret.append(result)
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# write back
|
||||||
|
# ctime1 = time()
|
||||||
|
if self._writer is not None and len(ret) > 0:
|
||||||
|
if len(self._writer.channel_list) == 0:
|
||||||
|
self._writer.channels_update(ret[0].channels())
|
||||||
|
self._writer.write(ret, self._mqtt_send_data_ch_level)
|
||||||
|
# print('write time: ', time() - ctime1)
|
||||||
|
# print(ret)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
time_duration = self._meta_file.configuration.get_parameter('TIME_DURATION')
|
time_duration = self._meta_file.configuration.get_parameter('TIME_DURATION')
|
||||||
if time_duration and time_duration is not 0 and time() - self._start_time >= time_duration:
|
if time_duration and time_duration is not 0 and time() - self._start_time >= time_duration:
|
||||||
@@ -248,25 +268,6 @@ class RecordingProcess(Process):
|
|||||||
except RuntimeError as e:
|
except RuntimeError as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
|
||||||
if result is not None:
|
|
||||||
##
|
|
||||||
if len(self._mqtt_send_data_ch_level) == 0:
|
|
||||||
for ch in result.channels():
|
|
||||||
self._mqtt_send_data_ch_level[ch] = MqttDataMessageHandler(self._mqtt_thread, 'data_server/device_data_stream/' + str(result.device) + '/' + str(ch) )
|
|
||||||
ret.append(result)
|
|
||||||
else:
|
|
||||||
continue
|
|
||||||
|
|
||||||
# write back
|
|
||||||
# ctime1 = time()
|
|
||||||
if self._writer is not None and len(ret) > 0:
|
|
||||||
if len(self._writer.channel_list) == 0:
|
|
||||||
self._writer.channels_update(ret[0].channels())
|
|
||||||
self._writer.write(ret, self._mqtt_send_data_ch_level)
|
|
||||||
# print('write time: ', time() - ctime1)
|
|
||||||
|
|
||||||
# print(ret)
|
|
||||||
|
|
||||||
del ret
|
del ret
|
||||||
del data
|
del data
|
||||||
return
|
return
|
||||||
@@ -607,7 +608,7 @@ class RecordingProcess(Process):
|
|||||||
|
|
||||||
def final_write(self):
|
def final_write(self):
|
||||||
if self._writer is not None:
|
if self._writer is not None:
|
||||||
return self._writer.close()
|
return self._writer.close(self._mqtt_send_data_ch_level)
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
@@ -1633,16 +1633,6 @@
|
|||||||
"dpv_engineering_mode_advanced": [
|
"dpv_engineering_mode_advanced": [
|
||||||
"dpv_advanced_mode"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -492,14 +492,6 @@
|
|||||||
"1XC0;1X02;4B>ve;2B>vf;4B>vg;B>cn"
|
"1XC0;1X02;4B>ve;2B>vf;4B>vg;B>cn"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"VIS_CC_ZERO": [
|
|
||||||
"_data_format('I4V4Z4T4')",
|
|
||||||
"_disable_cache(False)",
|
|
||||||
"_notify(True)",
|
|
||||||
"VIS_CC_ZERO",
|
|
||||||
"_sync(True)",
|
|
||||||
"VIS_STI"
|
|
||||||
],
|
|
||||||
"curve_cv3_high_cycle": {
|
"curve_cv3_high_cycle": {
|
||||||
"type": "RIS",
|
"type": "RIS",
|
||||||
"parameter": {
|
"parameter": {
|
||||||
|
|||||||
@@ -1058,7 +1058,7 @@
|
|||||||
"va": "VOLT_ORIGIN",
|
"va": "VOLT_ORIGIN",
|
||||||
"vb": "VOLT_FINAL",
|
"vb": "VOLT_FINAL",
|
||||||
"vc": "VOLT_STEP",
|
"vc": "VOLT_STEP",
|
||||||
"vd": "STEP_TIME * 0x12",
|
"vd": "STEP_TIME",
|
||||||
"pa": "ADC_LEVEL_I_15",
|
"pa": "ADC_LEVEL_I_15",
|
||||||
"pb": "ADC_LEVEL_V_IN_15",
|
"pb": "ADC_LEVEL_V_IN_15",
|
||||||
"pc": "DAC_LEVEL_V_OUT_15",
|
"pc": "DAC_LEVEL_V_OUT_15",
|
||||||
@@ -1079,7 +1079,7 @@
|
|||||||
"va": "VOLT_ORIGIN",
|
"va": "VOLT_ORIGIN",
|
||||||
"vb": "VOLT_FINAL",
|
"vb": "VOLT_FINAL",
|
||||||
"vc": "VOLT_STEP",
|
"vc": "VOLT_STEP",
|
||||||
"vd": "STEP_TIME * 0x12",
|
"vd": "STEP_TIME",
|
||||||
"ve": "CYCLE_NUMBER",
|
"ve": "CYCLE_NUMBER",
|
||||||
"pa": "ADC_LEVEL_I_15",
|
"pa": "ADC_LEVEL_I_15",
|
||||||
"pb": "ADC_LEVEL_V_IN_15",
|
"pb": "ADC_LEVEL_V_IN_15",
|
||||||
@@ -1633,16 +1633,6 @@
|
|||||||
"dpv_engineering_mode_advanced": [
|
"dpv_engineering_mode_advanced": [
|
||||||
"dpv_advanced_mode"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -1058,7 +1058,7 @@
|
|||||||
"va": "VOLT_ORIGIN",
|
"va": "VOLT_ORIGIN",
|
||||||
"vb": "VOLT_FINAL",
|
"vb": "VOLT_FINAL",
|
||||||
"vc": "VOLT_STEP",
|
"vc": "VOLT_STEP",
|
||||||
"vd": "STEP_TIME * 0x12",
|
"vd": "STEP_TIME",
|
||||||
"pa": "ADC_LEVEL_I_15",
|
"pa": "ADC_LEVEL_I_15",
|
||||||
"pb": "ADC_LEVEL_V_IN_15",
|
"pb": "ADC_LEVEL_V_IN_15",
|
||||||
"pc": "DAC_LEVEL_V_OUT_15",
|
"pc": "DAC_LEVEL_V_OUT_15",
|
||||||
@@ -1079,7 +1079,7 @@
|
|||||||
"va": "VOLT_ORIGIN",
|
"va": "VOLT_ORIGIN",
|
||||||
"vb": "VOLT_FINAL",
|
"vb": "VOLT_FINAL",
|
||||||
"vc": "VOLT_STEP",
|
"vc": "VOLT_STEP",
|
||||||
"vd": "STEP_TIME * 0x12",
|
"vd": "STEP_TIME",
|
||||||
"ve": "CYCLE_NUMBER",
|
"ve": "CYCLE_NUMBER",
|
||||||
"pa": "ADC_LEVEL_I_15",
|
"pa": "ADC_LEVEL_I_15",
|
||||||
"pb": "ADC_LEVEL_V_IN_15",
|
"pb": "ADC_LEVEL_V_IN_15",
|
||||||
@@ -1633,16 +1633,6 @@
|
|||||||
"dpv_engineering_mode_advanced": [
|
"dpv_engineering_mode_advanced": [
|
||||||
"dpv_advanced_mode"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -1058,7 +1058,7 @@
|
|||||||
"va": "VOLT_ORIGIN",
|
"va": "VOLT_ORIGIN",
|
||||||
"vb": "VOLT_FINAL",
|
"vb": "VOLT_FINAL",
|
||||||
"vc": "VOLT_STEP",
|
"vc": "VOLT_STEP",
|
||||||
"vd": "STEP_TIME * 0x12",
|
"vd": "STEP_TIME",
|
||||||
"pa": "ADC_LEVEL_I_15",
|
"pa": "ADC_LEVEL_I_15",
|
||||||
"pb": "ADC_LEVEL_V_IN_15",
|
"pb": "ADC_LEVEL_V_IN_15",
|
||||||
"pc": "DAC_LEVEL_V_OUT_15",
|
"pc": "DAC_LEVEL_V_OUT_15",
|
||||||
@@ -1079,7 +1079,7 @@
|
|||||||
"va": "VOLT_ORIGIN",
|
"va": "VOLT_ORIGIN",
|
||||||
"vb": "VOLT_FINAL",
|
"vb": "VOLT_FINAL",
|
||||||
"vc": "VOLT_STEP",
|
"vc": "VOLT_STEP",
|
||||||
"vd": "STEP_TIME * 0x12",
|
"vd": "STEP_TIME",
|
||||||
"ve": "CYCLE_NUMBER",
|
"ve": "CYCLE_NUMBER",
|
||||||
"pa": "ADC_LEVEL_I_15",
|
"pa": "ADC_LEVEL_I_15",
|
||||||
"pb": "ADC_LEVEL_V_IN_15",
|
"pb": "ADC_LEVEL_V_IN_15",
|
||||||
@@ -1203,7 +1203,7 @@
|
|||||||
"pe": "SAMPLE_RATE"
|
"pe": "SAMPLE_RATE"
|
||||||
},
|
},
|
||||||
"data": [
|
"data": [
|
||||||
"X07;",
|
"X0C;",
|
||||||
"B>va;4B>vb;2B>vc;2B>vd;",
|
"B>va;4B>vb;2B>vc;2B>vd;",
|
||||||
"4b>pa;4b>pb;",
|
"4b>pa;4b>pb;",
|
||||||
"4b>pc;4b>pd;",
|
"4b>pc;4b>pd;",
|
||||||
@@ -1633,16 +1633,6 @@
|
|||||||
"dpv_engineering_mode_advanced": [
|
"dpv_engineering_mode_advanced": [
|
||||||
"dpv_advanced_mode"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -424,14 +424,6 @@
|
|||||||
"1XD2;1X02;4B>ve;2B>vf;2B>cn"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -424,14 +424,6 @@
|
|||||||
"1XD2;1X02;4B>ve;2B>vf;2B>cn"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -424,14 +424,6 @@
|
|||||||
"1XD2;1X02;4B>ve;2B>vf;2B>cn"
|
"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_instru_send": [
|
||||||
"ble_write",
|
"ble_write",
|
||||||
"_cdr('20X>ADC_VALUE_I')"
|
"_cdr('20X>ADC_VALUE_I')"
|
||||||
|
|||||||
@@ -1426,14 +1426,6 @@
|
|||||||
"X80;X03;B>CTRL_HIGH_Z_15"
|
"X80;X03;B>CTRL_HIGH_Z_15"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"VIS_CC_ZERO": [
|
|
||||||
"_data_format('I4V4Z4T4')",
|
|
||||||
"_disable_cache(False)",
|
|
||||||
"_notify(True)",
|
|
||||||
"VIS_CC_ZERO",
|
|
||||||
"_sync(True)",
|
|
||||||
"VIS_STI"
|
|
||||||
],
|
|
||||||
"pulse_fly": [
|
"pulse_fly": [
|
||||||
"sti_mode",
|
"sti_mode",
|
||||||
"gas1_mode",
|
"gas1_mode",
|
||||||
|
|||||||
Reference in New Issue
Block a user