LED API
概述
Matrix OS 中的 LED 系统提供对 8x8 LED 矩阵的控制,支持图层、实时更新和交叉渐变动画。LED API 可通过 MatrixOS.LED 访问,默认已导入。
对于某些 LED 函数,可以指定图层 ID。如果不指定图层 ID,API 将使用图层 255(最顶层)。更改仅在调用 Update() 时生效。
要立即更新,请写入图层 0(活动缓冲区)。除非使用 PauseUpdate(True) 暂停,否则更改会立即渲染。这适用于实时效果但可能导致闪烁。
Python LED API 实现位于 Applications/Python/PikaPython/MatrixOS_LED.py,类型提示位于 Applications/Python/PikaPython/_MatrixOS_LED.pyi。
常量
LED API 使用以下预定义常量:
CURRENT_LAYER = 255- 未指定图层时引用的当前活动图层CROSSFADE_DURATION = 200- 默认交叉渐变持续时间(毫秒)
MatrixOS.LED.NextBrightness
def NextBrightness() -> None
Cycles to the next predefined brightness level for the LEDs.
Example:
MatrixOS.LED.NextBrightness()
MatrixOS.LED.SetBrightness
def SetBrightness(brightness: int) -> None
Sets the brightness level of the LEDs.
Parameters:
brightness(int): Brightness level (0-255)
Example:
MatrixOS.LED.SetBrightness(128) # Set to 50% brightness
MatrixOS.LED.SetBrightnessMultiplier
def SetBrightnessMultiplier(partition_name: str, multiplier: float) -> bool
Applies a brightness multiplier to a specific LED partition.
Parameters:
partition_name(str): Name of the partition to modifymultiplier(float): Brightness multiplier
Returns:
bool: True if successful
Example:
MatrixOS.LED.SetBrightnessMultiplier("keypad", 0.8) # Set keypad brightness to 0.8x
MatrixOS.LED.SetColor
def SetColor(xy: Point, color: Color, layer: int = CURRENT_LAYER) -> None
Sets the color of a specific LED at coordinates (x, y).
Parameters:
xy(Point): LED coordinates (0-7 for both x and y)color(Color): Color to setlayer(int, optional): Layer ID to write to (defaults to CURRENT_LAYER)
Example:
point = Point(2, 3)
red = Color(255, 0, 0)
MatrixOS.LED.SetColor(point, red) # Set LED at (2,3) to red
MatrixOS.LED.SetColorByID
def SetColorByID(id: int, color: Color, layer: int = CURRENT_LAYER) -> None
Sets the color of an LED by its ID (0-63 for 8x8 matrix).
Parameters:
id(int): LED ID (0-63)color(Color): Color to setlayer(int, optional): Layer ID to write to (defaults to CURRENT_LAYER)
Example:
MatrixOS.LED.SetColorByID(0, Color(0, 255, 0)) # Set first LED to green
MatrixOS.LED.Fill
def Fill(color: Color, layer: int = CURRENT_LAYER) -> None
Fills all LEDs with the specified color.
Parameters:
color(Color): Color to fill withlayer(int, optional): Layer ID to write to (defaults to CURRENT_LAYER)
Example:
MatrixOS.LED.Fill(Color(0, 0, 255)) # Fill all LEDs with blue
MatrixOS.LED.FillPartition
def FillPartition(partition: str, color: Color, layer: int = CURRENT_LAYER) -> bool
Fills a specific LED partition with the specified color.
Parameters:
partition(str): Partition name (e.g., "keypad", "function")color(Color): Color to fill withlayer(int, optional): Layer ID to write to (defaults to CURRENT_LAYER)
Returns:
bool: True if successful
Example:
MatrixOS.LED.FillPartition("keypad", Color(255, 255, 0)) # Fill keypad with yellow