Skip to content
Snippets Groups Projects
Commit 59bff5fb authored by Christoph Schmidt's avatar Christoph Schmidt
Browse files

Cleaned up log output. Updated to version 0.2.3

parent d36d9d54
No related branches found
No related tags found
No related merge requests found
...@@ -38,7 +38,7 @@ if __name__ == "__main__": ...@@ -38,7 +38,7 @@ if __name__ == "__main__":
model = CaptDevice.Model(conf) model = CaptDevice.Model(conf)
controller = CaptDevice.Controller(model, None) controller = CaptDevice.Controller(model, None, log_file="log.log")
window = CaptDevice.View(model, controller) window = CaptDevice.View(model, controller)
window.show() window.show()
... ...
......
...@@ -12,7 +12,7 @@ import confighandler as cfg ...@@ -12,7 +12,7 @@ import confighandler as cfg
class CaptDeviceConfig(cfg.ConfigNode): class CaptDeviceConfig(cfg.ConfigNode):
def __init__(self) -> None: def __init__(self) -> None:
super().__init__(internal_log=True, internal_log_level=logging.DEBUG) super().__init__(internal_log=False, internal_log_level=logging.DEBUG)
self.selected_device_index = cfg.Field(0, friendly_name="Selected device", self.selected_device_index = cfg.Field(0, friendly_name="Selected device",
description="Selected device from the device list provided by the DreamWaves API.") description="Selected device from the device list provided by the DreamWaves API.")
... ...
......
...@@ -29,6 +29,7 @@ class BaseAD2CaptDevice(cmp.CProcessControl): ...@@ -29,6 +29,7 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
ain_channels_changed = Signal(list, name="ain_channels_changed") ain_channels_changed = Signal(list, name="ain_channels_changed")
selected_ain_channel_changed = Signal(int, name="selected_ain_channel_changed") selected_ain_channel_changed = Signal(int, name="selected_ain_channel_changed")
sample_rate_changed = Signal(float, name="sample_rate_changed")
ain_buffer_size_changed = Signal(int, name="ain_buffer_size_changed") ain_buffer_size_changed = Signal(int, name="ain_buffer_size_changed")
analog_in_bits_changed = Signal(int, name="analog_in_bits_changed") analog_in_bits_changed = Signal(int, name="analog_in_bits_changed")
analog_in_buffer_size_changed = Signal(int, name="analog_in_buffer_size_changed") analog_in_buffer_size_changed = Signal(int, name="analog_in_buffer_size_changed")
...@@ -43,10 +44,9 @@ class BaseAD2CaptDevice(cmp.CProcessControl): ...@@ -43,10 +44,9 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
capture_process_state_changed = Signal(AD2Constants.CapturingState, name="capture_process_state_changed") capture_process_state_changed = Signal(AD2Constants.CapturingState, name="capture_process_state_changed")
ready_for_recording_changed = Signal(bool, name="ready_for_recording_changed") ready_for_recording_changed = Signal(bool, name="ready_for_recording_changed")
def __init__(self, ad2capt_model: AD2CaptDeviceModel, start_capture_flag: Value): def __init__(self, ad2capt_model: AD2CaptDeviceModel, start_capture_flag: Value,
super().__init__( internal_log=True, internal_log_level=logging.WARNING, log_file=None):
internal_log=True, super().__init__(internal_log=internal_log, internal_log_level=internal_log_level, log_file=log_file)
internal_log_level=logging.DEBUG)
self.model = ad2capt_model self.model = ad2capt_model
...@@ -75,6 +75,9 @@ class BaseAD2CaptDevice(cmp.CProcessControl): ...@@ -75,6 +75,9 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
self.start_capture_flag, self.start_capture_flag,
self.kill_capture_flag self.kill_capture_flag
) )
self.logger.setLevel(logging.INFO)
self.set_child_log_level(logging.INFO)
self.connect_signals() self.connect_signals()
self._connect_config_signals() self._connect_config_signals()
...@@ -82,6 +85,8 @@ class BaseAD2CaptDevice(cmp.CProcessControl): ...@@ -82,6 +85,8 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
self.selected_ain_channel = self.model.analog_in.selected_ain_channel self.selected_ain_channel = self.model.analog_in.selected_ain_channel
def connect_signals(self): def connect_signals(self):
self.dwf_version_changed.connect(self._on_dwf_version_changed) self.dwf_version_changed.connect(self._on_dwf_version_changed)
self.discovered_devices_changed.connect(self.on_discovered_devices_changed) self.discovered_devices_changed.connect(self.on_discovered_devices_changed)
...@@ -188,6 +193,7 @@ class BaseAD2CaptDevice(cmp.CProcessControl): ...@@ -188,6 +193,7 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
# DWF Version # DWF Version
# ================================================================================================================== # ==================================================================================================================
def _on_dwf_version_changed(self, version): def _on_dwf_version_changed(self, version):
self.logger.info(f"DWF Version returned: {version}")
self.model.dwf_version = version self.model.dwf_version = version
# ================================================================================================================== # ==================================================================================================================
...@@ -200,7 +206,10 @@ class BaseAD2CaptDevice(cmp.CProcessControl): ...@@ -200,7 +206,10 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
:return: :return:
""" """
def on_discovered_devices_changed(self, devices: list): def on_discovered_devices_changed(self, devices: list):
self.logger.info(f"Discovered devices: {len(devices)}")
self.logger.debug(f"Discovered devices: {devices}")
self.model.device_information.connected_devices = devices self.model.device_information.connected_devices = devices
def _on_selected_device_index_changed(self, index): def _on_selected_device_index_changed(self, index):
... ...
......
...@@ -33,11 +33,11 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -33,11 +33,11 @@ class MPCaptDevice(cmp.CProcess, ):
start_capture_flag: Value, start_capture_flag: Value,
kill_capture_flag: Value, kill_capture_flag: Value,
kill_flag: Value, kill_flag: Value,
internal_log, internal_log_level): internal_log, internal_log_level, log_file):
super().__init__(state_queue, cmd_queue, super().__init__(state_queue, cmd_queue,
kill_flag=kill_flag, kill_flag=kill_flag,
internal_log=internal_log, internal_log=internal_log,
internal_log_level=internal_log_level) internal_log_level=internal_log_level, log_file=log_file)
# Objects for data exchange # Objects for data exchange
self.start_capture_flag: Value = start_capture_flag self.start_capture_flag: Value = start_capture_flag
...@@ -124,7 +124,6 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -124,7 +124,6 @@ class MPCaptDevice(cmp.CProcess, ):
@ain_channels.setter(emit_to='ain_channels_changed') @ain_channels.setter(emit_to='ain_channels_changed')
def ain_channels(self, value): def ain_channels(self, value):
self.logger.info("Setting ain channels.")
self._ain_channels = value self._ain_channels = value
@CProperty @CProperty
...@@ -203,7 +202,8 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -203,7 +202,8 @@ class MPCaptDevice(cmp.CProcess, ):
# Device Enumeration without connecting to the device # Device Enumeration without connecting to the device
# ================================================================================================================== # ==================================================================================================================
@cmp.CProcess.register_signal() @cmp.CProcess.register_signal()
def discover_connected_devices(self): def discover_connected_devices(self, filter_type: int = enumfilterType.value | enumfilterDemo.value | enumfilterUSB.value):
self.logger.info(f"Discovering connected devices...") self.logger.info(f"Discovering connected devices...")
# enumerate connected devices # enumerate connected devices
...@@ -215,22 +215,24 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -215,22 +215,24 @@ class MPCaptDevice(cmp.CProcess, ):
# (c_int32(enumfilterType.value | enumfilterAudio.value), 'Audio'), # (c_int32(enumfilterType.value | enumfilterAudio.value), 'Audio'),
# (c_int32(enumfilterType.value | enumfilterDemo.value), 'Demo')]: # (c_int32(enumfilterType.value | enumfilterDemo.value), 'Demo')]:
cDevice = c_int() cDevice = c_int()
filter, type = (c_int32(enumfilterType.value | enumfilterDemo.value | enumfilterUSB.value), 'USB') filter, type = (c_int32(filter_type), 'USB')
# filter, type = (c_int32(enumfilterType.value | enumfilterDemo.value), 'DEMO') # filter, type = (c_int32(enumfilterType.value | enumfilterDemo.value), 'DEMO')
self.logger.debug(f"Filtering {type} devices...") self.logger.debug(f"Filter has been used: {hex(int(filter_type))}")
self.dwf.FDwfEnum(filter, byref(cDevice)) self.dwf.FDwfEnum(filter, byref(cDevice))
self.logger.debug(f"Found {cDevice.value} {type} devices.")
for iDevice in range(0, cDevice.value): for iDevice in range(0, cDevice.value):
if self.get_device_serial_number(iDevice) == "DEMO":
_type = "DEMO"
else:
_type = type
connected_devices.append({ connected_devices.append({
'type': type, 'type': _type,
'device_id': int(iDevice), 'device_id': int(iDevice),
'device_name': self.get_device_name(iDevice), 'device_name': self.get_device_name(iDevice),
'serial_number': self.get_device_serial_number(iDevice) 'serial_number': self.get_device_serial_number(iDevice)
}) })
# _mp_log_debug(f"Found {type} device: {devicename.value.decode('UTF-8')} ({serialnum.value.decode('UTF-8')})") # _mp_log_debug(f"Found {type} device: {devicename.value.decode('UTF-8')} ({serialnum.value.decode('UTF-8')})")
self.logger.info(f"Found {len(connected_devices)} devices.") self.logger.debug(f"Found {len(connected_devices)} devices.")
return connected_devices return connected_devices
# ================================================================================================================== # ==================================================================================================================
# Settings from process Control # Settings from process Control
...@@ -287,7 +289,7 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -287,7 +289,7 @@ class MPCaptDevice(cmp.CProcess, ):
def close_device(self): def close_device(self):
# self.dwf.FDwfAnalogOutReset(self.hdwf, c_int(channel)) # self.dwf.FDwfAnalogOutReset(self.hdwf, c_int(channel))
self.logger.info(f"[Task] Closing device...") self.logger.debug(f"[Task] Closing device...")
self.dwf.FDwfDeviceClose(self.hdwf) self.dwf.FDwfDeviceClose(self.hdwf)
self.hdwf.value = 0 self.hdwf.value = 0
self.connected = False self.connected = False
...@@ -297,17 +299,21 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -297,17 +299,21 @@ class MPCaptDevice(cmp.CProcess, ):
# Device Information # Device Information
# ================================================================================================================== # ==================================================================================================================
def get_ain_channels(self) -> list: def get_ain_channels(self) -> list:
cInfo = c_int() #self.logger.debug(f"Reading available analog input channels for device {self.selected_device_index}.")
self.dwf.FDwfEnumConfigInfo(c_int(self.selected_device_index), c_int(1), byref(cInfo)) #cInfo = c_int()
ain_channels = cInfo.value #print(f">>> {cInfo}")
if ain_channels == 0: #self.dwf.FDwfEnumConfigInfo(c_int(self.selected_device_index), c_int(1), byref(cInfo))
#print(f">>><<<< {cInfo}")
#self.ain_channels = cInfo.value
#if self.ain_channels == 0:
# Sometimes, the device reports a wrong number of ain channels # Sometimes, the device reports a wrong number of ain channels
# so we can try to connect to the device first and retrieve the information # so we can try to connect to the device first and retrieve the information
self.open_device(self.selected_device_index) self.open_device()
ain_channels = self.analog_in_channels_count() self.ain_channels = self.analog_in_channels_count()
self.close_device() self.close_device()
self.logger.debug(f"Device {self.selected_device_index} has {ain_channels} analog input channels.") self.logger.info(f"Device {self.device_name} (#{self.selected_device_index}, SNR: {self.device_serial_number}) "
return list(range(0, ain_channels)) f"AIn: {self.ain_channels}")
return list(range(0, self.ain_channels))
def get_ain_buffer_size(self, device_id) -> int: def get_ain_buffer_size(self, device_id) -> int:
cInfo = c_int() cInfo = c_int()
...@@ -355,7 +361,8 @@ class MPCaptDevice(cmp.CProcess, ): ...@@ -355,7 +361,8 @@ class MPCaptDevice(cmp.CProcess, ):
Calls WaveForms API Function 'FDwfAnalogInChannelCount(HDWF hdwf, int *pcChannel)' Calls WaveForms API Function 'FDwfAnalogInChannelCount(HDWF hdwf, int *pcChannel)'
:return: The number of analog in channels. :return: The number of analog in channels.
""" """
if self.connected(): if self.device_connected():
self.logger.debug(f"Reading AnalogIn Channel Count from device {self._device_name}")
try: try:
int0 = c_int() int0 = c_int()
self.dwf.FDwfAnalogInChannelCount(self.hdwf, byref(int0)) self.dwf.FDwfAnalogInChannelCount(self.hdwf, byref(int0))
... ...
......
...@@ -7,6 +7,8 @@ from PySide6.QtCore import Signal ...@@ -7,6 +7,8 @@ from PySide6.QtCore import Signal
from CaptDeviceControl.model.AD2CaptDeviceModel import AD2CaptDeviceSignals, AD2CaptDeviceModel from CaptDeviceControl.model.AD2CaptDeviceModel import AD2CaptDeviceSignals, AD2CaptDeviceModel
from CaptDeviceControl.model.AD2Constants import AD2Constants from CaptDeviceControl.model.AD2Constants import AD2Constants
from CaptDeviceControl.controller.mp_AD2Capture.MPCaptDevice import MPCaptDevice
class MPCaptDeviceControl(cmp.CProcessControl): class MPCaptDeviceControl(cmp.CProcessControl):
...@@ -36,9 +38,9 @@ class MPCaptDeviceControl(cmp.CProcessControl): ...@@ -36,9 +38,9 @@ class MPCaptDeviceControl(cmp.CProcessControl):
capturing_data_queue, capturing_data_queue,
start_capture_flag, start_capture_flag,
kill_capture_flag, kill_capture_flag,
parent=None, internal_log,
internal_log=True, internal_log_level,
internal_log_level=logging.DEBUG): parent=None):
super().__init__(parent, super().__init__(parent,
internal_log=internal_log, internal_log=internal_log,
internal_log_level=internal_log_level) internal_log_level=internal_log_level)
... ...
......
...@@ -69,7 +69,6 @@ class AD2CaptDeviceInformationModel: ...@@ -69,7 +69,6 @@ class AD2CaptDeviceInformationModel:
@selected_device_index.setter @selected_device_index.setter
def selected_device_index(self, value: int): def selected_device_index(self, value: int):
print("selected_device_index", value)
self._config.selected_device_index.set(value) self._config.selected_device_index.set(value)
self.signals.selected_device_index_changed.emit(self.selected_device_index) self.signals.selected_device_index_changed.emit(self.selected_device_index)
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment