Table of Contents

Struct PamojaLorawanMacCommand

Namespace
Pamoja.Native.Interop
Assembly
Pamoja.Native.dll

One of the commands a network and a device configure each other with, mirroring PamojaLorawanMacCommand in pamoja.h.

public struct PamojaLorawanMacCommand
Inherited Members

Remarks

Cid names the command and Direction says which way it travels; together they decide which of the other fields carry anything. The rest read as zero.

Fields

Action

What a join filter rule does, or whether a trusted end device is read or removed.

public byte Action

Field Value

byte

ActionAck

Whether its action was valid.

public byte ActionAck

Field Value

byte

BackOff

How many WOR frames without an acknowledgment before an uplink goes anyway.

public byte BackOff

Field Value

byte

Battery

A device battery level: 0 on external power, 255 when it cannot tell.

public byte Battery

Field Value

byte

BucketSize

Its bucket size multiplier, as TS011-1.0.1 table 55 codes it.

public byte BucketSize

Field Value

byte

CadPeriodicity

How often a relay scans, as TS011-1.0.1 table 18 codes it.

public byte CadPeriodicity

Field Value

byte

CadPeriodicityAck

Whether the scan period was valid.

public byte CadPeriodicityAck

Field Value

byte

ChannelAck

Whether the frequency was usable.

public byte ChannelAck

Field Value

byte

ChannelMask

Which channels may carry an uplink.

public ushort ChannelMask

Field Value

ushort

ChannelMaskAck

Whether the channel mask was usable.

public byte ChannelMaskAck

Field Value

byte

Cid

Which command this is.

public byte Cid

Field Value

byte

CombinedRulesAck

Whether a join filter rule was one to create, change or remove.

public byte CombinedRulesAck

Field Value

byte

DataRate

The data rate a network asks a device to use.

public byte DataRate

Field Value

byte

DataRateAck

Whether the data rate was set.

public byte DataRateAck

Field Value

byte

DataRateRangeOk

Whether the device can run that range of rates.

public byte DataRateRangeOk

Field Value

byte

DefaultChannelIndex

Which of the region's relay channels is a relay's default one.

public byte DefaultChannelIndex

Field Value

byte

DefaultChannelIndexAck

Whether the default channel was valid.

public byte DefaultChannelIndexAck

Field Value

byte

Delay

How long a device waits before its first receive window, as coded.

public byte Delay

Field Value

byte

DevAddr

An end device address a relay command names.

public uint DevAddr

Field Value

uint

Direction

Which way it travels.

public PamojaLorawanDirection Direction

Field Value

PamojaLorawanDirection

DownlinkDwell

Whether a downlink is.

public byte DownlinkDwell

Field Value

byte

Enabled

Whether a relay runs.

public byte Enabled

Field Value

byte

Eui

Those bytes, most significant first, with the rest zero.

public PamojaId Eui

Field Value

PamojaId

EuiLen

How many leading bytes of JoinEUI and DevEUI a join filter rule matches.

public byte EuiLen

Field Value

byte

EuiLenAck

Whether its length was valid.

public byte EuiLenAck

Field Value

byte

Fraction

The fraction of that second, in steps of one part in 256.

public byte Fraction

Field Value

byte

FrequencyHz

A frequency in hertz, for the windows and the channel commands.

public uint FrequencyHz

Field Value

uint

FrequencyOk

Whether its radio can reach that frequency.

public byte FrequencyOk

Field Value

byte

Gateways

How many gateways heard it.

public byte Gateways

Field Value

byte

GlobalUplinkBucketSize

The global uplink bucket size multiplier.

public byte GlobalUplinkBucketSize

Field Value

byte

GlobalUplinkReloadRate

Uplinks a relay forwards an hour across every trusted end device.

public byte GlobalUplinkReloadRate

Field Value

byte

Index

Which channel a channel command names.

public byte Index

Field Value

byte

IndexAck

Whether a trusted list entry was in use.

public byte IndexAck

Field Value

byte

JoinRequestBucketSize

The join request bucket size multiplier.

public byte JoinRequestBucketSize

Field Value

byte

JoinRequestReloadRate

Join requests a relay forwards an hour, 127 for no limit.

public byte JoinRequestReloadRate

Field Value

byte

