LoRaWAN-X Unit
Unit LoRaWAN-X 是一款基于 LoRa 技术的 LoRaWAN 通信模块,专为这些频段设计。该模块采用 STM32WLE5 方案,支持低功耗、长距离通信,并具备高灵敏度特性。模块内置 LoRaWAN 协议栈,支持 Class A、Class B 和 Class C 三种工作模式。同时支持点对点(P2P)通信模式,并使用 UART 通信接口(通过 AT command set 控制)实现灵活配置。
支持以下产品:
MicroPython LoRaWAN-CN470 LoRaWAN OTAA 模式应用示例:
1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from unit import LoRaWANUnit_RUI3 9import time 10 11 12title0 = None 13label2 = None 14label0 = None 15label1 = None 16lorawancn470_0 = None 17 18 19def setup(): 20 global title0, label2, label0, label1, lorawancn470_0 21 22 M5.begin() 23 Widgets.fillScreen(0x222222) 24 title0 = Widgets.Title( 25 "LoRaWAN OTAA CoreS3 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18 26 ) 27 label2 = Widgets.Label( 28 "LoRa Message Rec:", 1, 172, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18 29 ) 30 label0 = Widgets.Label( 31 "LoRa Network Join status:", 1, 68, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18 32 ) 33 label1 = Widgets.Label( 34 "LoRa Message Send status:", 1, 121, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18 35 ) 36 37 lorawancn470_0 = LoRaWANUnit_RUI3(2, port=(1, 2)) 38 lorawancn470_0.set_network_mode(1) 39 lorawancn470_0.set_otaa_config("xxxxx", "xxxxx", "xxxxx") 40 lorawancn470_0.set_channel_mask("0400") 41 lorawancn470_0.set_rx_delay_on_window1(1) 42 lorawancn470_0.set_rx_delay_on_window2(2) 43 lorawancn470_0.set_rx_data_rate_on_windows2(0) 44 lorawancn470_0.set_lorawan_node_class("C") 45 lorawancn470_0.join_network(0) 46 47 48def loop(): 49 global title0, label2, label0, label1, lorawancn470_0 50 M5.update() 51 label0.setText( 52 str((str("LoRa Network Join status:") + str((lorawancn470_0.get_join_state())))) 53 ) 54 if lorawancn470_0.get_join_state(): 55 label1.setText( 56 str( 57 ( 58 str("LoRa Message Send status:") 59 + str((lorawancn470_0.send_data(1, "aabbcc", 6000))) 60 ) 61 ) 62 ) 63 label2.setText(str((str("LoRa Message Rec:") + str((lorawancn470_0.get_last_receive()))))) 64 time.sleep(6) 65 66 67if __name__ == "__main__": 68 try: 69 setup() 70 while True: 71 loop() 72 except (Exception, KeyboardInterrupt) as e: 73 try: 74 from utility import print_error_msg 75 76 print_error_msg(e) 77 except ImportError: 78 print("please update to latest firmware")
MicroPython LoRaWAN-CN470 P2P 模式 TX 应用示例:
1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from unit import LoRaWANUnit_RUI3 9import time 10 11 12title0 = None 13label0 = None 14lorawancn470_0 = None 15 16 17def setup(): 18 global title0, label0, lorawancn470_0 19 20 M5.begin() 21 Widgets.fillScreen(0x222222) 22 title0 = Widgets.Title( 23 "LoRaWAN P2P Send CoreS3 e.g.", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18 24 ) 25 label0 = Widgets.Label( 26 "P2P Message Send State:", 3, 115, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18 27 ) 28 29 lorawancn470_0 = LoRaWANUnit_RUI3(2, port=(1, 2)) 30 lorawancn470_0.set_network_mode(0) 31 lorawancn470_0.set_p2p_frequency(470000000) 32 lorawancn470_0.set_p2p_spreading_factor(7) 33 lorawancn470_0.set_p2p_bandwidth(0) 34 lorawancn470_0.set_p2p_tx_power(14) 35 lorawancn470_0.set_p2p_code_rate(0) 36 lorawancn470_0.set_p2p_preamble_length(8) 37 lorawancn470_0.set_p2p_sync_word(0xFFFF) 38 39 40def loop(): 41 global title0, label0, lorawancn470_0 42 M5.update() 43 label0.setText( 44 str( 45 ( 46 str("P2P Message Send State:") 47 + str((lorawancn470_0.send_p2p_data("M5", timeout=1000, to_hex=True))) 48 ) 49 ) 50 ) 51 time.sleep(3.5) 52 53 54if __name__ == "__main__": 55 try: 56 setup() 57 while True: 58 loop() 59 except (Exception, KeyboardInterrupt) as e: 60 try: 61 from utility import print_error_msg 62 63 print_error_msg(e) 64 except ImportError: 65 print("please update to latest firmware")
MicroPython LoRaWAN-CN470 P2P 模式 RX 应用示例:
1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from unit import LoRaWANUnit_RUI3 9import time 10 11 12title0 = None 13label0 = None 14lorawancn470_0 = None 15 16 17def setup(): 18 global title0, label0, lorawancn470_0 19 20 M5.begin() 21 Widgets.fillScreen(0x222222) 22 title0 = Widgets.Title( 23 "LoRaWAN P2P Rec CoreS3 e.g.", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18 24 ) 25 label0 = Widgets.Label( 26 "P2P Message Rec:", 3, 115, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18 27 ) 28 29 lorawancn470_0 = LoRaWANUnit_RUI3(2, port=(1, 2)) 30 lorawancn470_0.set_network_mode(0) 31 lorawancn470_0.set_p2p_frequency(470000000) 32 lorawancn470_0.set_p2p_spreading_factor(7) 33 lorawancn470_0.set_p2p_bandwidth(0) 34 lorawancn470_0.set_p2p_tx_power(14) 35 lorawancn470_0.set_p2p_code_rate(0) 36 lorawancn470_0.set_p2p_preamble_length(8) 37 lorawancn470_0.set_p2p_sync_word(0xFFFF) 38 39 40def loop(): 41 global title0, label0, lorawancn470_0 42 M5.update() 43 label0.setText( 44 str((str("P2P Message Rec:") + str((lorawancn470_0.get_p2p_receive_data(3000, True))))) 45 ) 46 time.sleep(3.5) 47 48 49if __name__ == "__main__": 50 try: 51 setup() 52 while True: 53 loop() 54 except (Exception, KeyboardInterrupt) as e: 55 try: 56 from utility import print_error_msg 57 58 print_error_msg(e) 59 except ImportError: 60 print("please update to latest firmware")
UIFLOW2 LoRaWAN-CN470 LoRaWAN OTAA 模式示例:
UIFLOW2 LoRaWAN-CN470 P2P 模式 TX 应用示例:
UIFLOW2 LoRaWAN-CN470 P2P 模式 RX 应用示例:
class LoRaWAN_X
Constructors
Methods
- LoRaWAN_X.set_abp_config(dev_addr, apps_key, nwks_key)
使用提供的设备地址、应用会话密钥和网络会话密钥,将设备配置为 ABP(Activation By Personalization)模式。
UIFLOW2:

- LoRaWAN_X.get_abp_config()
检索当前 ABP 配置,包括设备地址、应用会话密钥和网络会话密钥。
- 返回:
一个包含设备地址、应用会话密钥和网络会话密钥的元组。对于缺失或无效的配置,返回 None 或 False。
UIFLOW2:

- LoRaWAN_X.set_otaa_config(device_eui, app_eui, app_key)
使用提供的设备 EUI、应用 EUI 和应用密钥将设备配置为 OTAA(空中激活)模式。
- 参数:
device_eui – 用于 OTAA 配置的设备 EUI。
app_eui – 用于 OTAA 配置的应用程序 EUI。
app_key – 用于加密的应用密钥。
UIFLOW2:

- LoRaWAN_X.get_otaa_config()
检索当前 OTAA 配置,包括设备 EUI、应用密钥和应用 EUI。
- 返回:
包含设备 EUI、应用密钥和应用 EUI 的元组。
UIFLOW2:

- LoRaWAN_X.send_cmd(cmd, have_return, is_single, async_event, timeout)
向模块发送 AT 命令,并可选读取响应。
- LoRaWAN_X.read_response(cmd, is_single, async_event, timeout)
读取并处理模块对 AT 命令的响应。
- LoRaWAN_X.get_commuinication_state()
通过发送 AT 命令并等待响应来检查通信状态。
- 返回:
模块返回的响应,用于指示通信状态。
- LoRaWAN_X.reset_module()
使用 ATZ 命令重置模块。
- LoRaWAN_X.reset_module_to_default()
使用 ATR 命令将模块重置为默认设置,并等待重置过程完成。
UIFLOW2:

- LoRaWAN_X.get_serial_number()
获取模块的序列号。
- 返回:
序列号字符串。
- LoRaWAN_X.get_fireware_version()
获取模块的固件版本。
- 返回:
固件版本字符串。
- LoRaWAN_X.get_at_version()
获取模块支持的 AT 命令版本。
- 返回:
AT 命令版本字符串。
- LoRaWAN_X.get_hardware_version()
获取模块的硬件版本。
- 返回:
硬件版本的字符串。
- LoRaWAN_X.get_hardware_id()
获取模块的硬件 ID。
- 返回:
硬件 ID 字符串。
- LoRaWAN_X.get_ble_mac()
获取模块的 Bluetooth MAC 地址。
- 返回:
BLE MAC 地址字符串。
- LoRaWAN_X.set_sleep_time(time)
配置模块的休眠时间。如果未提供时间,模块将进入休眠模式。
- 参数:
time – 以秒为单位的睡眠时长。如果为 None,则触发睡眠模式但不指定时长。
- 返回:
如果命令成功发送则为 True,否则为 False。
- LoRaWAN_X.get_low_power_mode()
检查模块是否处于低功耗模式。
- 返回:
如果启用了低功耗模式,则为 True,否则为 False。
- LoRaWAN_X.set_low_power_mode(mode)
设置模块低功耗模式。
- 参数:
mode (bool) – 一个布尔值,用于指示是否启用 (True) 或禁用 (False) 低功耗模式。
- 返回:
如果命令成功发送则为 True,否则为 False。
- LoRaWAN_X.set_baud_rate(rate)
设置 UART 通信的波特率。
- 参数:
rate – 所需的波特率值。
- 返回:
如果命令成功发送则为 True,否则为 False。
- LoRaWAN_X.get_baud_rate()
获取当前 UART 波特率设置。
- 返回:
波特率,类型为整数。
- LoRaWAN_X.get_device_eui()
获取 OTAA(Over-The-Air Activation)模式的 Device EUI。
- 返回:
以字符串形式的 Device EUI。
- LoRaWAN_X.set_device_eui(eui)
配置 OTAA 模式的 Device EUI。
- 参数:
eui (str) – 要设置的 Device EUI,字符串类型。
- 返回:
如果命令成功发送则为 True,否则为 False。
- LoRaWAN_X.get_app_eui()
获取 OTAA 模式的 Application EUI。
- 返回:
Application EUI(字符串形式)。
- LoRaWAN_X.set_app_eui(eui)
为 OTAA 模式配置 Application EUI。
- 参数:
eui (str) – 要设置的 Application EUI,以字符串形式表示。
- 返回:
如果命令成功发送则为 True,否则为 False。
- LoRaWAN_X.get_app_key()
获取 OTAA 模式的 Application Key。
- 返回:
应用密钥(Application Key),字符串形式。
- LoRaWAN_X.set_app_key(key)
配置 OTAA 模式的应用密钥。
- 参数:
key (str) – 要设置的应用密钥(Application Key),以字符串形式。
- 返回:
如果命令成功发送则为 True,否则为 False。
- LoRaWAN_X.get_device_address()
获取设备地址。
- 返回:
设备地址字符串。
- LoRaWAN_X.set_device_address(address)
设置设备地址。
- 参数:
address (str) – 要设置的设备地址,以字符串形式提供。
- 返回:
应用会话密钥,类型为字符串。
- LoRaWAN_X.get_apps_key()
获取应用会话密钥。
- 返回:
AT 命令执行结果
- LoRaWAN_X.set_apps_key(key)
设置应用会话密钥。此操作仅适用于 ABP 模式。
- 参数:
key (str) – 要设置的应用会话密钥,以字符串形式提供。
- 返回:
作为字符串形式的网络会话密钥。
- LoRaWAN_X.get_networks_key()
获取网络会话密钥。
- 返回:
AT 命令执行结果
- LoRaWAN_X.set_networks_key(key)
设置网络会话密钥。该操作仅适用于 ABP 模式。
- 参数:
key (str) – 要设置的网络会话密钥,以字符串形式提供。
- 返回:
AT 命令执行结果
- LoRaWAN_X.get_network_id()
获取网络 ID。
- 返回:
组播根密钥的字符串形式。
- LoRaWAN_X.get_mc_root_key()
获取组播根密钥。
- 返回:
如果启用确认模式,则为 True;否则为 False。
- LoRaWAN_X.get_confirm_mode()
获取确认模式。
- 返回:
AT 命令执行结果
- LoRaWAN_X.set_confirm_mode(mode)
设置确认模式。
- 参数:
mode (bool) – 一个布尔值,用于指示是否启用(True)或禁用(False)确认模式。
- 返回:
如果上次确认的上行链路成功,则为 True;否则为 False。
- LoRaWAN_X.get_confirm_state()
获取最后一次已确认上行链路的状态。
- 返回:
包含 state、auto_join、retry_interval 和 max_retry(均为整数)的元组;如果获取失败,则返回 False。
- LoRaWAN_X.get_join_config()
获取 LoRa 当前的 join 配置。
- 返回:
如果模块成功加入网络,则为 True,否则为 False
- LoRaWAN_X.set_join_config(state, auto_join, retry_interval, max_retry, timeout)
配置 LoRa 的入网参数。该配置不确认网络入网是否成功。
- 返回:
如果命令设置成功则返回 True,否则返回 False。
- 参数:
- 返回:
加入模式的整数值(ABP 为 0,OTAA 为 1)。
UIFLOW2:

- LoRaWAN_X.join_network(timeout)
使用预定义的 join 参数加入 LoRa 网络。
- 参数:
timeout (int) – 加入(join)命令的超时时间(单位:毫秒),默认值为 8000 ms。
- 返回:
如果命令设置成功则返回 True,否则返回 False。
UIFLOW2:


- LoRaWAN_X.get_join_mode()
获取当前入网模式。0 表示 ABP 模式,1 表示 OTAA 模式。
- 返回:
如果已加入则为 True,否则为 False。
- LoRaWAN_X.set_join_mode(mode)
设置 LoRa 模块的入网模式。
- 参数:
mode (int) – 要设置的入网模式:0 表示 ABP,1 表示 OTAA。
- 返回:
接收到的数据,字符串形式。
UIFLOW2:

- LoRaWAN_X.get_join_state()
检查模块是否已成功加入网络。1 表示已加入,0 表示未加入。
- 返回:
如果数据发送成功则为 True,否则为 False。
UIFLOW2:

- LoRaWAN_X.get_last_receive()
获取最后一次接收到的消息中的数据。
- 返回:
如果数据发送成功则为 True,否则为 False。
UIFLOW2:

- LoRaWAN_X.send_data(port, data, timeout)
通过指定端口发送数据。
- 参数:
- 返回:
如果命令设置成功则返回 True,否则返回 False。
UIFLOW2:


- LoRaWAN_X.send_long_data(port, ack, data, timeout)
通过指定端口发送长数据,并可选择启用确认应答。
- LoRaWAN_X.set_retry(retry)
配置传输的重试周期。
- 参数:
retry (int) – 重试周期值范围为 0 至 7,默认值为 0。
- 返回:
如果命令设置成功则返回 True,否则返回 False。
- LoRaWAN_X.get_retry()
获取当前重试周期配置。
- 返回:
重试周期值,类型为整数。
- LoRaWAN_X.get_adaptive_rate_state()
检查是否启用了自适应数据速率(ADR)。1 表示启用,0 表示禁用。
- 返回:
如果启用了 ADR,则为 True,否则为 False。
- LoRaWAN_X.set_adaptive_rate_state(state)
配置自适应数据速率(ADR)状态。
- 参数:
state (bool) – 一个布尔值,用于指示是否启用(True)或禁用(False)ADR。
- 返回:
如果命令设置成功则返回 True,否则返回 False。
- LoRaWAN_X.get_lorawan_node_class()
获取当前 LoRaWAN 节点类别。
- 返回:
LoRaWAN 节点类(字符串)。
- LoRaWAN_X.set_lorawan_node_class(node_class)
设置 LoRaWAN 节点类别。
- 参数:
node_class (str) – 要设置的节点类,以字符串形式提供
- 返回:
如果命令设置成功则返回 True,否则返回 False。
- LoRaWAN_X.get_duty_cycle_state()
检查是否启用 ETSI duty cycle。1 表示启用,0 表示禁用。
- 返回:
如果占空比已启用,则返回 True;否则返回 False。
- LoRaWAN_X.set_duty_cycle_state(state)
设置 ETSI 占空比状态,可根据地区启用或禁用。
- 参数:
state (bool) – 一个布尔值,用于指示是否启用(True)或禁用(False)占空比。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_data_rate()
获取当前数据速率配置。
- 返回:
数据速率(整数)。
- LoRaWAN_X.get_join_delay_on_window1()
获取加入流程在窗口 1 上的延迟。
- 返回:
窗口 1 的 join 延迟(整数)。
- LoRaWAN_X.set_join_delay_on_window1(delay)
设置窗口 1 的加入延迟。
- 参数:
delay (int) – 为窗口 1 设置的入网延迟,类型为整数。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_join_delay_on_window2()
获取窗口 2 上加入流程的延迟。
- 返回:
窗口 2 的加入延迟(整数)。
- LoRaWAN_X.set_join_delay_on_window2(delay)
设置 window 2 的加入延迟。
- 参数:
delay (int) – 为窗口 2 设置的加入延迟(整数)。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_public_network_mode()
获取公网模式(启用或禁用)。
- 返回:
如果启用了公共网络模式,则为 True,否则为 False。
- LoRaWAN_X.set_public_network_mode(mode)
设置公用网络模式为启用或禁用。
- 参数:
mode (bool) – 一个布尔值,用于指示是否启用 (True) 或禁用 (False) 公共网络模式。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_rx_delay_on_window1()
获取接收窗口 1 延迟。
- 返回:
接收窗口 1 的延迟,类型为整数。
- LoRaWAN_X.set_rx_delay_on_window1(delay)
设置窗口 1 的接收延迟。
- 参数:
delay (int) – 为接收窗口 1 设置的延迟时间,类型为整数。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_rx_delay_on_window2()
获取接收窗口 2 延迟。
- 返回:
接收窗口 2 延迟,整数类型。
- LoRaWAN_X.set_rx_delay_on_window2(delay)
设置窗口 2 的接收延迟。
- 参数:
delay (int) – 为接收窗口 2 设置的延迟,范围为 2 到 16。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_rx_data_rate_on_windows2()
获取窗口 2 的接收数据速率。
- 返回:
窗口 2 的接收数据速率,以整数表示。
- LoRaWAN_X.set_rx_data_rate_on_windows2(rate)
设置窗口 2 的接收数据速率。
- 参数:
rate (int) – 设置用于窗口 2 的数据速率。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_rx_frequency_on_windows2()
根据区域频率设置,获取窗口 2 的接收频率。
- 返回:
窗口 2 的接收频率(整数)。
- LoRaWAN_X.get_tx_power()
获取当前的发射功率设置。
- 返回:
发射功率设置,类型为整数。
- LoRaWAN_X.get_network_link_state()
获取网络链路状态。
- 返回:
网络链接状态的字符串。
- LoRaWAN_X.set_network_link_state(state)
- 参数:
state (int) – 设置设备的网络链路状态。0 - 禁用链路检查 1 - 在下一次有效载荷上行时执行一次链路检查 2 - 在每次有效载荷上行后自动执行链路检查
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_listen_before_talk()
获取 Listen Before Talk (LBT) 状态。
- 返回:
如果启用了 LBT,则为 True;否则为 False。
- LoRaWAN_X.set_listen_before_talk(state)
设置 Listen Before Talk (LBT) 状态。
- 参数:
state (bool) – 为 LBT 设置的状态(True 表示启用,False 表示禁用)。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.set_listen_before_talk_rssi(rssi)
设置 Listen Before Talk (LBT) 的 RSSI 阈值。
- 参数:
rssi (int) – 设置用于 LBT 的 RSSI 阈值。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_listen_before_talk_rssi()
获取 Listen Before Talk (LBT) 的 RSSI 阈值。
- 返回:
RSSI 阈值(整数)。
- LoRaWAN_X.get_listen_before_talk_scan_time()
获取 Listen Before Talk (LBT) 的扫描时间。
- 返回:
LBT 的扫描时间(整数)。
- LoRaWAN_X.set_listen_before_talk_scan_time(time)
设置 Listen Before Talk (LBT) 的扫描时间。
- 参数:
time (int) – 用于设置 LBT 的扫描时间。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_time_request()
获取时间请求状态。
- 返回:
时间请求状态(整数)。
- LoRaWAN_X.set_time_request(state)
设置时间请求状态。
- 参数:
state (bool) – 设置时间请求的状态(True 为启用,False 为禁用)。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_location_time()
获取 UTC+0 的位置时间。
- 返回:
以字符串形式表示的 UTC+0 时区位置时间。
- LoRaWAN_X.get_unicast_ping_interval()
获取 Class B 模式下的单播 ping 间隔。
- 返回:
单播 ping 间隔(整数)。
- LoRaWAN_X.set_unicast_ping_interval(interval)
设置设备的单播 ping 间隔。
- 参数:
interval (int) – 设置单播 ping 的间隔(0 到 7)。0 表示在 beacon 窗口期间大约每秒一次,7 表示每 128 秒一次(最大 ping 周期)。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_beacon_frequency()
获取信标频率。
- 返回:
作为整数的信标频率。
- LoRaWAN_X.get_beacon_time()
获取信标时间。
- 返回:
信标时间,整数。
- LoRaWAN_X.get_beacon_gateway_gps()
获取 beacon 网关的 GPS 位置信息。
- 返回:
以字符串形式返回 beacon gateway 的 GPS 信息。
- LoRaWAN_X.get_rssi()
获取接收信号强度指示(RSSI)。
- 返回:
RSSI 值的字符串。
- LoRaWAN_X.get_all_rssi()
检索所有通道的 RSSI 值。
- 返回:
所有通道的 RSSI 值字符串。
- LoRaWAN_X.get_signal_noise_ratio()
获取信噪比 (SNR)。
- 返回:
以字符串形式表示的 SNR 值。
- LoRaWAN_X.get_channel_mask()
获取信道掩码(仅适用于 US915、AU915、CN470)。
- 返回:
通道掩码(channel mask),以字符串形式表示。
- LoRaWAN_X.set_channel_mask(mask)
设置通道掩码,用于开启或关闭指定通道(仅适用于 US915、AU915、CN470)。
- 参数:
mask (str) – 通道掩码,以 4 位长度的十六进制字符串表示。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_eight_channel_mode_state()
获取八通道模式的状态。
- 返回:
八通道模式的状态(以字符串形式)。
- LoRaWAN_X.set_eight_channel_mode_state(max_group)
设置八通道模式的状态,组号范围为 1 到 12。
- 参数:
max_group (int) – 最大分组编号(1 到 12)。
- 返回:
如果 AT 命令执行成功则返回 True,否则返回 False。
- LoRaWAN_X.get_single_channel_mode()
获取单通道模式。
- 返回:
单通道模式的字符串。
- LoRaWAN_X.set_single_channel_mode()
设置单通道模式。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_active_region()
获取设备的活动区域。
- 返回:
活动区域的字符串。
- LoRaWAN_X.set_active_region(region)
- 参数:
region (int) – 设置设备的活动区域。
- 返回:
AT 命令执行结果。-
EU433:0 -CN470:1 -RU864:2 -IN865:3 -EU868:4 -US915:5 -AU915,:6 -KR920,:7 -AS923-1:8 -AS923-2:9 -AS923-3:10 -AS923-4:11 -LA915:12
- LoRaWAN_X.add_multicast_group(Class, DevAddr, NwkSKey, AppSKey, Frequency, Datarate, Periodicit)
将一个多播组添加到设备中。
- 参数:
Class (str) – 组播组的类别。
DevAddr – 设备地址。
NwkSKey – 网络会话密钥。
AppSKey – 应用程序会话密钥。
Frequency – 组播组的频率。
Datarate – 组播组的数据速率。
Periodicit – 多播组的周期性。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.remove_multicast_group(DevAddr)
通过指定的设备地址移除一个多播组。
- 参数:
DevAddr – 要移除的组播组设备地址。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.get_multicast_list()
获取多播组列表。
- 返回:
以字符串形式表示的多播组列表。
- LoRaWAN_X.get_network_mode()
获取当前网络模式。
- 返回:
当前网络模式,以整数表示 -
P2P_LORA: 0 -LoRaWAN: 1 -P2P_FSK: 2
- LoRaWAN_X.set_network_mode(mode)
设置设备的网络模式。
- 参数:
mode (int) – 用于设置
get_network_id的模式。- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_frequency()
获取当前 P2P 频率。
- 返回:
当前 P2P 频率(整数)。
UIFLOW2:

- LoRaWAN_X.set_p2p_frequency(frequency)
设置设备的 P2P 频率。
- 参数:
frequency (int) – 用于设置 P2P 通信的频率。
- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_spreading_factor()
获取当前 P2P 扩频因子。
- 返回:
当前 P2P 扩频因子,以整数形式表示。
UIFLOW2:

- LoRaWAN_X.set_p2p_spreading_factor(spreading_factor)
设置 P2P 扩频因子。
- 参数:
spreading_factor (int) – 用于设置 P2P 通信的扩频因子。默认值为 7,范围为 5 到 12。
- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_bandwidth()
获取当前 P2P 带宽。
- 返回:
当前 P2P 带宽,以整数表示。
UIFLOW2:

- LoRaWAN_X.get_p2p_code_rate()
获取当前 P2P 码率。
- 返回:
当前 P2P 代码速率(整数)。
UIFLOW2:

- LoRaWAN_X.set_p2p_code_rate(code_rate)
设置 P2P 码率。
- 参数:
code_rate (int) – 用于设置 P2P 通信的编码率。默认值为 0,范围为 0 到 3。0 = 4/5,1 = 4/6,2 = 4/7,3 = 4/8。
- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_preamble_length()
获取当前 P2P 前导码长度。
- 返回:
当前 P2P 前导码长度,类型为整数。
UIFLOW2:

- LoRaWAN_X.set_p2p_preamble_length(length)
设置 P2P 前导码长度。
- 参数:
length (int) – 用于设置 P2P 通信的前导码长度。默认值为 8,范围为 5 到 65535。
- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_tx_power()
获取当前 P2P 传输功率。
- 返回:
当前 P2P 发射功率(整数)。
UIFLOW2:

- LoRaWAN_X.set_p2p_tx_power(power)
设置 P2P 传输功率。
- 参数:
power (int) – 用于设置 P2P 通信的发射功率。默认值为 14 dBm,范围为 5 到 22 dBm。
- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_fsk_bitrate()
获取当前 P2P FSK 比特率。
- 返回:
当前 P2P FSK 比特率,以整数表示。
UIFLOW2:

- LoRaWAN_X.set_p2p_fsk_bitrate(bitrate)
设置 P2P FSK 比特率。
- 参数:
bitrate (int) – 用于设置 P2P FSK 通信的比特率。范围为 600 到 300000 b/s。
- 返回:
AT 命令执行结果。
UIFLOW2:

- LoRaWAN_X.get_p2p_fsk_frequency_deviation()
获取当前 P2P FSK 频偏。
- 返回:
当前 P2P FSK 频率偏移量(整数)。
- LoRaWAN_X.set_p2p_fsk_frequency_deviation(deviation)
设置 P2P FSK 频率偏移。
- 参数:
deviation (int) – 用于设置 P2P FSK 通信的频率偏差。范围为 600 到 200000 Hz。
- 返回:
AT 命令执行结果。
- LoRaWAN_X.send_p2p_data(payload, timeout, to_hex=False)
发送带有指定 payload 的 P2P 数据。
- 参数:
- 返回:
如果数据发送成功(“TXFSK DONE” 或 “TXP2P DONE”),则为 True;否则为 False。
UIFLOW2:


- LoRaWAN_X.get_p2p_channel_activity()
获取 P2P 模式下当前信道活动状态。
- 返回:
通道活动状态,类型为整数(0 或 1)。
- LoRaWAN_X.set_p2p_channel_activity(state)
在 P2P 模式下启用或禁用通道活动。
- 参数:
state (bool) – 0 表示禁用,1 表示启用通道活动。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_receive_data(timeout=500, to_str=False)
- 参数:
- 返回:
如果接收到数据,则返回一个元组 (RSSI, SNR, Payload);如果未接收到数据,则返回 False。
UIFLOW2:

- LoRaWAN_X.get_p2p_encryption_state()
获取 P2P 模式下的当前加密状态。
- 返回:
加密状态,以整数表示(0 或 1)。
- LoRaWAN_X.set_p2p_encryption_state(state)
在 P2P 模式下启用或禁用加密。
- 参数:
state (bool) – 0 表示禁用,1 表示启用加密。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_encryption_key()
获取 P2P 模式下的当前加密密钥。
- 返回:
作为字符串的加密密钥。
- LoRaWAN_X.set_p2p_encryption_key(key)
在 P2P 模式下设置加密密钥。
- 参数:
key (str) – 加密密钥,以 16 个字符的十六进制字符串表示。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_crypt_state()
获取 P2P 模式下的当前加密状态(RAK3172 不支持)。
- 返回:
加密状态,表示为整数(0 或 1)。
- LoRaWAN_X.set_p2p_crypt_state(state)
在 P2P 模式下启用或禁用加密状态(RAK3172 不支持)。
- 参数:
state (bool) – 0 表示禁用,1 表示启用加密状态。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_crypt_key()
在 P2P 模式下获取加密密钥(RAK3172 不支持)。
- 返回:
加密密钥(字符串)。
- LoRaWAN_X.set_p2p_crypt_key(key)
在 P2P 模式下设置加密密钥(RAK3172 不支持)。
- 参数:
key – 加密密钥,以 8 字符的十六进制字符串表示。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_encryption_iv()
获取 P2P 模式下的加密 IV。
- 返回:
加密 IV 的字符串。
- LoRaWAN_X.set_p2p_encryption_iv(iv)
在 P2P 模式下设置加密 IV。
- 参数:
iv (str) – 加密 IV,以 8 字符的十六进制字符串表示。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_parameters()
获取当前 P2P 参数。
- 返回:
当前 P2P 参数的字符串。
- LoRaWAN_X.set_p2p_parameters(frequency, spreading_factor, bandwidth, code_rate, preamble_length, tx_power)
设置 P2P LoRa 参数,包括频率、扩频因子、带宽、编码率、前导码长度和发射功率。
- 参数:
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_iq_inversion()
获取 P2P 模式下当前的 IQ 反转状态。
- 返回:
IQ 反转状态,以整数表示(0 或 1)。
- LoRaWAN_X.set_p2p_iq_inversion(state)
在 P2P 模式下启用或禁用 IQ 反转。
- 参数:
state (bool) – 0 表示禁用,1 表示启用 IQ inversion。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_sync_word()
获取 P2P 模式下当前的同步字。
- 返回:
同步字(sync word)字符串。
UIFLOW2:

- LoRaWAN_X.set_p2p_sync_word(sync_word)
在 P2P 模式下设置同步字。
- 参数:
sync_word (int) – 同步字值,应在 0x0000 到 0xFFFF 的范围内。
- 返回:
命令执行的响应。
UIFLOW2:

- LoRaWAN_X.get_p2p_symbol_timeout()
获取 P2P 模式下当前的符号超时时间。
- 返回:
timeout 符号为整数。
- LoRaWAN_X.set_p2p_symbol_timeout(timeout)
在 P2P 模式下设置符号超时时间。
- 参数:
timeout (bool) – 超时值,范围应为 0-248。
- 返回:
命令执行的响应。
- LoRaWAN_X.get_p2p_fix_length_payload_state()
获取 P2P 模式下当前固定长度负载状态。
- 返回:
固定长度的 payload 状态,以整数表示(0 或 1)。









