首页 > 解决方案 > 检测布尔值从真到假的变化,反之亦然

问题描述

这是基于烧瓶的 Web 应用程序。

@app.route('/receive', methods=['POST'])
def receive():
    if request.method == 'POST':
        data = request.json
        powerOutage = data['powerOutage']

        # Send SMS here only once when the powerOutage value changes

        return '{"status":"OK"}'

使用基于 Arduino 的硬件的 HTTP POST 调用API 函数接收。我想在布尔变量的值发生变化时发送短信。停电时硬件连续发送True ,没有停电时硬件连续发送False。我想触发一个 SMS 网关,并在刚刚发生停电时以及当它完成并且设备发送第一个False值时只向用户发送一次 SMS。基于 Arduino 的设备每秒发送一次断电信息

我该怎么做才能检测到这种变化?

标签: pythonflask

解决方案


我认为你最好的选择是在POST请求中发送两个参数来接收函数,一个变量带有旧的断电值,一个变量带有最新的值。我认为这是必需的,因为您需要检查以下条件:

  1. old_pwr_outage != new_pwr_outage
  2. new_pwr_outage == False

此外,骆驼外壳不是 pythonic,您可能想要更改它。;)


推荐阅读