Table of Contents

Class GatewayStationMessage

Namespace
Pamoja.Gateway
Assembly
Pamoja.Gateway.dll

A message either side of a session sends.

public sealed record GatewayStationMessage : IEquatable<GatewayStationMessage>
Inheritance
GatewayStationMessage
Implements
Inherited Members

Remarks

Every message names its kind, and carries the fields that kind uses; the rest read as null, zero, or empty. Build one with an initializer and write it with Encode(GatewayStationMessage), or read one with Parse(string) or Heard(ReadOnlySpan<byte>, byte, uint, GatewayStationLevels?).

Constructors

GatewayStationMessage(GatewayStationKind)

A message either side of a session sends.

public GatewayStationMessage(GatewayStationKind Kind)

Parameters

Kind GatewayStationKind

Which kind of message.

Remarks

Every message names its kind, and carries the fields that kind uses; the rest read as null, zero, or empty. Build one with an initializer and write it with Encode(GatewayStationMessage), or read one with Parse(string) or Heard(ReadOnlySpan<byte>, byte, uint, GatewayStationLevels?).

Properties

Class

Which class of downlink this is: 0 for A, 1 for B, 2 for C.

public byte Class { get; init; }

Property Value

byte

DataRate

The data rate a frame arrived at.

public byte DataRate { get; init; }

Property Value

byte

DataRates

A configuration's data rates, indexed by data-rate number, with null for a number the table leaves undefined.

public IReadOnlyList<GatewayStationDataRate?> DataRates { get; init; }

Property Value

IReadOnlyList<GatewayStationDataRate>

DevAddr

The address a data frame came from.

public int DevAddr { get; init; }

Property Value

int

DevEui

The device, for a join request, a downlink, or a transmission report.

public byte[]? DevEui { get; init; }

Property Value

byte[]

DevNonce

The nonce a join request used.

public ushort DevNonce { get; init; }

Property Value

ushort

Diid

The identifier a downlink and its transmission report share.

public long Diid { get; init; }

Property Value

long

Fcnt

The frame counter, as the sixteen bits on the air.

public ushort Fcnt { get; init; }

Property Value

ushort

Fctrl

The frame control byte.

public byte Fctrl { get; init; }

Property Value

byte

Features

What it can do, such as gps, for a version.

public string? Features { get; init; }

Property Value

string

Firmware

Its firmware, for a version.

public string? Firmware { get; init; }

Property Value

string

Fopts

The frame options a data frame carries.

public byte[] Fopts { get; init; }

Property Value

byte[]

Fport

The port, or null for a frame carrying only options.

public byte? Fport { get; init; }

Property Value

byte?

FreqMaxHz

The highest frequency a configuration allows, in hertz.

public uint? FreqMaxHz { get; init; }

Property Value

uint?

FreqMinHz

The lowest frequency a configuration allows, in hertz.

public uint? FreqMinHz { get; init; }

Property Value

uint?

FrequencyHz

The frequency a frame arrived on, in hertz.

public uint FrequencyHz { get; init; }

Property Value

uint

Gpstime

The GPS time in microseconds since the GPS epoch.

public long? Gpstime { get; init; }

Property Value

long?

Hwspec

The concentrator a configuration is written for, such as sx1301/1.

public string? Hwspec { get; init; }

Property Value

string

JoinEui

The application being joined, for a join request.

public byte[]? JoinEui { get; init; }

Property Value

byte[]

JoinEuiRanges

The join identifier ranges a configuration forwards; empty forwards every join.

public IReadOnlyList<GatewayStationJoinRange> JoinEuiRanges { get; init; }

Property Value

IReadOnlyList<GatewayStationJoinRange>

Kind

Which kind of message.

public GatewayStationKind Kind { get; init; }

Property Value

GatewayStationKind

Levels

How it was heard, for the kinds a station sends up.

public GatewayStationLevels? Levels { get; init; }

Property Value

GatewayStationLevels

MaxEirp

The highest radiated power a configuration allows, in dBm.

public double? MaxEirp { get; init; }

Property Value

double?

Mhdr

The MAC header byte, for a join request or a data frame.

public byte Mhdr { get; init; }

Property Value

byte

Mic

The message integrity code.

public int Mic { get; init; }

Property Value

int

Model

The hardware model, for a version.

public string? Model { get; init; }

Property Value

string

Msgtype

The word the message calls itself on the wire, such as updf. A message of a kind this build does not model is written with this word.

public string? Msgtype { get; init; }

Property Value

string

NetIds

The networks whose data frames a configuration forwards, or null to forward every network's.

public IReadOnlyList<uint>? NetIds { get; init; }

Property Value

IReadOnlyList<uint>

Remarks

A station matches each entry against the top seven bits of a frame's device address, so an empty list forwards no data frame at all.

Package

The package it came from, for a version.

public string? Package { get; init; }

Property Value

string

Payload

The payload, still encrypted, the whole of a proprietary frame, or the frame a downlink transmits.

public byte[] Payload { get; init; }

Property Value

byte[]

PingSlot

The ping slot a class B downlink goes out in.

public GatewayStationWindow? PingSlot { get; init; }

Property Value

GatewayStationWindow

Priority

How urgent a downlink is.

public byte Priority { get; init; }

Property Value

byte

Protocol

The protocol version it speaks, for a version; ProtocolVersion when not set.

public uint? Protocol { get; init; }

Property Value

uint?

Rctx

The radio a downlink goes out on, or a report says it went out on.

public long? Rctx { get; init; }

Property Value

long?

Region

The region a configuration names, such as EU868.

public string? Region { get; init; }

Property Value

string

Rx1

The first receive window a downlink names.

public GatewayStationWindow? Rx1 { get; init; }

Property Value

GatewayStationWindow

Rx2

The second receive window a downlink names.

public GatewayStationWindow? Rx2 { get; init; }

Property Value

GatewayStationWindow

RxDelay

The delay before the first receive window, in seconds.

public byte? RxDelay { get; init; }

Property Value

byte?

Schedule

What to transmit to a group, for a schedule.

public IReadOnlyList<GatewayStationBroadcast> Schedule { get; init; }

Property Value

IReadOnlyList<GatewayStationBroadcast>

Station

The station software, for a version.

public string? Station { get; init; }

Property Value

string

Txtime

When a reported frame went out, in seconds, or the station time a time sync carries, in microseconds.

public double? Txtime { get; init; }

Property Value

double?

Xtime

The station clock in microseconds: the uplink a downlink answers, the moment a reported frame went out, or the one a time sync carries.

public long? Xtime { get; init; }

Property Value

long?