mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-31 01:51:53 +08:00
optional cap power, init delay
This commit is contained in:
@@ -41,9 +41,10 @@ def main() -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
streamer = Streamer(
|
streamer = Streamer(
|
||||||
cap_power=int(config["streamer"]["pinout"]["cap"]),
|
cap_power=int(config["streamer"]["pinout"].get("cap", -1)),
|
||||||
conv_power=int(config["streamer"]["pinout"]["conv"]),
|
conv_power=int(config["streamer"]["pinout"].get("conv", -1)),
|
||||||
sync_delay=float(config["streamer"]["sync_delay"]),
|
sync_delay=float(config["streamer"]["sync_delay"]),
|
||||||
|
init_delay=float(config["streamer"]["init_delay"]),
|
||||||
width=int(config["streamer"]["size"]["width"]),
|
width=int(config["streamer"]["size"]["width"]),
|
||||||
height=int(config["streamer"]["size"]["height"]),
|
height=int(config["streamer"]["size"]["height"]),
|
||||||
cmd=list(map(str, config["streamer"]["cmd"])),
|
cmd=list(map(str, config["streamer"]["cmd"])),
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ class Streamer: # pylint: disable=too-many-instance-attributes
|
|||||||
cap_power: int,
|
cap_power: int,
|
||||||
conv_power: int,
|
conv_power: int,
|
||||||
sync_delay: float,
|
sync_delay: float,
|
||||||
|
init_delay: float,
|
||||||
width: int,
|
width: int,
|
||||||
height: int,
|
height: int,
|
||||||
cmd: List[str],
|
cmd: List[str],
|
||||||
@@ -25,9 +26,10 @@ class Streamer: # pylint: disable=too-many-instance-attributes
|
|||||||
|
|
||||||
assert cmd, cmd
|
assert cmd, cmd
|
||||||
|
|
||||||
self.__cap_power = gpio.set_output(cap_power)
|
self.__cap_power = (gpio.set_output(cap_power) if cap_power > 0 else cap_power)
|
||||||
self.__conv_power = (gpio.set_output(conv_power) if conv_power > 0 else conv_power)
|
self.__conv_power = (gpio.set_output(conv_power) if conv_power > 0 else conv_power)
|
||||||
self.__sync_delay = sync_delay
|
self.__sync_delay = sync_delay
|
||||||
|
self.__init_delay = init_delay
|
||||||
self.__width = width
|
self.__width = width
|
||||||
self.__height = height
|
self.__height = height
|
||||||
self.__cmd = [part.format(width=width, height=height) for part in cmd]
|
self.__cmd = [part.format(width=width, height=height) for part in cmd]
|
||||||
@@ -68,12 +70,14 @@ class Streamer: # pylint: disable=too-many-instance-attributes
|
|||||||
|
|
||||||
async def __set_hw_enabled(self, enabled: bool) -> None:
|
async def __set_hw_enabled(self, enabled: bool) -> None:
|
||||||
# XXX: This sequence is very important to enable converter and cap board
|
# XXX: This sequence is very important to enable converter and cap board
|
||||||
gpio.write(self.__cap_power, enabled)
|
if self.__cap_power > 0:
|
||||||
|
gpio.write(self.__cap_power, enabled)
|
||||||
if self.__conv_power > 0:
|
if self.__conv_power > 0:
|
||||||
if enabled:
|
if enabled:
|
||||||
await asyncio.sleep(self.__sync_delay)
|
await asyncio.sleep(self.__sync_delay)
|
||||||
gpio.write(self.__conv_power, enabled)
|
gpio.write(self.__conv_power, enabled)
|
||||||
await asyncio.sleep(self.__sync_delay)
|
if enabled:
|
||||||
|
await asyncio.sleep(self.__init_delay)
|
||||||
|
|
||||||
async def __process(self) -> None:
|
async def __process(self) -> None:
|
||||||
logger = get_logger(0)
|
logger = get_logger(0)
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ kvmd:
|
|||||||
pinout:
|
pinout:
|
||||||
cap: 21
|
cap: 21
|
||||||
conv: 25
|
conv: 25
|
||||||
|
|
||||||
sync_delay: 1.0
|
sync_delay: 1.0
|
||||||
|
init_delay: 1.0
|
||||||
shutdown_delay: 10.0
|
shutdown_delay: 10.0
|
||||||
|
|
||||||
size:
|
size:
|
||||||
|
|||||||
Reference in New Issue
Block a user