Skip to main content

Une bibliothèque pour la communication avec des modules LoRa via des commandes AT.

Project description

swARM_at

https://docs.rakwireless.com/Product-Categories/WisDuo/RAK3172-Module/Deprecated-AT-Command/

Class: RAK3172

This class provides an interface to interact with the RAK3172 module via serial communication for both LoRaWAN and P2P communications.

init(self, port, baud_rate=9600, timeout=1)

Description: Initializes a new instance of the RAK3172 class. Parameters: port (str): The COM port where the module is connected. baud_rate (int, optional): Baud rate for serial communication. Default is 9600. timeout (int, optional): Timeout for serial communication in seconds. Default is 1. Exceptions: Raises InvalidCOMPortException if the provided COM port is not valid. Raises InvalidBaudRateException if the provided baud rate is not valid.

connect(self)

Description: Establishes a serial connection with the module. Output: Prints a message indicating the success or failure of the connection.

disconnect(self)

Description: Closes the serial connection with the module. Output: Prints a message indicating that the module has been disconnected.

set_network_mode(self, lorawan=True)

Description: Sets the network mode to either LoRaWAN or P2P. Parameters: lorawan (bool, optional): If True, sets the mode to LoRaWAN, otherwise to P2P. Default is True. Output: Prints a message indicating the success or failure of the operation. Returns: The current network mode.

send_command(self, command)

Description: Sends a command to the module and reads the response. Parameters: command (str): The command to send. Returns: Boolean indicating the success or failure of the command.

set_app_key(self, app_key)

Description: Sets the application key for LoRaWAN. Parameters: app_key (str): The application key to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_app_key(self)

Description: Retrieves the current application key. Returns: The application key or None if the operation fails.

set_app_eui(self, app_eui)

Description: Sets the application EUI. Parameters: app_eui (str): The application EUI to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_app_eui(self)

Description: Retrieves the current application EUI. Returns: The application EUI or None if the operation fails.

is_only_hex(self, chaine)

Description: Utility method to check if a string contains only hexadecimal characters. Parameters: chaine (str): The string to check. Returns: Boolean indicating whether the string contains only hexadecimal characters.

set_dev_eui(self, dev_eui)

Description: Sets the device EUI. Parameters: dev_eui (str): The device EUI to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_dev_eui(self)

Description: Retrieves the current device EUI. Returns: The device EUI or None if the operation fails.

set_nwks_key(self, nwks_key)

Description: Sets the network session key for LoRaWAN. Parameters: nwks_key (str): The network session key to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_nwks_key(self)

Description: Retrieves the current network session key. Returns: The network session key or None if the operation fails.

set_apps_key(self, apps_key)

Description: Sets the application session key for LoRaWAN. Parameters: apps_key (str): The application session key to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_apps_key(self)

Description: Retrieves the current application session key. Returns: The application session key or None if the operation fails.

set_dev_addr(self, dev_addr)

Description: Sets the device address for LoRaWAN. Parameters: dev_addr (str): The device address to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_dev_addr(self)

Description: Retrieves the current device address. Returns: The device address or None if the operation fails.

set_join_mode(self, otaa=True)

Description: Sets the join mode to either OTAA or ABP for LoRaWAN. Parameters: otaa (bool, optional): If True, sets the mode to OTAA, otherwise to ABP. Default is True. Output: Prints a message indicating the success or failure of the operation. Returns: The current join mode.

set_confirm_mode(self, confirmed=True)

Description: Sets the payload mode to either confirmed or unconfirmed for LoRaWAN. Parameters: confirmed (bool, optional): If True, sets the mode to confirmed, otherwise to unconfirmed. Default is True. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating the current payload mode.

join_network(self, join=1, auto_join=0, reattempt_interval=8, join_attempts=0)

