2 个版本
0.1.2 | 2023年8月28日 |
---|---|
0.1.1 | 2023年3月23日 |
#1974 in 解析实现
52KB
1K SLoC
非官方 Rust 实现 Remo 云 API 解析器。
概述
Nature Remo 系列的 Cloud API 返回的 JSON 数据解析器,用于提取各种信息(非官方)
支持的 API
-
GET /1/devices
https://swagger.nature.global/#/default/get_1_devices- 获取用户可操作的 Remo 设备列表和状态
-
GET /1/appliances
https://swagger.nature.global/#/default/get_1_appliances- 获取已注册的控制设备列表和状态。
- 部分支持
- 仅支持各设备对应的
device
model
smart_meter
节点 - 忽略其他节点。
- 仅支持各设备对应的
计划支持
- 如有时间,将支持
appliances
的其他节点
使用方法
通过向 nature_api::read_devices
指定实现了 embedded_io::Reader
的类型、流长度和处理设备信息的回调,可以解析从 Reader 实现类型读取的数据,每当确定设备信息时,回调将被调用。
use embedded_io::adapters;
use nature_api::read_devices;
use std::{fs::File, io::Read};
fn main() {
let mut file = File::open("data/devices.json").unwrap();
let file_length = file.metadata().unwrap().len();
let mut reader = embedded_io::adapters::FromStd::new(&mut file);
let mut num_devices = 0;
read_devices(
&mut reader,
Some(file_length as usize),
|device, sub_node| {
if sub_node.is_none() {
num_devices += 1;
}
println!("{:?} {:?}", device, sub_node);
},
)
.unwrap();
println!("num_devices: {}", num_devices);
}
回调的第一个参数是 &nature_api::Device
,第二个参数是 Option(&DeviceSubNode)
。
许可协议
本库可在 MIT 许可协议下使用。
依赖项
~4.5–6.5MB
~133K SLoC