第 2步: 创建子模块 “开关”

下一步是用于定义一个模块用于房间的开关选择。一个模块定义和一个功能块必须被创建。在这里两者都叫做“开关”,定义必须通过功能块实现。模块“开关”的定义不需要进行顶层选择,因为它将会被添加非顶层模块“灯”下方(之后定义)。由于它是强制性的将所有功能块的实现模块,功能块“开关”必须扩展 "AC.Module"。另一方面,功能块也包含一个接口实现 "ISwitch",必须要进行创建。之后要实现接口 "IModule" (由函数库 "AC_ModuleBase" 提供) ,同样的在其他方面也是为空的 (没有属性或者函数定义)。

进一步讲开关需要一个输入信号 (可能从一个扩展源 / 物理开关) 定义什么时候点击。这个信号定义在选项IO,在这里使用模块实现功能块的xIn变量。更多的一个参考时间需要区分开关的两个功能:点击开关给定时间tTimer将启动昏暗功能 - 否则等将作为一个点击处理。这个变量tTimer (也是实现功能块模块的一部分) 将会被作为模块参数进行定义 (选项Parameters),最后可以很容易的被“最终用户”进行编辑。

插图 377: 子模块 'Switch' 的定义

相关变量xIn 以及 tTimer 都作为功能块 "开关" 的输入进行定义,参数tTimer将会获得一个默认初始值 500ms。所以当用户长按开关大于 500ms 时,灯光将会被调暗。

插图 378: 功能块 “开关'' 中的定义

文本列表以及图像池必须扩展包含必须的输入以及参数的描述文本。

插图 379: 文本列表以及图像池中的输入

“第 3步:创建子模块 "简易开关"”