第2步:创建子模块“Switch”
下一步是声明一个用于房间开关的模块。同样,必须创建模块声明和功能块。在这里,两者都被称为 Switch
,其中声明必须由功能块实现。模块声明 Switch
不需要顶级部分,因为它将添加到模块下方 Light
(稍后描述)没有顶级职位。由于所有模块实现功能块都是强制性的,因此功能块 Switch
必须延长 AC.Module
, 也。对于当前的情况,功能块还实现一个接口 ISwitch
,必须创建它。该接口本身必须实现该接口 IModule
,由图书馆提供 AC_ModuleBase
。然而,该界面 ISwitch
保持“空”——没有声明任何属性或函数。
此外,开关需要输入信号(可能来自外部源/物理开关)来指示何时轻敲。该信号在 IO 使用变量的部分 xIn
实现该模块的功能块。此外,还需要一个参考时间来区分开关的两种功能: 按下开关的持续时间 tTimer
启动调光功能 - 短按仅打开或关闭灯。这个变量 tTimer
(也是模块实现功能块的一部分)将被声明为模块的参数(部分 Parameters
),最终可以在使用该模块时轻松编辑。
图 51. 子模块的声明
Switch

引用的变量 xIn
和 tTimer
都定义为功能块的输入 Switch
,其中参数 tTimer
获取初始默认值 500ms。因此,当用户按下 Switch
超过500ms,灯光将变暗。
图 52. 声明于
Switch
功能块
此外,文本列表和图像池必须扩展以包括输入和参数所需的描述文本。
图 53. 文本列表和图像池中的条目
