pamoja for TypeScript - v0.2.0
    Preparing search index...

    Variable relayConst

    relay: {
        encodeForward: (forwarded: lorawan.ForwardedUplink) => Buffer;
        nextWor: (
            synchronization: lorawan.Synchronization,
            nowUs: number,
            deviceXtalPpm: number,
            symbolUs: number,
            otherChannel?: boolean,
        ) => lorawan.WorSlot | null;
        openWor: (
            frame: Uint8Array,
            keys: lorawan.WorKeys,
            wfcnt: number,
            wor: lorawan.Carrier,
        ) => lorawan.Carrier;
        openWorAck: (
            frame: Uint8Array,
            keys: lorawan.WorKeys,
            devAddr: number,
            wfcnt: number,
            ack: lorawan.Carrier,
            uplink: lorawan.Carrier,
        ) => lorawan.StateSync;
        parseForward: (payload: Uint8Array) => lorawan.ForwardedUplink;
        parseWor: (frame: Uint8Array) => lorawan.Wor;
        rootWorSKey: (networkKey: Uint8Array) => Buffer;
        secondChannel: (
            secondChannelIndex: number,
            dataRate: number,
            ackOffset: number,
            frequencyHz: number,
        ) => lora.LoraRelayChannel | null;
        synchronization: (
            worStartUs: number,
            preambleSymbols: number,
            symbolUs: number,
            state: lorawan.StateSync,
        ) => lorawan.Synchronization;
        tOffsetMs: (scanStartUs: number, preambleEndUs: number) => number | null;
        unsynchronizedPreamble: (
            cadPeriodicity: lorawan.CadPeriodicity,
            symbolUs: number,
            cadToRx: lorawan.CadToRx,
        ) => number;
        worAck: (
            keys: lorawan.WorKeys,
            devAddr: number,
            wfcnt: number,
            ack: lorawan.Carrier,
            uplink: lorawan.Carrier,
            state: lorawan.StateSync,
        ) => Buffer;
        worJoinRequest: (uplink: lorawan.Carrier) => Buffer;
        worKeys: (rootKey: Uint8Array, devAddr: number) => lorawan.WorKeys;
        worUplink: (
            keys: lorawan.WorKeys,
            devAddr: number,
            wfcnt: number,
            uplink: lorawan.Carrier,
            wor: lorawan.Carrier,
        ) => Buffer;
    }

    A LoRaWAN relay, TS011-1.0.1: what an end device and a relay say to each other.

    A relay sleeps, waking every scan period to look for radio activity. An end device out of a gateway's reach first sends a wake-on-radio (WOR) frame whose preamble spans that sleep and which says where its uplink follows. The relay may acknowledge with its own timing, so the next preamble can be short, then forwards the uplink on port LA_FPORT_RELAY.

    Type Declaration

    • ReadonlyencodeForward: (forwarded: lorawan.ForwardedUplink) => Buffer

      Writes an uplink a relay forwards on port 226, section 9.1. A strength or ratio past what its field carries goes out as the closest value.

      For a data rate or frequency the fields cannot carry.

    • ReadonlynextWor: (
          synchronization: lorawan.Synchronization,
          nowUs: number,
          deviceXtalPpm: number,
          symbolUs: number,
          otherChannel?: boolean,
      ) => lorawan.WorSlot | null

      Picks the relay scan a synchronized end device aims its next WOR frame at, appendix 1.

    • ReadonlyopenWor: (
          frame: Uint8Array,
          keys: lorawan.WorKeys,
          wfcnt: number,
          wor: lorawan.Carrier,
      ) => lorawan.Carrier

      Checks a WOR frame ahead of a Class A uplink and reads where the uplink follows.

      When the frame is not an uplink WOR, or its integrity code does not verify.

    • ReadonlyopenWorAck: (
          frame: Uint8Array,
          keys: lorawan.WorKeys,
          devAddr: number,
          wfcnt: number,
          ack: lorawan.Carrier,
          uplink: lorawan.Carrier,
      ) => lorawan.StateSync

      Checks and reads a WOR ACK, section 6.2.

      When the integrity code does not verify, or the periodicity is reserved.

    • ReadonlyparseForward: (payload: Uint8Array) => lorawan.ForwardedUplink

      Reads an uplink a relay forwarded, section 9.1.

      For a payload too short or a reserved WOR channel.

    • ReadonlyparseWor: (frame: Uint8Array) => lorawan.Wor

      Reads a WOR frame, leaving an uplink's carrier sealed.

      For a reserved or proprietary type, or a length that is not the type's.

    • ReadonlyrootWorSKey: (networkKey: Uint8Array) => Buffer

      Derives an end device's root relay session key from its network session key, section 4.4.

    • ReadonlysecondChannel: (
          secondChannelIndex: number,
          dataRate: number,
          ackOffset: number,
          frequencyHz: number,
      ) => lora.LoraRelayChannel | null

      Reads the second channel a relay or end device configuration describes.

    • Readonlysynchronization: (
          worStartUs: number,
          preambleSymbols: number,
          symbolUs: number,
          state: lorawan.StateSync,
      ) => lorawan.Synchronization

      Works out when a relay scanned from the WOR ACK that answered a frame, appendix 1.

    • ReadonlytOffsetMs: (scanStartUs: number, preambleEndUs: number) => number | null

      The offset a relay reports in a WOR ACK, appendix 1.

    • ReadonlyunsynchronizedPreamble: (
          cadPeriodicity: lorawan.CadPeriodicity,
          symbolUs: number,
          cadToRx: lorawan.CadToRx,
      ) => number

      The WOR preamble of an end device that does not know when the relay scans, section 5.2.

    • ReadonlyworAck: (
          keys: lorawan.WorKeys,
          devAddr: number,
          wfcnt: number,
          ack: lorawan.Carrier,
          uplink: lorawan.Carrier,
          state: lorawan.StateSync,
      ) => Buffer

      Builds a relay's WOR ACK, section 6.2.

      For a state or carrier the fields cannot carry.

    • ReadonlyworJoinRequest: (uplink: lorawan.Carrier) => Buffer

      Builds the WOR frame ahead of a join request, section 5.3.1.

      For a data rate past 15 or a frequency the field cannot carry.

    • ReadonlyworKeys: (rootKey: Uint8Array, devAddr: number) => lorawan.WorKeys

      Derives an end device's WOR keys from its root relay session key, section 4.5.

    • Builds the WOR frame ahead of a Class A uplink, section 5.3.2.

      For a carrier the fields cannot carry.

    const keys = session.worKeys()
    const wor = { frequencyHz: 865_100_000, dataRate: 3 }
    const uplink = { frequencyHz: 868_100_000, dataRate: 5 }
    const frame = relay.worUplink(keys, session.devAddr, 1, uplink, wor)
    relay.openWor(frame, keys, 1, wor) // { frequencyHz: 868100000, dataRate: 5 }