This commit is contained in:
DingZQ
2025-02-15 15:51:25 +08:00
parent bf4e589c4e
commit 8384f0720d

View File

@@ -1018,7 +1018,7 @@ def query_SCADA_data_by_device_ID_and_time(query_ids_list: List[str], query_time
return SCADA_result_dict
# DingZQ, 2025-02-15
def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], start_time: str, end_time: str, bucket: str="SCADA_data", client: InfluxDBClient=client) -> Dict[str, float]:
def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], start_time: str, end_time: str, bucket: str="SCADA_data", client: InfluxDBClient=client) -> list[dict[str, float]]:
"""
根据SCADA设备的ID和时间查询值
:param query_ids_list: SCADA设备ID的列表
@@ -1039,7 +1039,7 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
utc_end_time = time_api.to_utc_time(end_time)
# 构建查询字典
SCADA_result_dict = {}
SCADA_results = []
for device_id in query_ids_list:
# 构建 Flux 查询语句
@@ -1048,6 +1048,7 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
|> range(start: {utc_start_time.isoformat()}, stop: {utc_end_time.isoformat()})
|> filter(fn: (r) => r["device_ID"] == "{device_id}")
|> filter(fn: (r) => r["_field"] == "monitored_value")
|> sort(columns: ["_time"], desc: true)
'''
# 执行查询
@@ -1061,15 +1062,17 @@ def query_SCADA_data_by_device_ID_and_time_range(query_ids_list: List[str], star
for record in table.records:
# 获取字段 "_value" 即为 monitored_value
monitored_value = record.get_value()
SCADA_result_dict[device_id] = monitored_value
else:
# 如果没有结果,默认设置为 None 或其他值
SCADA_result_dict[device_id] = None
rec = {
"ID": device_id,
"time": record.get_time(),
"value": monitored_value
}
SCADA_results.append(rec)
except Exception as e:
print(f"Error querying InfluxDB for device ID {device_id}: {e}")
SCADA_result_dict[device_id] = None
return SCADA_result_dict
return SCADA_results
# 2025/02/01
def store_realtime_simulation_result_to_influxdb(node_result_list: List[Dict[str, any]], link_result_list: List[Dict[str, any]],