中级
实现设备离线检测与自动恢复通知
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve():
from pyodide.http import open_url
from io import StringIO
import pandas as pd
devs_csv = open_url(____).read()
devs = pd.read_csv(StringIO(____))
import datetime
EXPECTED_INTERVALS = {'____':____,'____':____,'____':____,'____':____}
MISS_MULTIPLIER = ____
def parse_ts(____):
try: return datetime.datetime.strptime(str(____),'____').timestamp()
except: return ____
now_ts = datetime.datetime(____,____,____,____,____,____).timestamp()
print(____)
for _, dev in devs.iterrows():
last_seen = parse_ts(____)
interval = EXPECTED_INTERVALS.get(____)
timeout = interval * MISS_MULTIPLIER
elapsed = now_ts - last_seen
status = '____' if elapsed > timeout else '____'
print("____"+dev['____']+"____"+dev['____']+"____"+status+"____"+str(round(____))+"____"+str(____)+"____")
示例
输入
solve()
期望输出
Device heartbeat check: SOIL-A01(soil_sensor): ONLINE elapsed=300s timeout=1800s SOIL-A02(soil_sensor): ONLINE elapsed=300s timeout=1800s SOIL-A03(soil_sensor): ONLINE elapsed=900s timeout=1800s SOIL-B01(soil_sensor): ONLINE elapsed=420s timeout=1800s SOIL-B02(soil_sensor): ONLINE elapsed=600s timeout=1800s SOIL-B03(soil_sensor): ONLINE elapsed=600s timeout=1800s WS-001(weather_station): ONLINE elapsed=300s timeout=900s FERT-A01(fertigation_ctrl): OFFLINE elapsed=300s timeout=180s FERT-B01(fertigation_ctrl): OFFLINE elapsed=420s timeout=180s PEST-A01(pest_monitor): ONLINE elapsed=900s timeout=10800s PEST-B01(pest_monitor): ONLINE elapsed=1020s timeout=10800s LEAF-A01(leaf_sensor): ONLINE elapsed=600s timeout=1800s CO2-A01(co2_sensor): ONLINE elapsed=300s timeout=1800s
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199