第三节 照明时间表
功能介绍
最终实现的效果如下图所示:
可以看到这里面有前一个案例中的两个灯和一个开关,那么本案例在此基础上增加了一个时间表,点击时间表即可进行编辑特定时段的特定状态,除此之外还有一个勾选框,以进行手动控制和时间表控制的切换。当勾选上之后即可进行手动控制,否则则为时间表控制。
实现思路
逻辑界面的设计
1.首先,我们需要一个时间表的逻辑单元,从Palette(调色板)库。中找到Schedule(时间表)模块,从中选择Boolean Schedule ,将其拖拽至 Wire Sheet 界面,为它起个名字,如TimeTable。
时间表在 Wire sheet 中的样子如下:
2.之后我们就需要用到一个选择的逻辑单元来完成是选择手动控制还是时间表控制。他的逻辑单元可以在 KitControl 模块的Until文件夹下找到,叫做 BooleanSwitch
样式如下:
3.由上图可以看到BooleanSwitch有In Switch 和In True / In False ,这就意味着这个逻辑单元需要一个输入端,也就是In Switch 。当输入端输入的值为True时,就输出 In True;反之,当输入的值为False时,输出为In False。所以我们现在需要做一个输入端
例如我们的输入端叫做choose,他的两种状态决定了输出的结果,所以我们将他的 Factes中的 Value 进行文字说明,方便我们理解,当它输入为True时,我们让他为手动控制;输入为False时,为时间表控制。
4.有了上面的逻辑,我们不难得到这样一张逻辑图:
这张图主要有四部分:
a.最重要的,也就是 Switch 这个逻辑单元。
b.对应于这个逻辑单元的输入。
c.根据输入来确定的具体使用哪种状态。
d.最终达到可以控制两盏灯的开关状态。
视图界面的设计
在功能介绍中可以看到,其实和照明案例相比,仅仅只是多了一个时间表按钮和一个用于更改手自动控制的勾选框而已。
1.勾选框:
将 choose 逻辑单元拖拽至视图界面,在之后谈出的Make Widget 界面中,选择 kitPx 库中的 SetPointCheck(勾选框)
2.时间表按钮:
将 TimeTable 逻辑单元拖拽至视图界面,之后在弹出的Make Widget界面中,选择 kitPx 库中的 HyperlinkButton (超链接按钮)
接下来对HyperlinkButton(时间表按钮)进行属性的更改,如 text 处填写这个按钮要显示的文字(e.g.时间表),之后将 ord 中的地址复制到 hyperlink 中。当然,除了这两个属性之外,其他的属性 如 background(背景)等都可以调,使得它更加美观。
之前将 Timetable 这一逻辑单元的地址(ord)复制到了 hyperlink 中,这样的话运行模式时只要一点开时间表就会弹出时间表的编辑界面。
通过在界面内选中方格来拖动,即可创建一个选区。这样一个选区,被称为一个Event(事件),在下方会具体显示事件的起始时间和结束时间,在 Event Output 中可以选择事件的输出值,具体是 True 还是 False,同时在事件的左上角也会显示出来。比如当采用时间表时,到了周日的 03:00AM 输出就会变成True,那么它所连接的灯就会自动打开;当过了18:00PM 时,输出就不再是True了,因此灯就会自动关闭。
右键事件还会有更多选项,具体如图所示:
这时你可能会想,我要是国庆节放假该怎么办呢,十一假期一直都不用的啊,只需点击Special Event(特殊事件)将事件界面切至特殊事件的界面即可进行编辑。点击 Add 进行添加特殊事件,在 Type 中选择Date Range即可选择一段时间。
添加好之后还要为其进行赋值,使其全天关闭,单击选中事件——右侧选定时间,最后将值改为False。
最后界面如下:
当不勾选手动控制时,无论怎么按手动控制按钮都无效,采用时间表控制。