Table of Contents

Struct PamojaLorawanPackageCommand

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

One command of a LoRaWAN application layer package, mirroring PamojaLorawanPackageCommand in pamoja.h.

public struct PamojaLorawanPackageCommand
Inherited Members

Remarks

Port says which package and Cid names the command within it; together with Uplink they decide which of the other fields carry anything. The rest read as zero.

Fields

AckReception

Whether a device reports the block once it has it, 1 for yes.

public byte AckReception

Field Value

byte

AllParticipants

Whether every device answers a status request, 1 for yes.

public byte AllParticipants

Field Value

byte

AnsRequired

Whether a clock request must be answered, 1 for yes.

public byte AnsRequired

Field Value

byte

BlockAckDelay

The coded spread of the delay before a device answers.

public byte BlockAckDelay

Field Value

byte

Cid

Which command within that package.

public byte Cid

Field Value

byte

DataRate

The data rate it listens at.

public byte DataRate

Field Value

byte

DeleteVersion

The version a delete command names.

public uint DeleteVersion

Field Value

uint

Descriptor

The four bytes a server describes a block with.

public PamojaFourBytes Descriptor

Field Value

PamojaFourBytes

DeviceTime

A device's own clock, in seconds since the GPS epoch.

public uint DeviceTime

Field Value

uint

DlFrequencyHz

Where a group listens, in hertz.

public uint DlFrequencyHz

Field Value

uint

DrError

Whether the data rate named is not one the device has, 1 for yes.

public byte DrError

Field Value

byte

Firmware

The firmware a device reports running.

public uint Firmware

Field Value

uint

FragAlgo

Which fragmentation algorithm to run.

public byte FragAlgo

Field Value

byte

FragIndex

Which fragmentation session, 0 to 3.

public byte FragIndex

Field Value

byte

FragSize

How many bytes each fragment carries.

public byte FragSize

Field Value

byte

FragmentN

Which fragment of a session a data fragment carries, counting from one.

public ushort FragmentN

Field Value

ushort

FreqError

Whether the frequency named is not one it can use, 1 for yes.

public byte FreqError

Field Value

byte

GroupMask

Which groups a status request or answer covers, a bit for each.

public byte GroupMask

Field Value

byte

Hardware

The hardware it runs on.

public uint Hardware

Field Value

uint

HasNextVersion

Whether a version rides with the image status, 1 for yes.

public byte HasNextVersion

Field Value

byte

HasTimeToStart

Whether a delay rides with the answer, 1 for yes.

public byte HasTimeToStart

Field Value

byte

IdError

Whether a device holds no group by the identifier named, 1 for yes.

public byte IdError

Field Value

byte

ImageStatus

What a device makes of the upgrade image it holds.

public byte ImageStatus

Field Value

byte

InvalidVersion

Whether the version named is not the one held, 1 for yes.

public byte InvalidVersion

Field Value

byte

MaxMcFcnt

The last one, which ends the group's life.

public uint MaxMcFcnt

Field Value

uint

McAddr

The address a group answers to.

public uint McAddr

Field Value

uint

McGroupBitMask

Which multicast groups may feed it, a bit for each.

public byte McGroupBitMask

Field Value

byte

McGroupId

Which multicast group, 0 to 3.

public byte McGroupId

Field Value

byte

McKeyEncrypted

A group's key, wrapped under the device's key encryption key.

public PamojaId McKeyEncrypted

Field Value

PamojaId

MemoryError

Whether a session ran out of memory to defragment with, 1 for yes.

public byte MemoryError

Field Value

byte

Mic

The code over the block a device checks once it has it all.

public PamojaFourBytes Mic

Field Value

PamojaFourBytes

MicError

Whether the block's code did not check out, 1 for yes.

public byte MicError

Field Value

byte

MinMcFcnt

The first frame counter a device accepts from a group.

public uint MinMcFcnt

Field Value

uint

Missing

How many uncoded fragments are still missing.

public byte Missing

Field Value

byte

NbFrag

How many uncoded fragments a block was cut into.

public ushort NbFrag

Field Value

ushort

NbTotalGroups

How many groups a device holds in all.

public byte NbTotalGroups

Field Value

byte

NextVersion

The version it would run once that image is installed.

public uint NextVersion

Field Value

uint

NoSession

Whether the session or group named does not exist on the device, 1 for yes.

public byte NoSession

Field Value

byte

NoValidImage

Whether a device holds no valid image, 1 for yes.

public byte NoValidImage

Field Value

byte

NotSupported

Whether a device manages its own clock periodicity, 1 for yes.

public byte NotSupported

Field Value

byte

Package

The package identifier a version answer carries.

public byte Package

Field Value

byte

Padding

How many bytes of padding the last fragment carries.

public byte Padding

Field Value

byte

Period

The coded period between clock requests.

public byte Period

Field Value

byte

Periodicity

How often a device opens a ping slot inside a Class B window.

public byte Periodicity

Field Value

byte

Port

Which package this command belongs to, as its port.

public byte Port

Field Value

byte

Reboot

The moment or the delay a reboot is set for.

public uint Reboot

Field Value

uint

Received

How many fragments arrived, coded, uncoded and repeated.

public ushort Received

Field Value

ushort

SessionCnt

The session counter, which must rise for each new block.

public ushort SessionCnt

Field Value

ushort

SessionReplay

Whether the session counter repeats one already used, 1 for yes.

public byte SessionReplay

Field Value

byte

SessionTime

When a multicast window opens, in seconds since the GPS epoch.

public uint SessionTime

Field Value

uint

StartMissed

Whether the window was to start at a time already past, 1 for yes.

public byte StartMissed

Field Value

byte

StatusItem

Whether this is one group record of a multicast status answer.

public byte StatusItem

Field Value

byte

TimeCorrection

The seconds to add to a device's clock.

public int TimeCorrection

Field Value

int

TimeOut

How long it lasts at most, coded.

public byte TimeOut

Field Value

byte

TimeToStart

How many seconds until a window opens.

public uint TimeToStart

Field Value

uint

Token

The token that pairs a clock answer with its request.

public byte Token

Field Value

byte

Transmissions

How many requests a resynchronization command asks for.

public byte Transmissions

Field Value

byte

UnsupportedAlgorithm

Whether the setup named an algorithm the device does not run, 1 for yes.

public byte UnsupportedAlgorithm

Field Value

byte

UnsupportedIndex

Whether the setup named a session index the device does not keep, 1 for yes.

public byte UnsupportedIndex

Field Value

byte

Which way it travels, 1 for yes.

public byte Uplink

Field Value

byte

Version

The package version it implements.

public byte Version

Field Value

byte

WrongDescriptor

Whether the descriptor is not one the device accepts, 1 for yes.

public byte WrongDescriptor

Field Value

byte