构建前端面板与帧缓冲接口的技术解析
1. Laddie前端面板UI软件架构
Laddie前端面板UI软件采用事件驱动的状态机。事件包括按钮按下、定时器到期以及指示报警系统状态可能变化的日志消息到达。程序输出包括发送给Laddie守护进程的SQL命令、LED闪烁(或不闪烁)标志以及LCD上显示的文本。
使用了几个状态变量:
-State:主状态变量,指示LCD上显示的信息类型,如状态、日志或菜单。
-Curcmd:包含一个整数,指示用户在菜单中时要显示的命令。“Command”按钮可循环切换五个可能的前端面板命令。
-Zone:保存当前命令要使用的区域编号。“Zone”按钮可循环切换五个可能的区域编号。
状态机代码在C语言中为硬件和几个模拟器实现了两次,包括一个用JavaScript和PHP编写的基于Web的模拟器。lad216程序中的C代码用于生成适当的转义序列,该程序使用标准输入和输出,可通过以下命令将其与硬件绑定:
lad216 </dev/lad_pad >/dev/lad_pad代码分布在三个文件中:
-main.c:包含选择循环。
-menu.c:包含状态机。
-lad216.c:对输出进行编码,以便在lad_pad硬件上显示。