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__":
model = CaptDevice.Model(conf)
controller = CaptDevice.Controller(model, None)
controller = CaptDevice.Controller(model, None, log_file="log.log")
window = CaptDevice.View(model, controller)
window.show()
......
......@@ -12,7 +12,7 @@ import confighandler as cfg
class CaptDeviceConfig(cfg.ConfigNode):
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",
description="Selected device from the device list provided by the DreamWaves API.")
......
......@@ -29,6 +29,7 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
ain_channels_changed = Signal(list, name="ain_channels_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")
analog_in_bits_changed = Signal(int, name="analog_in_bits_changed")
analog_in_buffer_size_changed = Signal(int, name="analog_in_buffer_size_changed")
......@@ -43,10 +44,9 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
capture_process_state_changed = Signal(AD2Constants.CapturingState, name="capture_process_state_changed")
ready_for_recording_changed = Signal(bool, name="ready_for_recording_changed")
def __init__(self, ad2capt_model: AD2CaptDeviceModel, start_capture_flag: Value):
super().__init__(
internal_log=True,
internal_log_level=logging.DEBUG)
def __init__(self, ad2capt_model: AD2CaptDeviceModel, start_capture_flag: Value,
internal_log=True, internal_log_level=logging.WARNING, log_file=None):
super().__init__(internal_log=internal_log, internal_log_level=internal_log_level, log_file=log_file)
self.model = ad2capt_model
......@@ -75,6 +75,9 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
self.start_capture_flag,
self.kill_capture_flag
)
self.logger.setLevel(logging.INFO)
self.set_child_log_level(logging.INFO)
self.connect_signals()
self._connect_config_signals()
......@@ -82,6 +85,8 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
self.selected_ain_channel = self.model.analog_in.selected_ain_channel
def connect_signals(self):
self.dwf_version_changed.connect(self._on_dwf_version_changed)
self.discovered_devices_changed.connect(self.on_discovered_devices_changed)
......@@ -188,6 +193,7 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
# DWF Version
# ==================================================================================================================
def _on_dwf_version_changed(self, version):
self.logger.info(f"DWF Version returned: {version}")
self.model.dwf_version = version
# ==================================================================================================================
......@@ -200,7 +206,10 @@ class BaseAD2CaptDevice(cmp.CProcessControl):
:return:
"""
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
def _on_selected_device_index_changed(self, index):
......
......@@ -33,11 +33,11 @@ class MPCaptDevice(cmp.CProcess, ):
start_capture_flag: Value,
kill_capture_flag: Value,
kill_flag: Value,
internal_log, internal_log_level):
internal_log, internal_log_level, log_file):
super().__init__(state_queue, cmd_queue,
kill_flag=kill_flag,
internal_log=internal_log,
internal_log_level=internal_log_level)
internal_log_level=internal_log_level, log_file=log_file)
# Objects for data exchange
self.start_capture_flag: Value = start_capture_flag
......@@ -124,7 +124,6 @@ class MPCaptDevice(cmp.CProcess, ):
@ain_channels.setter(emit_to='ain_channels_changed')
def ain_channels(self, value):
self.logger.info("Setting ain channels.")
self._ain_channels = value
@CProperty
......@@ -203,7 +202,8 @@ class MPCaptDevice(cmp.CProcess, ):
# Device Enumeration without connecting to the device
# ==================================================================================================================
@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...")
# enumerate connected devices
......@@ -215,22 +215,24 @@ class MPCaptDevice(cmp.CProcess, ):
# (c_int32(enumfilterType.value | enumfilterAudio.value), 'Audio'),
# (c_int32(enumfilterType.value | enumfilterDemo.value), 'Demo')]:
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')
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.logger.debug(f"Found {cDevice.value} {type} devices.")
for iDevice in range(0, cDevice.value):
if self.get_device_serial_number(iDevice) == "DEMO":
_type = "DEMO"
else:
_type = type
connected_devices.append({
'type': type,
'type': _type,
'device_id': int(iDevice),
'device_name': self.get_device_name(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')})")
self.logger.info(f"Found {len(connected_devices)} devices.")
self.logger.debug(f"Found {len(connected_devices)} devices.")
return connected_devices
# ==================================================================================================================
# Settings from process Control
......@@ -287,7 +289,7 @@ class MPCaptDevice(cmp.CProcess, ):
def close_device(self):
# 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.hdwf.value = 0
self.connected = False
......@@ -297,17 +299,21 @@ class MPCaptDevice(cmp.CProcess, ):
# Device Information
# ==================================================================================================================
def get_ain_channels(self) -> list:
cInfo = c_int()
self.dwf.FDwfEnumConfigInfo(c_int(self.selected_device_index), c_int(1), byref(cInfo))
ain_channels = cInfo.value
if ain_channels == 0:
#self.logger.debug(f"Reading available analog input channels for device {self.selected_device_index}.")
#cInfo = c_int()
#print(f">>> {cInfo}")
#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
# so we can try to connect to the device first and retrieve the information
self.open_device(self.selected_device_index)
ain_channels = self.analog_in_channels_count()
self.open_device()
self.ain_channels = self.analog_in_channels_count()
self.close_device()
self.logger.debug(f"Device {self.selected_device_index} has {ain_channels} analog input channels.")
return list(range(0, ain_channels))
self.logger.info(f"Device {self.device_name} (#{self.selected_device_index}, SNR: {self.device_serial_number}) "
f"AIn: {self.ain_channels}")
return list(range(0, self.ain_channels))
def get_ain_buffer_size(self, device_id) -> int:
cInfo = c_int()
......@@ -355,7 +361,8 @@ class MPCaptDevice(cmp.CProcess, ):
Calls WaveForms API Function 'FDwfAnalogInChannelCount(HDWF hdwf, int *pcChannel)'
: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:
int0 = c_int()
self.dwf.FDwfAnalogInChannelCount(self.hdwf, byref(int0))
......
......@@ -7,6 +7,8 @@ from PySide6.QtCore import Signal
from CaptDeviceControl.model.AD2CaptDeviceModel import AD2CaptDeviceSignals, AD2CaptDeviceModel
from CaptDeviceControl.model.AD2Constants import AD2Constants
from CaptDeviceControl.controller.mp_AD2Capture.MPCaptDevice import MPCaptDevice
class MPCaptDeviceControl(cmp.CProcessControl):
......@@ -36,9 +38,9 @@ class MPCaptDeviceControl(cmp.CProcessControl):
capturing_data_queue,
start_capture_flag,
kill_capture_flag,
parent=None,
internal_log=True,
internal_log_level=logging.DEBUG):
internal_log,
internal_log_level,
parent=None):
super().__init__(parent,
internal_log=internal_log,
internal_log_level=internal_log_level)
......
......@@ -69,7 +69,6 @@ class AD2CaptDeviceInformationModel:
@selected_device_index.setter
def selected_device_index(self, value: int):
print("selected_device_index", value)
self._config.selected_device_index.set(value)
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 register or to comment