双布尔变量有什么用


What's the use of double boolean variables?

我正在查看来自API的JSON数据集,我看到这样的东西:

   "lights_on":1,
   "lights_off":0,
   "doors_locked":0,
   "doors_unlocked":1,
   "sensors_tripped":0,
   "sensors_not_tripped":1

是只有我,还是为布尔值的两个状态都有一个变量有点愚蠢? 在这个例子中,检查lights_on的值不是更有意义吗,如果0它必须是false,如果是1它必须是true

上述 JSON 数据集与 truefalse 状态的变量有什么优势,我应该在我的程序中使用它吗?

这只是模拟现实世界的条件,您希望"真"和"假"变量都做出响应。它们的默认值是两者都为"false",这意味着没有做出任何决定。如果两者都设置为"true",那么就做出了一个不合理的决定。这是确保软件正常工作的一种方法.

奇怪的是,相同的情况适用于"门打开"或"门关闭"的远程接触开关。通过返回两种状态进行软件分析,用户知道导线没有短路,这可能导致打开和关闭状态(不合逻辑),并且两根导线都不假,这通常意味着电缆已被切断或传感器损坏。

这是最简单的自检形式,可确保软件或硬件状态报告的来源有效。
这将隐式使用,其中代码块正在读取现实世界的布尔输入,下一个代码块将读取"true"和"false"标志以确保有一个有效的答案。同样在现实条件下,将使用数字滤波器来确保答案在大约 1/10 秒内保持不变,具体取决于软件必须以多快的速度响应更改.

然后更多的下游代码将通过发布状态报告、发出警报、更新日志来采取行动, 或任何数量被认为重要的函数。

我已经在我的几个ATE单元中构建了这些多级线程来测试产品。
真实世界的输入可能会有噪音,而创建的软件布尔值可能会出错,因此在端点软件采取实际操作之前,必须过滤掉任何歧义。