Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 36 additions & 10 deletions cuvis/AcquisitionContext.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,32 @@ def set_fps_async(self, val: float) -> Async:
raise SDKException()
return Async(cuvis_il.p_int_value(_pasync))

@property
@copydoc(cuvis_il.cuvis_acq_cont_get_pixel_format_swig)
def pixel_format(self, id: int) -> str:
return cuvis_il.cuvis_acq_cont_get_pixel_format_swig(self._handle, id)

@pixel_format.setter
@copydoc(cuvis_il.cuvis_acq_cont_fps_set)
def pixel_format(self, id: int, val: str) -> None:
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_set_pixel_format(
self._handle, val):
raise SDKException()
pass

@property
@copydoc(cuvis_il.cuvis_acq_cont_get_pixel_format_swig)
def available_pixel_formats(self, id: int) -> list[str]:
pCount = cuvis_il.new_p_int()
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_get_available_pixel_format_count(
self._handle, id, pCount):
raise SDKException()
count = cuvis_il.p_int_value(pCount)
formats = []
for i in range(count):
formats.append(str(cuvis_il.cuvis_acq_cont_get_available_pixel_format_swig(self._handle, id, i)))
return formats

@copydoc(cuvis_il.cuvis_acq_cont_has_next_measurement)
def has_next_measurement(self) -> bool:
val = cuvis_il.new_p_int()
Expand Down Expand Up @@ -427,26 +453,26 @@ def set_auto_exp_comp_async(self, val: float) -> Async:
return Async(cuvis_il.p_int_value(_pasync))

@property
@copydoc(cuvis_il.cuvis_acq_cont_preview_mode_get)
def preview_mode(self) -> bool:
@copydoc(cuvis_il.cuvis_acq_cont_binning_get)
def binning(self) -> bool:
_ptr = cuvis_il.new_p_int()
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_preview_mode_get(
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_binning_get(
self._handle, _ptr):
raise SDKException()
return bool(cuvis_il.p_int_value(_ptr))

@preview_mode.setter
@copydoc(cuvis_il.cuvis_acq_cont_preview_mode_set)
def preview_mode(self, val: bool) -> None:
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_preview_mode_set(
@binning.setter
@copydoc(cuvis_il.cuvis_acq_cont_binning_set)
def binning(self, val: bool) -> None:
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_binning_set(
self._handle, val):
raise SDKException()
return

@copydoc(cuvis_il.cuvis_acq_cont_preview_mode_set_async)
def set_preview_mode_async(self, val: bool) -> Async:
@copydoc(cuvis_il.cuvis_acq_cont_binning_set_async)
def set_binning_async(self, val: bool) -> Async:
_pasync = cuvis_il.new_p_int()
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_preview_mode_set_async(
if cuvis_il.status_ok != cuvis_il.cuvis_acq_cont_binning_set_async(
self._handle, _pasync, int(val)):
raise SDKException()
return Async(cuvis_il.p_int_value(_pasync))
Expand Down
15 changes: 14 additions & 1 deletion cuvis/Calibration.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from ._cuvis_il import cuvis_il
from .SessionFile import SessionFile
from .cuvis_aux import SDKException, Capabilities
from .cuvis_aux import SDKException, Capabilities, CalibrationInfo
from .cuvis_types import OperationMode

import cuvis.cuvis_types as internal
Expand Down Expand Up @@ -34,6 +34,19 @@ def get_capabilities(self, operation_mode: OperationMode) -> Capabilities:
raise SDKException()
return Capabilities(cuvis_il.p_int_value(_ptr))

def get_info(self) -> cuvis_il.cuvis_calibration_info_t:
info = cuvis_il.cuvis_calibration_info_t()
if cuvis_il.status_ok != cuvis_il.cuvis_calib_get_info(
self._handle, info):
raise SDKException()
return CalibrationInfo(
self.model_name,
self.serial_no,
self.calibration_date,
self.annotation_name,
self.unique_id,
self.file_path)

@property
def id(self) -> str:
_id = cuvis_il.cuvis_calib_get_id_swig(self._handle)
Expand Down
4 changes: 4 additions & 0 deletions cuvis/Export.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ def apply(self, mesu: Measurement) -> Measurement:
mesu.refresh()
return mesu

def flush(self):
if cuvis_il.status_ok != cuvis_il.cuvis_exporter_flush(self._handle):
raise SDKException()

@property
def queue_used(self) -> int:
_ptr = cuvis_il.new_p_int()
Expand Down
17 changes: 14 additions & 3 deletions cuvis/SessionFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
from pathlib import Path

from ._cuvis_il import cuvis_il
from .Measurement import Measurement
from .Measurement import Measurement, ImageData
from .cuvis_aux import SDKException
from .cuvis_types import OperationMode, SessionItemType, ReferenceType
from .cuvis_types import OperationMode, SessionItemType, ReferenceType, CUVIS_imbuffer_format

import cuvis.cuvis_types as internal

Expand Down Expand Up @@ -45,7 +45,18 @@ def get_reference(self, frameNo: int, reftype: ReferenceType) -> Optional[Measu
if cuvis_il.status_ok != ret:
raise SDKException()
return Measurement(cuvis_il.p_int_value(_ptr))


def get_thumbnail(self) -> ImageData:
thumbnail_data = cuvis_il.cuvis_view_data_t()
if cuvis_il.status_ok != cuvis_il.cuvis_session_file_get_thumbnail(self, thumbnail_data):
raise SDKException()

if thumbnail_data.data.format == CUVIS_imbuffer_format["imbuffer_format_uint8"]:
return ImageData(img_buf=thumbnail_data.data,
dformat=thumbnail_data.data.format)
else:
raise SDKException("Unsupported viewer bit depth!")

def get_size(self, itemtype: SessionItemType = SessionItemType.no_gaps) -> int:
val = cuvis_il.new_p_int()
if cuvis_il.status_ok != cuvis_il.cuvis_session_file_get_size(
Expand Down
2 changes: 1 addition & 1 deletion cuvis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@
from .cuvis_types import OperationMode, HardwareState, ProcessingMode, PanSharpeningInterpolationType, \
PanSharpeningAlgorithm, TiffCompressionMode, TiffFormat, ComponentType, ReferenceType, SessionItemType

from .cuvis_aux import SessionData, Capabilities, MeasurementFlags, SensorInfo, GPSData
from .cuvis_aux import SessionData, Capabilities, MeasurementFlags, SensorInfo, GPSData, CalibrationInfo

del os, platform, sys
19 changes: 18 additions & 1 deletion cuvis/cuvis_aux.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ def __init__(self, *args):
super().__init__(self.message)
pass


@dataclass
class SessionData(object):
name: str
Expand All @@ -47,6 +46,24 @@ def __repr__(self):
self.session_number,
self.sequence_number)

@dataclass
class CalibrationInfo(object):
model_name: str
serial_no: str
calibration_date: datetime.datetime
annotation_name: str
unique_id: str
file_path: str

def __repr__(self):
return "'Calibration: model: {}, serial no.: {}, calibration date: {}, annotation: {}, unique ID: {}, file: {}'".format(
self.model_name,
self.serial_no,
self.calibration_date,
self.annotation_name,
self.unique_id,
self.file_path)

@dataclass
class GPSData(object):
longitude: float
Expand Down