#[repr(C)]pub struct PamojaLorawanPackageCommand {Show 62 fields
pub port: u8,
pub cid: u8,
pub uplink: u8,
pub package: u8,
pub version: u8,
pub device_time: u32,
pub time_correction: i32,
pub token: u8,
pub ans_required: u8,
pub period: u8,
pub not_supported: u8,
pub transmissions: u8,
pub firmware: u32,
pub hardware: u32,
pub reboot: u32,
pub image_status: u8,
pub next_version: u32,
pub has_next_version: u8,
pub delete_version: u32,
pub no_valid_image: u8,
pub invalid_version: u8,
pub frag_index: u8,
pub mc_group_bit_mask: u8,
pub nb_frag: u16,
pub frag_size: u8,
pub ack_reception: u8,
pub frag_algo: u8,
pub block_ack_delay: u8,
pub padding: u8,
pub descriptor: [u8; 4],
pub session_cnt: u16,
pub mic: [u8; 4],
pub received: u16,
pub missing: u8,
pub mic_error: u8,
pub memory_error: u8,
pub no_session: u8,
pub unsupported_algorithm: u8,
pub unsupported_index: u8,
pub wrong_descriptor: u8,
pub session_replay: u8,
pub all_participants: u8,
pub status_item: u8,
pub fragment_n: u16,
pub mc_group_id: u8,
pub mc_addr: u32,
pub mc_key_encrypted: [u8; 16],
pub min_mc_fcnt: u32,
pub max_mc_fcnt: u32,
pub group_mask: u8,
pub nb_total_groups: u8,
pub id_error: u8,
pub session_time: u32,
pub time_out: u8,
pub periodicity: u8,
pub dl_frequency_hz: u32,
pub data_rate: u8,
pub time_to_start: u32,
pub has_time_to_start: u8,
pub dr_error: u8,
pub freq_error: u8,
pub start_missed: u8,
}Expand description
One command of an application layer package, whichever package it belongs to.
port says which package: PAMOJA_LORAWAN_CLOCK_PORT,
PAMOJA_LORAWAN_FRAGMENT_PORT, PAMOJA_LORAWAN_MULTICAST_PORT or
PAMOJA_LORAWAN_FIRMWARE_PORT. cid names the command within it, and uplink says
which way it travels; together they decide which of the other fields carry anything. The
rest are zero.
Fields§
§port: u8Which package this command belongs to, as its port.
cid: u8Which command within that package.
uplink: u81 for what a device sends, 0 for what a server sends.
package: u8The package identifier a version answer carries.
version: u8The package version it implements.
device_time: u32A device’s own clock, in seconds since the GPS epoch.
time_correction: i32The seconds to add to a device’s clock.
token: u8The token that pairs a clock answer with its request.
ans_required: u8Whether a clock request must be answered.
period: u8The coded period between clock requests.
not_supported: u8Whether a device manages its own clock periodicity.
transmissions: u8How many requests a resynchronization command asks for.
firmware: u32The firmware a device reports running.
hardware: u32The hardware it runs on.
reboot: u32The moment or the delay a reboot is set for.
image_status: u8What a device makes of the upgrade image it holds.
next_version: u32The version it would run once that image is installed.
has_next_version: u8Whether an image answer carried a version.
delete_version: u32The version a delete command names.
no_valid_image: u8Whether a device holds no valid image.
invalid_version: u8Whether the version named is not the one held.
frag_index: u8Which fragmentation session, 0 to 3.
mc_group_bit_mask: u8Which multicast groups may feed it, a bit for each.
nb_frag: u16How many uncoded fragments a block was cut into.
frag_size: u8How many bytes each fragment carries.
ack_reception: u8Whether a device reports the block once it has it.
frag_algo: u8Which fragmentation algorithm to run.
block_ack_delay: u8The coded spread of the delay before a device answers.
padding: u8How many bytes of padding the last fragment carries.
descriptor: [u8; 4]The four bytes a server describes a block with.
session_cnt: u16The session counter, which must rise for each new block.
mic: [u8; 4]The code over the block a device checks once it has it all.
received: u16How many fragments arrived, coded, uncoded and repeated.
missing: u8How many uncoded fragments are still missing.
mic_error: u8Whether the block’s code did not check out.
memory_error: u8Whether a session ran out of memory to defragment with.
no_session: u8Whether the session or group named does not exist on the device.
unsupported_algorithm: u8Whether the setup named a fragmentation algorithm the device does not run.
unsupported_index: u8Whether the setup named a session index the device does not keep.
wrong_descriptor: u8Whether the descriptor is not one the device accepts.
session_replay: u8Whether the session counter repeats one already used for that index.
all_participants: u8Whether every device answers a status request, or only those still missing fragments.
status_item: u8Whether this is one group record of a multicast status answer, which shares its identifier with the answer that names how many follow.
fragment_n: u16Which fragment of a session a data fragment carries, counting from one.
mc_group_id: u8Which multicast group, 0 to 3.
mc_addr: u32The address a group answers to.
mc_key_encrypted: [u8; 16]A group’s key, wrapped under the device’s key encryption key.
min_mc_fcnt: u32The first frame counter a device accepts from a group.
max_mc_fcnt: u32The last one, which ends the group’s life.
group_mask: u8Which groups a status request or answer covers, a bit for each.
nb_total_groups: u8How many groups a device holds in all.
id_error: u8Whether a device holds no group by the identifier named.
session_time: u32When a multicast window opens, in seconds since the GPS epoch.
time_out: u8How long it lasts at most, coded.
periodicity: u8How often a device opens a ping slot inside a Class B window.
dl_frequency_hz: u32Where a group listens, in hertz.
data_rate: u8The data rate it listens at.
time_to_start: u32How many seconds until a window opens.
has_time_to_start: u8Whether a session answer carried a start time.
dr_error: u8Whether the data rate named is not one the device has.
freq_error: u8Whether the frequency named is not one it can use.
start_missed: u8Whether the window was to start at a time already past.
Trait Implementations§
Source§impl Clone for PamojaLorawanPackageCommand
impl Clone for PamojaLorawanPackageCommand
Source§fn clone(&self) -> PamojaLorawanPackageCommand
fn clone(&self) -> PamojaLorawanPackageCommand
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more