--- 模块功能:存储sx126x寄存器数据 module(...,package.seeall) --[[ The addresses of the register holding LoRa Modem SyncWord value ]] REG_LR_SYNCWORD = "0740" REG_LR_SYNCWORD_LSB = "0741" REG_OCP = "08E7" LORA_MAC_PRIVATE_SYNCWORD = "1424" LORA_MAC_PUBLIC_SYNCWORD = "3444" RadioStandbyModes_t = { STDBY_RC = "00", STDBY_XOSC = "01", } -- 正确写法:添加等号(=),定义为表 RadioRegulatorMode_t = { USE_LDO = "00", -- 使用LDO模式 USE_DCDC = "01" -- 使用DCDC模式(推荐) } RadioModems_t = { MODEM_FSK = 0, MODEM_LORA = 1, } RadioIrqMasks_t = { IRQ_RADIO_NONE = "0000", IRQ_TX_DONE = "0001", IRQ_RX_DONE = "0002", IRQ_PREAMBLE_DETECTED = "0004", IRQ_SYNCWORD_VALID = "0008", IRQ_HEADER_VALID = "0010", IRQ_HEADER_ERROR = "0020", IRQ_CRC_ERROR = "0040", IRQ_CAD_DONE = "0080", IRQ_CAD_ACTIVITY_DETECTED = "0100", IRQ_RX_TX_TIMEOUT = "0200", IRQ_RADIO_ALL = "FFFF", } RadioOperatingModes_t = { MODE_SLEEP = "00", MODE_STDBY_RC = "01", MODE_STDBY_XOSC = "02", MODE_FS = "03", MODE_TX = "04", MODE_RX = "05", MODE_RX_DC = "06", MODE_CAD = "07" } RadioRampTimes_t = { RADIO_RAMP_10_US = "00", RADIO_RAMP_20_US = "01", RADIO_RAMP_40_US = "02", RADIO_RAMP_80_US = "03", RADIO_RAMP_200_US = "04", RADIO_RAMP_800_US = "05", RADIO_RAMP_1700_US = "06", RADIO_RAMP_3400_US = "07" } RadioPreambleDetection_t = { RADIO_PREAMBLE_DETECTOR_OFF = "00", RADIO_PREAMBLE_DETECTOR_08_BITS = "01", RADIO_PREAMBLE_DETECTOR_16_BITS = "02", RADIO_PREAMBLE_DETECTOR_24_BITS = "03", RADIO_PREAMBLE_DETECTOR_32_BITS = "04" } RadioAddressComp_t = { RADIO_ADDRESSCOMP_FILT_OFF = "00", RADIO_ADDRESSCOMP_FILT_NODE = "01", RADIO_ADDRESSCOMP_FILT_NODE_BROAD = "02" } RadioPacketLengthModes_t = { RADIO_PACKET_FIXED_LENGTH = "00", RADIO_PACKET_VARIABLE_LENGTH = "01" } RadioCrcTypes_t = { RADIO_CRC_OFF = "01", RADIO_CRC_1_BYTES = "00", RADIO_CRC_2_BYTES = "02", RADIO_CRC_1_BYTES_INV = "04", RADIO_CRC_2_BYTES_INV = "06", RADIO_CRC_2_BYTES_IBM = "F1", RADIO_CRC_2_BYTES_CCIT = "F2" } RadioDcFree_t = { RADIO_DC_FREE_OFF = "00", RADIO_DC_FREEWHITENING = "01", } RadioLoRaPacketLengthsMode_t = { LORA_PACKET_VARIABLE_LENGTH = "00", LORA_PACKET_FIXED_LENGTH = "01", LORA_PACKET_EXPLICIT = LORA_PACKET_VARIABLE_LENGTH, LORA_PACKET_IMPLICIT = LORA_PACKET_FIXED_LENGTH, } RadioLoRaCrcModes_t = { LORA_CRC_ON = "01", -- //!< CRC activated LORA_CRC_OFF = "00", --//!< CRC not used } RadioLoRaIQModes_t = { LORA_IQ_NORMAL = "00", LORA_IQ_INVERTED = "01", } RadioPacketTypes_t = { PACKET_TYPE_GFSK = "00", PACKET_TYPE_LORA = "01", PACKET_TYPE_NONE = "0F", } RadioModShapings_t = { MOD_SHAPING_OFF = "00", MOD_SHAPING_G_BT_03 = "08", MOD_SHAPING_G_BT_05 = "09", MOD_SHAPING_G_BT_07 = "0A", MOD_SHAPING_G_BT_1 = "0B", } RadioLoRaSpreadingFactors_t = { LORA_SF5 = "05", LORA_SF6 = "06", LORA_SF7 = "07", LORA_SF8 = "08", LORA_SF9 = "09", LORA_SF10 = "0A", LORA_SF11 = "0B", LORA_SF12 = "0C", } RadioLoRaCodingRates_t = { LORA_CR_4_5 = "01", LORA_CR_4_6 = "02", LORA_CR_4_7 = "03", LORA_CR_4_8 = "04", } RadioLoRaBandwidths_t = { LORA_BW_500 = 6, LORA_BW_250 = 5, LORA_BW_125 = 4, LORA_BW_062 = 3, LORA_BW_041 = 10, LORA_BW_031 = 2, LORA_BW_020 = 9, LORA_BW_015 = 1, LORA_BW_010 = 8, LORA_BW_007 = 0, } Bandwidths = RadioLoRaBandwidths_t PacketParams_t = { PacketType = RadioPacketTypes_t, Params = { Gfsk = { PreambleLength = nil; -- //!< The preamble Tx length for GFSK packet type in bit PreambleMinDetect = RadioPreambleDetection_t; --//!< The preamble Rx length minimal for GFSK packet type SyncWordLength = nil; --//!< The synchronization word length for GFSK packet type AddrComp = RadioAddressComp_t; --//!< Activated SyncWord correlators HeaderType = RadioPacketLengthModes_t; --//!< If the header is explicit, it will be transmitted in the GFSK packet. If the header is implicit, it will not be transmitted PayloadLength = nil; --//!< Size of the payload in the GFSK packet CrcLength = RadioCrcTypes_t; --//!< Size of the CRC block in the GFSK packet DcFree = RadioDcFree_t; }, LoRa = { PreambleLength = nil; HeaderType = RadioLoRaPacketLengthsMode_t; PayloadLength = nil; CrcMode = RadioLoRaCrcModes_t; InvertIQ = RadioLoRaIQModes_t; } } } PacketStatus_t = { PacketType = RadioPacketTypes_t, Params = { Gfsk = { RxStatus = nil, RssiAvg = nil, --//!< The averaged RSSI RssiSync = nil, --//!< The RSSI measured on last packet FreqError = nil }, LoRa = { RssiPkt = nil, -- //!< The RSSI of the last packet SnrPkt = nil, -- //!< The SNR of the last packet SignalRssiPkt = nil, FreqError = nil } } } ModulationParams_t = { PacketType = RadioPacketTypes_t, Params = { Gfsk = { BitRate = nil, Fdev = nil, ModulationShaping =RadioModShapings_t, Bandwidth = nil }, LoRa = { SpreadingFactor = RadioLoRaSpreadingFactors_t, --//!< Spreading Factor for the LoRa modulation Bandwidth = RadioLoRaBandwidths_t, --//!< Bandwidth for the LoRa modulation CodingRate = RadioLoRaCodingRates_t, --//!< Coding rate for the LoRa modulation LowDatarateOptimize = nil; -- //!< Indicates if the modem uses the low datarate optimization } } } SX126x_t = { PacketParams = PacketParams_t, PacketStatus = PacketStatus_t, ModulationParams = ModulationParams_t } -- 定义Radio命令枚举(字符串格式,用于直接通信) --[[ Represents all possible opcode understood by the radio ]] RadioCommands = { RADIO_GET_STATUS = "C0", RADIO_WRITE_REGISTER = "0D", RADIO_READ_REGISTER = "1D", RADIO_WRITE_BUFFER = "0E", RADIO_READ_BUFFER = "1E", RADIO_SET_SLEEP = "84", RADIO_SET_STANDBY = "80", RADIO_SET_FS = "C1", RADIO_SET_TX = "83", RADIO_SET_RX = "82", RADIO_SET_RXDUTYCYCLE = "94", RADIO_SET_CAD = "C5", RADIO_SET_TXCONTINUOUSWAVE = "D1", RADIO_SET_TXCONTINUOUSPREAMBLE = "D2", RADIO_SET_PACKETTYPE = "8A", RADIO_GET_PACKETTYPE = "11", RADIO_SET_RFFREQUENCY = "86", RADIO_SET_TXPARAMS = "8E", RADIO_SET_PACONFIG = "95", RADIO_SET_CADPARAMS = "88", RADIO_SET_BUFFERBASEADDRESS = "8F", RADIO_SET_MODULATIONPARAMS = "8B", RADIO_SET_PACKETPARAMS = "8C", RADIO_GET_RXBUFFERSTATUS = "13", RADIO_GET_PACKETSTATUS = "14", RADIO_GET_RSSIINST = "15", RADIO_GET_STATS = "10", RADIO_RESET_STATS = "00", RADIO_CFG_DIOIRQ = "08", RADIO_GET_IRQSTATUS = "12", RADIO_CLR_IRQSTATUS = "02", RADIO_CALIBRATE = "89", RADIO_CALIBRATEIMAGE = "98", RADIO_SET_REGULATORMODE = "96", RADIO_GET_ERROR = "17", RADIO_CLR_ERROR = "07", RADIO_SET_TCXOMODE = "97", RADIO_SET_TXFALLBACKMODE = "93", RADIO_SET_RFSWITCHMODE = "9D", RADIO_SET_STOPRXTIMERONPREAMBLE = "9F", RADIO_SET_LORASYMBTIMEOUT = "A0" }