#解析器 #不间断电源 #格式 #powercom

powercom-upsmonpro-state-parser

由 UPSMON Pro 软件提供的 POWERCOM 不间断电源状态解析器

1 个稳定版本

1.0.0 2020 年 9 月 15 日

#1728解析器实现

MIT 许可证

24KB
547

pipeline MIT

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

无运行时依赖