1 个稳定版本
1.0.0 | 2020 年 9 月 15 日 |
---|
#1728 在 解析器实现
24KB
547 行
powercom-upsmonpro-state-parser
[[目录]]
概述
powercom-upsmonpro-state-parser 是一个解析器,用于解析由 Windows 版本的 UPSMON Pro 通过 HTTP(默认端口 8000)提供的作为纯文本的 POWERCOM 不间断电源状态,并以纯文本文件的形式(C:\Program Files\UPSMONPRO\UPSMONWebSer\ups.txt
)提供。
该解析器发布在 crates.io。要使用它,请将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
powercom-upsmonpro-state-parser = "1.0.0"
此库是非官方的,并且未经 POWERCOM 批准。
示例
此简化示例程序使用 reqwest 包(为了简单起见,使用阻塞客户端)从硬编码的 URL 读取不间断电源状态,格式化并将其写入标准输出。
extern crate powercom_upsmonpro_state_parser;
extern crate reqwest;
use std::str::FromStr;
use powercom_upsmonpro_state_parser::{UPSState};
// replace 127.0.0.1 with actual
// ip of the machine where UPSMON PRO is installed.
const UPS_STATE_URL: &str =
"http://127.0.0.1:8000/ups.txt";
fn main() {
let ups_state_str =
reqwest::blocking::get(UPS_STATE_URL)
.unwrap()
.text()
.unwrap();
let ups_state =
UPSState::from_str(
ups_state_str.as_str())
.unwrap();
println!("{}", ups_state);
if let UPSState::Connected(state) = ups_state
{
if state.battery_charge_percent < 20
{
println!("WARNING: battery charge too low")
}
}
}
示例输出
Connection status: Connected, UPS Mode: Normal, Mains state: Ok, Vin=228 V, Vout=228 V, f=50 Hz, chg=100 %, load=0 %, T=30 C