Description: Sends a command to join the LoRaWAN network. Parameters: join (int): Join command, usually 1 to join. auto_join (int): Auto join option, 1 for auto join, 0 for manual. reattempt_interval (int): Interval in seconds for reattempting join. join_attempts (int): Number of join attempts. Output: Prints a message indicating the success, failure, or response of the join command. Returns: Boolean indicating success, failure, or None for uncertain status.

check_join_status(self)

Description: Checks if the module has joined the LoRaWAN network. Returns: Boolean indicating if the module is joined to the network.

send_lorawan_data(self, port, payload)

Description: Sends data over LoRaWAN. Parameters: port (int): The port number to send data on. payload (str): The payload to send. Output: Prints a message indicating the success or failure of sending data. Returns: Boolean indicating success or failure of the data transmission.

check_last_frame_status(self)

Description: Checks the status of the last frame sent over LoRaWAN. Returns: Boolean indicating if the last frame was confirmed by the network, or None for uncertain status.

receive_data(self)

Description: Retrieves data received by the module. Returns: A tuple containing the port and payload of received data, or (None, None) if no data is received or in case of an error.

set_adr(self, enable)

Description: Enables or disables Adaptive Data Rate (ADR). Parameters: enable (bool): Set to True to enable ADR, False to disable. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure of setting ADR.

get_adr_status(self)

Description: Retrieves the current status of ADR. Returns: Boolean indicating if ADR is enabled or disabled, or None for uncertain status.

set_lorawan_class(self, lorawan_class)

Description: Sets the LoRaWAN class of the device. Parameters: lorawan_class (str): The class to set ('A', 'B', or 'C'). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_lorawan_class(self)

Description: Retrieves the current LoRaWAN class of the device. Returns: A string indicating the current LoRaWAN class or None if the operation fails.

set_duty_cycle(self, enable)

Description: Enables or disables the duty cycle. Parameters: enable (bool): Set to True to enable the duty cycle, False to disable. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_duty_cycle(self)

Description: Retrieves the current status of the duty cycle. Returns: A string indicating if the duty cycle is enabled or disabled, or None if the operation fails.

set_frequency_band(self, band)

Description: Sets the frequency band for LoRaWAN communication. Parameters: band (str): The frequency band to set. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_frequency_band(self)

Description: Retrieves the current frequency band for LoRaWAN communication. Returns: A string indicating the current frequency band or None if the operation fails.

set_link_check(self, mode)

Description: Sets the link check mode. Parameters: mode (int): The link check mode to set (0, 1, or 2). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_link_check(self)

Description: Retrieves the current link check mode. Returns: An integer indicating the current link check mode or None if the operation fails.

set_public_network_mode(self, mode)

Description: Sets the public network mode. Parameters: mode (str): '0' for private network mode, '1' for public network mode. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_public_network_mode(self)

Description: Retrieves the current public network mode. Returns: A string indicating the current public network mode or None if the operation fails.

get_local_time(self)

Description: Retrieves the local time in UTC format. Returns: A string indicating the local time or None if the operation fails.

get_rssi(self)

Description: Retrieves the RSSI (Received Signal Strength Indicator) of the last received packet. Returns: An integer indicating the RSSI value in dBm, or None if the operation fails.

get_snr(self)

Description: Retrieves the SNR (Signal-to-Noise Ratio) of the last received packet. Returns: An integer indicating the SNR value, or None if the operation fails.

request_utc_time(self)

Description: Sends a request for UTC time to the network. Output: Prints a message indicating the success or failure of the request. Returns: Boolean indicating success or failure of the UTC time request.

set_p2p_frequency(self, frequency)

Description: Sets the frequency for P2P communication. Parameters: frequency (int): The frequency to set in Hz. Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_p2p_frequency(self)

Description: Retrieves the current frequency for P2P communication. Returns: An integer indicating the current P2P frequency in Hz, or None if the operation fails.

set_p2p_spreading_factor(self, sf)

Description: Sets the spreading factor for P2P communication. Parameters: sf (int): The spreading factor to set (between 6 and 12). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_p2p_spreading_factor(self)

