74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
|
|
from UniTAP.libs.lib_tsi.tsi_io import PortIO
|
||
|
|
from UniTAP.libs.lib_tsi.tsi import *
|
||
|
|
from .pr_private_types import *
|
||
|
|
from .pr_status import PanelReplayStatus
|
||
|
|
from .pr_config import PanelReplayConfig
|
||
|
|
|
||
|
|
|
||
|
|
class PanelReplay:
|
||
|
|
"""
|
||
|
|
Class `PanelReplay` contains information about Panel Replay feature.
|
||
|
|
- Read Panel Replay `status`.
|
||
|
|
- Configure Panel Replay `config`.
|
||
|
|
- Disable Panel Replay `disable`.
|
||
|
|
- Enable Active mode `active_mode`.
|
||
|
|
- Enable Inactive mode `inactive_mode`.
|
||
|
|
- Enable selective update `selective_update`.
|
||
|
|
"""
|
||
|
|
|
||
|
|
def __init__(self, port_io: PortIO, pg_caps):
|
||
|
|
self.__io = port_io
|
||
|
|
self.__status = PanelReplayStatus(self.__io)
|
||
|
|
self.__config = PanelReplayConfig(self.__io, pg_caps)
|
||
|
|
self.__caps = self.__config.pr_caps
|
||
|
|
|
||
|
|
@property
|
||
|
|
def status(self) -> PanelReplayStatus:
|
||
|
|
"""
|
||
|
|
Returns object of class `PanelReplayStatus` for working with Panel Replay Status.
|
||
|
|
|
||
|
|
Returns:
|
||
|
|
object of `PanelReplayStatus` type
|
||
|
|
"""
|
||
|
|
return self.__status
|
||
|
|
|
||
|
|
@property
|
||
|
|
def config(self) -> PanelReplayConfig:
|
||
|
|
"""
|
||
|
|
Returns object of class `PanelReplayConfig` for configuration PR.
|
||
|
|
|
||
|
|
Returns:
|
||
|
|
object of `PanelReplayStatus` type
|
||
|
|
"""
|
||
|
|
return self.__config
|
||
|
|
|
||
|
|
def disable(self):
|
||
|
|
"""
|
||
|
|
Disable Panel Replay
|
||
|
|
"""
|
||
|
|
self.__write_pr_control(PrControl.Disable)
|
||
|
|
|
||
|
|
def active_mode(self):
|
||
|
|
"""
|
||
|
|
Enable active mode
|
||
|
|
"""
|
||
|
|
self.__write_pr_control(PrControl.EnableActiveMode)
|
||
|
|
|
||
|
|
def inactive_mode(self):
|
||
|
|
"""
|
||
|
|
Enable inactive mode
|
||
|
|
"""
|
||
|
|
self.__write_pr_control(PrControl.EnableInactiveMode)
|
||
|
|
|
||
|
|
def selective_update(self):
|
||
|
|
"""
|
||
|
|
Enable selective update mode (if device supports this feature)
|
||
|
|
"""
|
||
|
|
if self.__caps.pr_flags().selective_update:
|
||
|
|
self.__write_pr_control(PrControl.EnableSelectiveUpdate)
|
||
|
|
|
||
|
|
def __write_pr_control(self, command: PrControl):
|
||
|
|
self.__io.set(TSI_PG_STREAM_SELECT, 0)
|
||
|
|
self.__io.set(TSI_PG_PR_CTRL_W, command.value)
|
||
|
|
|