Interfaz de línea de comandos EByte E32 + GUI mínima.
Funciona con módulos Lora Ebyte-E32 con asignación de pin configurable. Los 3 GPIOS se controlan a través de Linux CDEV, y el puerto serie está controlado por un dispositivo de caracteres Normal /dev/ttyXXX .
Utiliza Ebyte-E32-RS como controlador, además de algunos rasgos de Hal incrustado y sus implementaciones de Linux-Embedded-Hal.
Para el CLI, se usa Clap.
Para la GUI, en la parte superior del aplauso, se usa Klask.
Configurable con Config.toml en el mismo directorio que el binario (o establecer la opción config ):
serial_path = " /dev/ttyAMA0 "
baudrate = 9600
parity = " None "
data_bits = 8
stop_bits = 1
gpiochip_path = " /dev/gpiochip0 "
aux_pin = 18
m0_pin = 23
m1_pin = 24| Pasador de ebyte | Raspberry Pi Pin (número de pin BCM) |
|---|---|
| VCC | 3v3 |
| Gnd | Gnd |
| Aux | 18 |
| M0 | 23 |
| M1 | 24 |
| Tx | 15 (RX) |
| Rx | 14 (TX) |
En estos ejemplos, puede sustituir ebyte-e32-cli con cargo run --bin ebyte-e32-cli si se encuentra en el directorio de la raíz del proyecto. Este directorio también contiene un ejemplo Config.toml .
Lectura de datos o parámetros del modelo (buena primera prueba):
ebyte-e32-cli {read-model-data|read-parameters}
Escuche las transmisiones:
ebyte-e32-cli listen
Configurar para la dirección 1, canal 16, sin corrección de errores de reenvío, persistencia permanente:
ebyte-e32-cli configure --address 1 --channel 16 --fec off --persistence permanent
Para el modo send , ingrese sus mensajes en el aviso o vaya a vía stdin .
La GUI es el objetivo predeterminado, lo que significa que puede iniciarlo con cargo run . Para enviar datos, se utilizan los datos proporcionados en la pestaña Input (donde también puede seleccionar un archivo para leer la entrada desde).
Con el subcomando Configuration , los parámetros del módulo se pueden ajustar. Tenga en cuenta que la configuración de su módulo tiene que coincidir con la configuración del otro módulo para que cualquier transmisión sea exitosa.
Con la opción persistence del subcomando Configuration , la configuración se puede guardar ( temporary o permanent ). En modo permanent , la configuración se persistirá en el módulo.
Puede ejecutar la GUI en su sistema operativo normal para realizar pruebas.
Estas capturas de pantalla están ligeramente desactualizadas, pero muestran las características de la GUI y el CLI:








El controlador subyacente (EByte-E32-RS) es de la plataforma-Agnóstico (no requiere Linux, solo implementaciones de embedded-hal ).
Este programa requiere un dispositivo de caracteres Linux y 3 líneas GPIO CDEV.
Para el dispositivo de caracteres, debe estar disponible como /dev/ttyABC . Tenga en cuenta que (dependiendo de su distribución) es posible que deba agregar a su usuario a ciertos grupos para poder usar el puerto serie, como dialout .
Para las líneas GPIO, encuentre sus tableros gpiochipXXX IN /sys/class/gpio/gpiochipXXX , luego encuentre las líneas que desea conectar e ingrese la información en Config.toml .
La línea AUX debe admitir que es una línea de entrada, las líneas M0 y M1 deben admitir las líneas de salida.
Ayuda de nivel superior:
ebyte-e32-ui 0.5.0
CLI + GUI for interacting with EByte E32 LoRa modules
USAGE:
ebyte-e32-cli [OPTIONS] <SUBCOMMAND>
OPTIONS:
--config <CONFIG> Configuration file [default: Config.toml]
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
configure Write Ebyte module parameters
help Print this message or the help of the given subcommand(s)
listen Listen for incoming data on the Ebyte module
read-model-data Read Ebyte module data and print to stdout
read-parameters Read Ebyte module parameters and print to stdout
send Send data from stdin over the Ebyte module
Ayuda del subcomand de configuración ( ebyte-e32-cli help configure ):
ebyte-e32-cli-configure
Write Ebyte module parameters
USAGE:
ebyte-e32-cli configure [OPTIONS] --address <ADDRESS> --channel <CHANNEL>
OPTIONS:
-a, --address <ADDRESS>
Module Address (16 Bit)
--air-rate <AIR_RATE>
Air Baudrate [default: bps2400] [possible values: bps300, bps1200, bps2400, bps4800,
bps9600, bps19200]
-c, --channel <CHANNEL>
Channel (8 Bit)
--fec <FEC>
Forward Error Correction Mode [default: on] [possible values: on, off]
-h, --help
Print help information
--io-drive-mode <IO_DRIVE_MODE>
IO drive Mode for AUX pin [default: push-pull] [possible values: push-pull,
open-collector]
--persistence <PERSISTENCE>
Whether settings should be saved persistently on the module [default: temporary]
[possible values: temporary, permanent]
--transmission-mode <TRANSMISSION_MODE>
Transmission Mode [default: transparent] [possible values: transparent, fixed]
--transmission-power <TRANSMISSION_POWER>
Transmission Power [default: dbm30] [possible values: dbm30, dbm27, dbm24, dbm21]
--uart-parity <UART_PARITY>
UART Parity [default: none] [possible values: none, odd, even]
--uart-rate <UART_RATE>
UART Baudrate [default: bps9600] [possible values: bps1200, bps2400, bps4800, bps9600,
bps19200, bps38400, bps57600, bps115200]
--wakeup-time <WAKEUP_TIME>
Wireless Wakeup Time [default: ms250] [possible values: ms250, ms500, ms750, ms1000,
ms1250, ms1500, ms1750, ms2000]
Los otros subcomandos no tienen más opciones.
El periférico del hardware del puerto serie debe estar habilitado (pero sin shell de inicio de sesión).
