首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视变量的值一段时间

监视变量的值一段时间
EN

Stack Overflow用户
提问于 2020-02-08 09:13:48
回答 1查看 102关注 0票数 0

我正在测量一个系统的一个相位的功率值,通过串行rtu modbus通信从一个电表。我正在尝试编写一个代码,允许我监视某个值内的功率值,例如+- 5%。如果瞬时读取的功率值保持在这个值的范围内(​​) 15分钟,那么我就把它作为有效的数据,否则如果在15分钟结束之前,这个值离开这个范围,我必须将计时器重置为15。如果您知道任何监视变量值的库,它将对我非常有用。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-08 09:33:55

你不需要任何外部库。

取决于您是否只想在脚本中运行它,或者如果您有更多需要运行的东西,您可以选择将其设置为async。试着做这样的事情:

代码语言:javascript
复制
import datetime
import asyncio    


def resetTimer(duration: float):
    now = datetime.datetime.now()
    expire = now + datetime.timedelta(0,0,0,0, duration)
    return expire

async def monitor(durationMinutes: float, variableToCheck: float) -> None:
    lowerThreshhold = variableToCheck * 0.95
    upperThreshhold = variableToCheck * 1.05
    expire = resetTimer(durationMinutes)

    while datetime.datetime.now() >= expire:
        if variableToCheck >= upperThreshhold or variableToCheck <= lowerThreshhold:
            expire = resetTimer(durationMinutes) # resets timer
        else:
            # do something else if value stays within range the entire duration

用法:

代码语言:javascript
复制
task1 = asyncio.create_task(
    monitor(15, myVariable)
)
await task1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60125428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档