事件系統: BETWEEN 運算元


為了讓事件系統占用最少的資料, 我們增加了 BETWEEN 運算元用來判別介於2個值之間的處理. 這個案例將示範 依據 ADC 的值來判別繼電器開或關.


 材料和配線


準備光敏電阻, 並將其接在 ADC 和 GPIO16(或是3V3)

 事件設計


我們希望以下條件成立時控制繼電器作動:

ADC 介於 0~200 全關
ADC 介於 200~400 只開第1路
ADC 介於 400~600 只開第2路
ADC 介於 600~800 只開第3路
ADC 介於 800~1000 只開第4路
ADC > 1000 全開
        

所以, 會使用到 BETWEEN 運算和 DeviceCall 111 多重腳位控制服務

111 多腳位輸出使用 . 相隔, 例如: 5 4 輸出 1 而 12 13 輸出0, 14 反向時, 可以表示如下
5.4.12.13.14:1.1.0.0.2

最後事件清單結果如下:

{"events":[
{"eventIndex":1,"eventType":3,"eventValue":"0:1:0~200^3,20^","trigerType":4,"trigerValue":"111,5.4.12.13:1.1.1.1","timer":0,"state":0,"times":255},
{"eventIndex":2,"eventType":3,"eventValue":"0:1:200~400^3,20^","trigerType":4,"trigerValue":"111,5.4.12.13:0.1.1.1","timer":0,"state":0,"times":255},
{"eventIndex":3,"eventType":3,"eventValue":"0:1:400~600^3,20^","trigerType":4,"trigerValue":"111,5.4.12.13:1.0.1.1","timer":0,"state":0,"times":255},
{"eventIndex":4,"eventType":3,"eventValue":"0:1:600~800^3,20^","trigerType":4,"trigerValue":"111,5.4.12.13:1.1.0.1","timer":0,"state":0,"times":255},
{"eventIndex":5,"eventType":3,"eventValue":"0:1:800~1000^3,20^","trigerType":4,"trigerValue":"111,5.4.12.13:1.1.1.0","timer":0,"state":0,"times":255},
{"eventIndex":6,"eventType":3,"eventValue":"0:1:1000^2,20^","trigerType":4,"trigerValue":"111,5.4.12.13:0.0.0.0","timer":0,"state":0,"times":255}
]}