Source code for helium_py.proto.longfi
# flake8: noqa
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: longfi.proto
# plugin: python-betterproto
from dataclasses import dataclass
import betterproto
from betterproto.grpc.grpclib_server import ServiceBase
[docs]class LongFiSpreading(betterproto.Enum):
SF_INVALID = 0
SF7 = 1
SF8 = 2
SF9 = 3
SF10 = 4
[docs]@dataclass(eq=False, repr=False)
class LongFiReq(betterproto.Message):
id: int = betterproto.uint32_field(1)
tx: "LongFiTxPacket" = betterproto.message_field(2, group="kind")
[docs]@dataclass(eq=False, repr=False)
class LongFiResp(betterproto.Message):
id: int = betterproto.uint32_field(1)
tx_status: "LongFiTxStatus" = betterproto.message_field(2, group="kind")
rx: "LongFiRxPacket" = betterproto.message_field(3, group="kind")
parse_err: bytes = betterproto.bytes_field(4, group="kind")
miner_name: bytes = betterproto.bytes_field(5)
[docs]@dataclass(eq=False, repr=False)
class LongFiTxStatus(betterproto.Message):
success: bool = betterproto.bool_field(1)
[docs]@dataclass(eq=False, repr=False)
class LongFiRxPacket(betterproto.Message):
# Status of CRC check.
crc_check: bool = betterproto.bool_field(1)
# 1uS-resolution timestamp derived from concentrator's internal counter.
timestamp: int = betterproto.uint64_field(2)
# Average packet RSSI in dB.
rssi: float = betterproto.float_field(3)
# Average packet SNR, in dB.
snr: float = betterproto.float_field(4)
# Organization Unique ID
oui: int = betterproto.uint32_field(5)
# Device ID
device_id: int = betterproto.uint32_field(6)
# Fingerprint
fingerprint: int = betterproto.uint32_field(7)
# Sequence
sequence: int = betterproto.uint32_field(9)
# Spreading to be used
spreading: "LongFiSpreading" = betterproto.enum_field(10)
# the fully reassembled payload
payload: bytes = betterproto.bytes_field(11)
# De-golayed datagram id and flag bits. NOTE: only the lowest 12 bits are
# valid.
tag_bits: int = betterproto.uint32_field(12)
[docs]@dataclass(eq=False, repr=False)
class LongFiTxPacket(betterproto.Message):
# is device receiver (downlink) or is router receiver (uplink) note: when
# Hotspot is sending Proof of Coverage packet, it should behave as a device
# and flag this as "uplink"
downlink: bool = betterproto.bool_field(1)
# should the receiver ACK
should_ack: bool = betterproto.bool_field(2)
# on uplink, this indicates the device is ready to receive downlink
cts: bool = betterproto.bool_field(3)
# is the packet urgent
priority: bool = betterproto.bool_field(4)
# the packet beyond the tag field is encoded with LDPC
ldpc: bool = betterproto.bool_field(5)
# Organization Unique ID
oui: int = betterproto.uint32_field(6)
# Device ID
device_id: int = betterproto.uint32_field(7)
# Fingerprint
fingerpint: int = betterproto.uint32_field(8)
# Sequence
sequence: int = betterproto.uint32_field(9)
# Spreading to be used
spreading: "LongFiSpreading" = betterproto.enum_field(10)
payload: bytes = betterproto.bytes_field(11)