[][src]Module lorawan::parser

Provides types and methods for parsing LoRaWAN payloads.

Examples

let mut data = vec![0x40, 0x04, 0x03, 0x02, 0x01, 0x80, 0x01, 0x00, 0x01,
    0xa6, 0x94, 0x64, 0x26, 0x15, 0xd6, 0xc3, 0xb5, 0x82];
if let Ok(lorawan::parser::PhyPayload::DataPayload(
        lorawan::parser::PhyDataPayload::EncryptedData(phy))) =
                lorawan::parser::parse(data) {
    let key = lorawan::keys::AES128([1; 16]);
    let decrypted = phy.decrypt(None, Some(&key), 1).unwrap();
    if let Ok(lorawan::parser::FRMPayload::Data(data_payload)) =
            decrypted.frm_payload() {
        println!("{}", String::from_utf8_lossy(data_payload.0));
    }
} else {
    panic!("failed to parse data payload");
}

Structs

AppNonce

AppNonce represents a 24 bit network server nonce.

DataPayload

DataPayload represents a data MacPayload.

DecryptedPhyDataPayload

DecryptedPhyDataPayload represents a decrypted DataPayload.

DecryptedPhyJoinAcceptPayload

DecryptedPhyJoinAcceptPayload represents a decrypted JoinAccept.

DevAddr

DevAddr represents a 32 bit device address.

DevNonce

DevNonce represents a 16 bit device nonce.

EUI64

EUI64 represents a 64 bit EUI.

EncryptedPhyDataPayload

EncryptedPhyDataPayload represents an encrypted data payload.

EncryptedPhyJoinAcceptPayload

EncryptedPhyJoinAcceptPayload represents an encrypted JoinAccept.

FCtrl

FCtrl represents the FCtrl from FHDR.

FHDR

FHDR represents FHDR from DataPayload.

FRMDataPayload

FRMDataPayload represents the application data.

FRMMacCommands

FRMMacCommands represents the mac commands.

MHDR

MHDR represents LoRaWAN MHDR.

NwkAddr

NwkAddr represents a 24 bit network address.

PhyJoinRequestPayload

PhyJoinAcceptPayload represents a JoinRequest.

Enums

FRMPayload

FRMPayload represents the FRMPayload that can either be the application data or mac commands.

MType

MType gives the possible message types of the PhyPayload.

Major

Major gives the supported LoRaWAN payload formats.

PhyDataPayload

PhyDataPayload is a type that represents a ConfirmedDataUp, ConfirmedDataDown, UnconfirmedDataUp or UnconfirmedDataDown.

PhyJoinAcceptPayload

PhyJoinAcceptPayload is a type that represents a JoinAccept.

PhyPayload

PhyPayload is a type that represents a physical LoRaWAN payload.

Functions

parse

Parses a payload as LoRaWAN physical payload.