打造多功能安全报警系统:从基础到进阶
1. 基础超声波传感器逻辑
在开始构建复杂的安全报警系统之前,我们先从一个基础的超声波传感器逻辑入手。有一个函数默认每 225 毫秒调用一次,其逻辑如下:
if (!init) {
ultraBaseline = ultraReadings.sort()[4];
console.log("Calculated baseline: %s", ultraBaseline);
}
init = true;
ultraReadings.push(inches);
这个函数的具体步骤如下:
1. 声明 inches
变量以方便使用。
2. 判断采样读数的数量是否等于或超过 10。
- 如果读数数组中的值超过 10 个,从数组顶部移除一个值。
- 如果 init
变量为 false
,说明已达到用于推导基线测量的目标读数数量。通过对值进行排序并选择接近中间的值来确定基线。
- 将 init
变量设置为 true
(只要至少有 10 个读数)。
3. 最后,将新值添加到读数数组的末尾。
这里需要区分 change
和 data
事件:
- change
事件:只有当 Ping
对象实例检测到当前读数与上