modify 修复前端展示配置与实际插件配置不一致的bug
This commit is contained in:
@@ -19,7 +19,7 @@ import time
|
||||
|
||||
from .config import (
|
||||
EV_KEY, VALUE_RELEASE, VALUE_PRESS, VALUE_REPEAT,
|
||||
DEFAULT_EVENT_DEVICE, GPIO_KEYS_NAME,
|
||||
DEFAULT_EVENT_DEVICE, GPIO_KEYS_NAME, DEFAULT_IN2_KEY,
|
||||
DEBOUNCE, DEFAULT_INTERVAL,
|
||||
find_status_file,
|
||||
)
|
||||
@@ -259,6 +259,36 @@ def make_in1_backend(device=None, key=None, in_index=1):
|
||||
# 4) 都找不到,返回一个 open 时会报错的 EventBackend
|
||||
return EventBackend(DEFAULT_EVENT_DEVICE, key=key)
|
||||
|
||||
|
||||
def make_in2_backend(device=None, key=None, in_index=2,
|
||||
interval=DEFAULT_INTERVAL, debounce=DEBOUNCE):
|
||||
"""自动为 IN2 选择后端:优先 sysfs(SE9),回退 gpio-keys event(SE5)。
|
||||
|
||||
SE5 无 gpio-in-2 状态文件,IN2 与 IN1 同走 gpio-keys 事件设备(不同键码)。
|
||||
|
||||
优先级:
|
||||
1) 显式 device(event 设备路径) -> EventBackend
|
||||
2) 查找 gpio-in-<in_index> 的状态文件 -> SysfsBackend
|
||||
3) 自动查找 gpio-keys 的 event 设备 -> EventBackend(key 缺省 DEFAULT_IN2_KEY)
|
||||
4) 都找不到 -> 返回 None(由调用方给出可诊断错误)
|
||||
"""
|
||||
# 1) 显式指定 event 设备
|
||||
if device and device != "auto":
|
||||
return EventBackend(device, key=key if key is not None else DEFAULT_IN2_KEY)
|
||||
|
||||
# 2) sysfs 状态文件(SE9)
|
||||
status = find_status_file(in_index)
|
||||
if status:
|
||||
return SysfsBackend(status, debounce=debounce, interval=interval)
|
||||
|
||||
# 3) 回退到 gpio-keys 事件设备(SE5)
|
||||
ev = EventBackend.find_event_device(GPIO_KEYS_NAME)
|
||||
if ev:
|
||||
return EventBackend(ev, key=key if key is not None else DEFAULT_IN2_KEY)
|
||||
|
||||
# 4) 都找不到
|
||||
return None
|
||||
|
||||
def find_event_device(name=GPIO_KEYS_NAME):
|
||||
"""模块级别别名,等价于 EventBackend.find_event_device."""
|
||||
return EventBackend.find_event_device(name)
|
||||
@@ -269,6 +299,7 @@ __all__ = [
|
||||
"SysfsBackend",
|
||||
"make_backend",
|
||||
"make_in1_backend",
|
||||
"make_in2_backend",
|
||||
"find_status_file",
|
||||
"find_event_device",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user