Source code for helium_py.proto.radio
# flake8: noqa
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: radio.proto
# plugin: python-betterproto
from dataclasses import dataclass
import betterproto
from betterproto.grpc.grpclib_server import ServiceBase
[docs]class Radio(betterproto.Enum):
R0 = 0
R1 = 1
[docs]class Spreading(betterproto.Enum):
SF_UNDEFINED = 0
SF7 = 1
SF8 = 2
SF9 = 3
SF10 = 4
SF11 = 5
SF12 = 6
[docs]class Bandwidth(betterproto.Enum):
BW_UNDEFINED = 0
BW7_8kHz = 1
BW15_6kHz = 2
BW31_2kHz = 3
BW62_5kHz = 4
BW125kHz = 5
BW250kHz = 6
BW500kHz = 7
[docs]class Coderate(betterproto.Enum):
CR_UNDEFINED = 0
CR4_5 = 1
CR4_6 = 2
CR4_7 = 3
CR4_8 = 4
[docs]@dataclass(eq=False, repr=False)
class RadioReq(betterproto.Message):
id: int = betterproto.uint32_field(1)
tx: "RadioTxReq" = betterproto.message_field(2, group="kind")
[docs]@dataclass(eq=False, repr=False)
class RadioResp(betterproto.Message):
id: int = betterproto.uint32_field(1)
tx: "RadioTxResp" = betterproto.message_field(2, group="kind")
rx_packet: "RadioRxPacket" = betterproto.message_field(3, group="kind")
parse_err: bytes = betterproto.bytes_field(4, group="kind")
[docs]@dataclass(eq=False, repr=False)
class RadioTxReq(betterproto.Message):
# Center frequency to transmit on.
freq: int = betterproto.uint32_field(1)
# Which radio to transmit on.
radio: "Radio" = betterproto.enum_field(2)
# TX power (in dBm).
power: int = betterproto.int32_field(3)
# Modulation bandwidth.
bandwidth: "Bandwidth" = betterproto.enum_field(4)
# Spreading factor to use with this packet.
spreading: "Spreading" = betterproto.enum_field(5)
# Error-correcting-code of the packet.
coderate: "Coderate" = betterproto.enum_field(6)
# Invert signal polarity for orthogonal downlinks.
invert_polarity: bool = betterproto.bool_field(7)
# Do not send a CRC in the packet.
omit_crc: bool = betterproto.bool_field(8)
# Enable implicit header mode.
implicit_header: bool = betterproto.bool_field(9)
# Arbitrary user-defined payload to transmit.
payload: bytes = betterproto.bytes_field(10)
[docs]@dataclass(eq=False, repr=False)
class RadioRxPacket(betterproto.Message):
# Center frequency of the channel this packet was received on.
freq: int = betterproto.uint32_field(1)
# Channel this packet packet was received on.
if_chain: int = betterproto.uint32_field(2)
# Status of CRC check.
crc_check: bool = betterproto.bool_field(3)
# 1uS-resolution timestamp derived from concentrator's internal counter.
timestamp: int = betterproto.uint64_field(4)
# RF chain this packet was received on.
radio: "Radio" = betterproto.enum_field(5)
# Modulation bandwidth.
bandwidth: "Bandwidth" = betterproto.enum_field(6)
# Spreading factor of this packet.
spreading: "Spreading" = betterproto.enum_field(7)
# Error Correcting Code rate of this packet.
coderate: "Coderate" = betterproto.enum_field(8)
# Average packet RSSI in dB.
rssi: float = betterproto.float_field(9)
# Average packet SNR, in dB.
snr: float = betterproto.float_field(10)
# This packet's payload.
payload: bytes = betterproto.bytes_field(11)
[docs]@dataclass(eq=False, repr=False)
class RadioTxResp(betterproto.Message):
success: bool = betterproto.bool_field(1)