Skip to main content

第2步:创建子模块“Switch”

下一步是声明一个用于房间开关的模块。同样,必须创建模块声明和功能块。在这里,两者都被称为 Switch,其中声明必须由功能块实现。模块声明 Switch 不需要顶级部分,因为它将添加到模块下方 Light (稍后描述)没有顶级职位。由于所有模块实现功能块都是强制性的,因此功能块 Switch 必须延长 AC.Module, 也。对于当前的情况,功能块还实现一个接口 ISwitch,必须创建它。该接口本身必须实现该接口 IModule,由图书馆提供 AC_ModuleBase 。然而,该界面 ISwitch 保持“空”——没有声明任何属性或函数。

此外,开关需要输入信号(可能来自外部源/物理开关)来指示何时轻敲。该信号在 IO 使用变量的部分 xIn 实现该模块的功能块。此外,还需要一个参考时间来区分开关的两种功能: 按下开关的持续时间 tTimer 启动调光功能 - 短按仅打开或关闭灯。这个变量 tTimer (也是模块实现功能块的一部分)将被声明为模块的参数(部分 Parameters),最终可以在使用该模块时轻松编辑。

51. 子模块的声明 Switch
子模块的声明 Switch


引用的变量 xIntTimer 都定义为功能块的输入 Switch,其中参数 tTimer 获取初始默认值 500ms。因此,当用户按下 Switch 超过500ms,灯光将变暗。

52. 声明于 Switch 功能块
声明于 Switch 功能块


此外,文本列表和图像池必须扩展以包括输入和参数所需的描述文本。

53. 文本列表和图像池中的条目
文本列表和图像池中的条目


第3步:创建子模块“Switch Simple”