Margin

How far above the floor a link check arrived, in dB.

public byte Margin

Field Value

byte

MaskControl

Which block of sixteen channels that mask applies to.

public byte MaskControl

Field Value

byte

MaxDataRate

The fastest rate allowed on it.

public byte MaxDataRate

Field Value

byte

MaxDutyCycle

The share of the air a device is held to, as one over two to this.

public byte MaxDutyCycle

Field Value

byte

MaxEirp

The coded transmit power ceiling a region imposes.

public byte MaxEirp

Field Value

byte

MinDataRate

The slowest rate allowed on it.

public byte MinDataRate

Field Value

byte

NotifyBucketSize

The notification bucket size multiplier.

public byte NotifyBucketSize

Field Value

byte

NotifyReloadRate

New end device notifications a relay sends an hour.

public byte NotifyReloadRate

Field Value

byte

OverallBucketSize

The overall bucket size multiplier.

public byte OverallBucketSize

Field Value

byte

OverallReloadRate

Every message a relay sends an hour.

public byte OverallReloadRate

Field Value

byte

PowerAck

Whether the power was set, 1 for yes.

public byte PowerAck

Field Value

byte

RelayMode

How an end device uses a relay, as TS011-1.0.1 table 40 codes it.

public byte RelayMode

Field Value

byte

ReloadRate

Tokens a trusted end device earns an hour, 63 for no limit.

public byte ReloadRate

Field Value

byte

ResetLimitCounters

What a forwarding limit command does to a relay's token counters, as table 63 codes it.

public byte ResetLimitCounters

Field Value

byte

RootWorSKey

An end device's root relay session key.

public PamojaId RootWorSKey

Field Value

PamojaId

RssiDbm

The signal strength of a WOR frame a relay could not verify, in dBm.

public short RssiDbm

Field Value

short

Rx1Offset

How far the first receive window sits below the uplink rate.

public byte Rx1Offset

Field Value

byte

Rx1OffsetAck

Whether the window offset was in range.

public byte Rx1OffsetAck

Field Value

byte

Rx2DataRate

The rate of the second receive window.

public byte Rx2DataRate

Field Value

byte

Rx2DataRateAck

Whether the window rate was known.

public byte Rx2DataRateAck

Field Value

byte

SecondChannelAckOffset

How far above its frequency the second channel is acknowledged, as table 35 codes it.

public byte SecondChannelAckOffset

Field Value

byte

SecondChannelAckOffsetAck

Whether its acknowledgment offset was valid.

public byte SecondChannelAckOffsetAck

Field Value

byte

SecondChannelDataRate

The second channel's data rate; its frequency is the frequency field.

public byte SecondChannelDataRate

Field Value

byte

SecondChannelDataRateAck

Whether the second channel's data rate was valid.

public byte SecondChannelDataRateAck

Field Value

byte

SecondChannelFrequencyAck

Whether its frequency was valid.

public byte SecondChannelFrequencyAck

Field Value

byte

SecondChannelIndex

Whether a relay configuration sets a second channel, 1 for yes.

public byte SecondChannelIndex

Field Value

byte

SecondChannelIndexAck

Whether the second channel index was valid.

public byte SecondChannelIndexAck

Field Value

byte

Seconds

Seconds since the GPS epoch.

public uint Seconds

Field Value

uint

SmartEnableLevel

How many unanswered uplinks turn relaying on, as table 41 codes it.

public byte SmartEnableLevel

Field Value

byte

SnrDb

Its signal-to-noise ratio, in dB.

public sbyte SnrDb

Field Value

sbyte

SnrMargin

The signal-to-noise ratio of the last request, in dB.

public sbyte SnrMargin

Field Value

sbyte

Transmissions

How many times to send an unconfirmed uplink.

public byte Transmissions

Field Value

byte

TxPower

The transmit power it may use, as a ceiling.

public byte TxPower

Field Value

byte

UplinkDwell

Whether an uplink is held to 400 ms of air time.

public byte UplinkDwell

Field Value

byte

UplinkFrequencyExists

Whether the channel already had an uplink frequency to pair with.

public byte UplinkFrequencyExists

Field Value

byte

Wfcnt

A wake-on-radio frame counter.

public uint Wfcnt

Field Value

uint