sameplace: A SAME/EAS Message Parser
This crate provides a text parser for Specific Area Message Encoding (SAME). It provides machine- and human-friendly representations of these messages, with event codes and significance levels.
For a complete CLI binary, see
samedec.
Anatomy of a SAME message
SAME/EAS messages contain:
- A digital header which provides machine-readable information
- An audio voice message, for human consumption
- A digital trailer which denotes the end of message.
The actual "message" part of a SAME message is the audio itself, which describes the event and provides instructions to the listener. The digital headers do not contain all the information as the voice message.
-
For analog→digital decoding, see our companion library
sameold. -
For a complete program, which can also handle the voice message, see our companion binary crate
samedec.
Interpreting Messages
The MessageHeader
type decodes a SAME header, like:
ZCZC-WXR-RWT-012345-567890-888990+0015-0321115-KLOX/NWS-
use ;
// decode the header string
let hdr = new.expect;
// what organization originated the message?
assert_eq!;
// parse SAME event code `RWT`
let evt = hdr.event;
// the Phenomenon describes what is occurring
assert_eq!;
// the SignificanceLevel indicates the overall severity and/or
// how intrusive or noisy the alert should be
assert_eq!;
assert!;
// Display to the user
assert_eq!;
// location codes are accessed by iterator
let first_location = hdr.location_str_iter.next;
assert_eq!;
Crate features
chrono: Use chrono to calculate message issuance times and other fields as true UTC timestamps. If enabled,chronobecomes part of this crate's public API.
MSRV Policy
A minimum supported rust version (MSRV) increase will be treated as a minor version bump.
Contributing
Please read our contributing guidelines before opening any issues or PRs.
License: MIT OR Apache-2.0