Description: Retrieves the current spreading factor for P2P communication. Returns: An integer indicating the current spreading factor, or None if the operation fails.

set_p2p_bandwidth(self, bw)

Description: Sets the bandwidth for P2P communication. Parameters: bw (int): The bandwidth to set in kHz (125, 250, or 500). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_p2p_bandwidth(self)

Description: Retrieves the current bandwidth for P2P communication. Returns: An integer indicating the current bandwidth in kHz, or None if the operation fails.

set_p2p_coding_rate(self, cr)

Description: Sets the coding rate for P2P communication. Parameters: cr (int): The coding rate to set (0 for 4/5, 1 for 4/6, 2 for 4/7, or 3 for 4/8). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_p2p_coding_rate(self)

Description: Retrieves the current coding rate for P2P communication. Returns: An integer indicating the current coding rate, or None if the operation fails.

set_p2p_parameters(self, freq, sf, bw, cr, preamble, power)

Description: Sets multiple P2P parameters at once. Parameters: freq (int): Frequency in Hz. sf (int): Spreading factor (between 6 and 12). bw (int): Bandwidth in kHz (125, 250, or 500). cr (int): Coding rate (0 for 4/5, 1 for 4/6, 2 for 4/7, or 3 for 4/8). preamble (int): Preamble length (between 2 and 65535). power (int): Transmit power (between 5 and 22 dBm). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

get_p2p_parameters(self)

Description: Retrieves the current P2P parameters. Returns: A list containing the current P2P parameters (frequency, spreading factor, bandwidth, coding rate, preamble length, and power) or None if the operation fails.

send_p2p_data(self, payload)

Description: Sends data in P2P mode. Parameters: payload (str): The payload to send (maximum 255 bytes). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

set_p2p_receive_window(self, timeout)

Description: Sets the P2P receive window timeout. Parameters: timeout (int): Timeout in milliseconds (0 for no timeout, up to 65535). Output: Prints a message indicating the success or failure of the operation. Returns: Boolean indicating success or failure.

Examples

A simple example to join a LoRaWAN Network using OTAA method.

from swARM_at.RAK3172 import RAK3172, VALID_BAUD_RATE, VALID_COM_PORT, VALIDE_BAND
from swARM_at.exceptions import InvalidBaudRateException, InvalidCOMPortException
rak = RAK3172("COM3")
rak.connect()
rak.set_network_mode()
rak.set_join_mode()
rak.join_network(1, 0, 10, 8)
rak.check_join_status()
rak.send_lorawan_data(20,"112233445566778899")

A simple example to display LoRaWAN device infos

from swARM_at.RAK3172 import RAK3172, VALID_BAUD_RATE, VALID_COM_PORT, VALIDE_BAND
from swARM_at.exceptions import InvalidBaudRateException, InvalidCOMPortException
rak = RAK3172("COM3")
rak.connect()
devEUI=rak.get_dev_eui()
AppEUI=rak.get_app_eui()
AppKey=rak.get_app_key()
print(f'DevEUI={devEUI}\r\nAppEUI={AppEUI}\r\nAppKey={AppKey}')

A simple example to send somehtin in LoRa Mode and set a RX Window

from swARM_at.RAK3172 import RAK3172, VALID_BAUD_RATE, VALID_COM_PORT, VALIDE_BAND
from swARM_at.exceptions import InvalidBaudRateException, InvalidCOMPortException
rak = RAK3172("COM3")
rak.connect()
rak.set_network_mode(False)
rak.send_p2p_data("FF112233")
rak.set_p2p_receive_window(5000)
print(rak.read_response())

Project details


Release history Release notifications | RSS feed

This version

0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swARM_at-0.0.tar.gz (17.0 kB view hashes)

Uploaded Source

Built Distribution

swARM_at-0.0-py3-none-any.whl (15.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page