#json #parser #tempest #weatherflow

libtempest

WeatherFlow Tempest 数据记录的解析库

1 个不稳定版本

0.1.0 2022年2月14日

#1903解析器实现

Apache-2.0

20KB
396

libtempest

天气flow/tempest JSON 记录的解析器定义。

这个库是扩展一个简单的 UDP 数据包监控器的结果,该监控器是为了帮助诊断与 WeatherFlow Tempest 气象站的连接问题而编写的。来自中心的数据包包含 JSON 格式的字符串。相同的 JSON 格式也用于云 REST API 的结果中。

所有字段都被指定为公开的,以便这个库可以作为其他服务的连接器使用。

示例

use libtempest::Tempest;
use serde_json;
let buf = r#"
{
   "serial_number": "SK-00008453",
   "type":"evt_precip",
   "hub_sn": "HB-00000001",
   "evt":[1493322445]
}"#;
let rec: Tempest = serde_json::from_str(&buf).unwrap();
if let Tempest::EvtPrecip(x) = &rec {
    println!("{:?}", x);
    println!("{:?}", x.serial_number);
    println!("{:?}", x.evt);
    println!("{:?}", x.evt.epoch);
}

参考

许可证: Apache-2.0


lib.rs:

天气flow/tempest JSON 记录的解析器定义。

这个库是扩展一个简单的 UDP 数据包监控器的结果,该监控器是为了帮助诊断与 WeatherFlow Tempest 气象站的连接问题而编写的。来自中心的数据包包含 JSON 格式的字符串。相同的 JSON 格式也用于云 REST API 的结果中。

所有字段都被指定为公开的,以便这个库可以作为其他服务的连接器使用。

示例

use libtempest::Tempest;
use serde_json;
let buf = r#"
{
   "serial_number": "SK-00008453",
   "type":"evt_precip",
   "hub_sn": "HB-00000001",
   "evt":[1493322445]
}"#;
let rec: Tempest = serde_json::from_str(&buf).unwrap();
if let Tempest::EvtPrecip(x) = &rec {
    println!("{:?}", x);
    println!("{:?}", x.serial_number);
    println!("{:?}", x.evt);
    println!("{:?}", x.evt.epoch);
}

参考

依赖

~0.7–1.6MB
~35K SLoC