Source code for herosdevices.hardware.santec.template
"""Template for Santec SLMs."""
import numpy as np
import numpy.typing as npt
[docs]
class SantecSLMTemplate:
"""Template for Santec SLMs.
Has no functionality, use the derived classes instead.
"""
def __init__(self) -> None:
pass
[docs]
def firmware_serialnumber(self) -> str:
"""Get the serial number of the santec firmware running on the SLM.
This not the same as the serial number used to identify the FTDI chip.
Returns:
Serial number.
"""
raise NotImplementedError
[docs]
def video_mode(self, mode: int = 0) -> str:
"""
Query or set the video source the SLM draws the images from.
Args:
mode: Video source. Consult the manual for for possible sources.
"""
raise NotImplementedError
[docs]
def push_image(self, slot: int, image: npt.NDArray[np.uint16]) -> str:
"""
Upload an image into a specified memory slot.
Args:
slot: Slot number. Slot numbers range from 1 to 128.
image: The image.
"""
raise NotImplementedError
[docs]
def contrast_level(self, value: int) -> str:
"""Set the contrast/gamma level of the LCOS."""
raise NotImplementedError
[docs]
def display_slot(self, slot: int = 1) -> str:
"""Set the memory slot to display on the SLM.
Args:
slot: Slot number. The lowest slot number is 1.
"""
raise NotImplementedError