Update configuration and enhance railway signal functionality
- Adjust angle parameters for switches in config.json - Implement semaphore loading in main.py - Refactor Lamp modes to use integers in railway_signal.py - Add set_mode method for Lamp class to control lamp states
This commit is contained in:
+9
-5
@@ -28,11 +28,12 @@ class Lamp:
|
||||
- blink: мигает (переключение ON/OFF с периодом period_ms)
|
||||
"""
|
||||
|
||||
MODE_OFF = "off"
|
||||
MODE_ON = "on"
|
||||
MODE_BLINK = "blink"
|
||||
ERROR = 1
|
||||
MODE_OFF = 2
|
||||
MODE_ON = 3
|
||||
MODE_BLINK = 4
|
||||
|
||||
def __init__(self, signal, lamp_id: int, pixel_index: int, rgba):
|
||||
def __init__(self, signal: "RailwaySignal", lamp_id: int, pixel_index: int, rgba):
|
||||
self._signal = signal
|
||||
self.id = lamp_id
|
||||
self.pixel = pixel_index
|
||||
@@ -52,6 +53,9 @@ class Lamp:
|
||||
def blink(self, period_ms: int = 500):
|
||||
self._signal._set_lamp_mode(self, Lamp.MODE_BLINK, period_ms=period_ms)
|
||||
|
||||
def set_mode(self, mode: int, *, period_ms: int = 500):
|
||||
self._signal._set_lamp_mode(self, mode, period_ms=period_ms)
|
||||
|
||||
|
||||
class RailwaySignal:
|
||||
"""Контейнер ламп светофора.
|
||||
@@ -264,7 +268,7 @@ class RailwaySignal:
|
||||
return True
|
||||
return False
|
||||
|
||||
def _set_lamp_mode(self, lamp: Lamp, mode: str, *, period_ms: int = 500):
|
||||
def _set_lamp_mode(self, lamp: Lamp, mode: int, *, period_ms: int = 500):
|
||||
if mode == Lamp.MODE_BLINK:
|
||||
lamp.mode = Lamp.MODE_BLINK
|
||||
lamp._blink_period_ms = int(period_ms)
|
||||
|
||||
Reference in New Issue
Block a user