3 个版本 (破坏性更新)
0.5.0 | 2022 年 11 月 18 日 |
---|---|
0.4.0 | 2022 年 11 月 13 日 |
0.3.0 | 2022 年 10 月 31 日 |
#1105 在 硬件支持
745KB
378 行
ebyte-e32-ui
Ebyte E32 命令行界面 + 最小 GUI。
与可配置引脚分配的 Ebyte-E32 LoRa 模块兼容。3 个 GPIO 通过 linux cdev 控制,串行端口通过正常的 /dev/ttyXXX
字符设备控制。
使用 ebyte-e32-rs 作为驱动程序,以及来自 embedded-hal 和他们的实现 linux-embedded-hal 的一些特质。
对于 CLI,使用 clap。
对于 GUI,在 clap 的基础上使用 klask。
示例引脚排布和配置
使用与二进制相同的目录中的 Config.toml
配置(或设置 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
Ebyte 引脚 | Raspberry Pi 引脚(BCM 引脚编号) |
---|---|
VCC | 3v3 |
GND | GND |
AUX | 18 |
M0 | 23 |
M1 | 24 |
TX | 15 (RX) |
RX | 14 (TX) |
CLI 使用示例
在这些示例中,如果您位于项目根目录中,可以将 ebyte-e32-cli
替换为 cargo run --bin ebyte-e32-cli
。此目录还包含一个示例 Config.toml
。
-
读取模型数据或参数(良好的首次测试)
ebyte-e32-cli {read-model-data|read-parameters}
-
监听传输
ebyte-e32-cli listen
-
配置为地址 1,通道 16,无前向纠错,永久持久性
ebyte-e32-cli configure --address 1 --channel 16 --fec off --persistence permanent
对于 send
模式,在提示符中输入您的消息或将它们通过 stdin
管道传入。
GUI 使用说明
GUI 是默认目标,这意味着您可以使用 cargo run
启动它。对于发送数据,使用 Input
选项卡中提供的数据(您也可以从文件中选择读取输入)。
配置和持久性
使用 Configuration
子命令,可以调整模块参数。请注意,您的模块设置必须与其他模块的设置匹配,才能成功进行传输。
使用 Configuration
子命令的 persistence
选项,可以将设置保存(temporary
或 permanent
)。在 permanent
模式下,设置将持久保存在模块中。
屏幕截图
您可以在您的正常操作系统上运行 GUI 进行测试。
这些截图略微过时,但展示了 GUI 和 CLI 的功能。
系统要求和便携性
底层驱动程序(ebyte-e32-rs)是平台无关的(不需要 Linux,只需要 embedded-hal
的实现)。
此程序需要一个 Linux 字符设备以及 3 个 CDEV GPIO 线。
对于字符设备,它应该作为 /dev/ttyABC
可用。请注意(根据您的发行版),您可能需要将您的用户添加到某些组才能使用串行端口,例如 dialout
。
对于 GPIO 线,在 /sys/class/gpio/gpiochipXXX
中找到您的板的 gpiochipXXX
,然后找到您想要连接的线,并在 Config.toml
中输入信息。
AUX 线必须支持作为输入线,M0 和 M1 线必须支持作为输出线。
CLI 帮助
顶级帮助
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
配置子命令帮助(《ebyte-e32-cli 帮助 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]
其他子命令没有其他选项。
Raspberry Pi 串行端口设置
必须启用串行端口硬件外围设备(但无需登录外壳)。
简化依赖图
依赖关系
~12–25MB
~375K SLoC