#module #lora #line #命令行界面 #嵌入式 HAL #GUI #串行

bin+lib ebyte-e32-ui

与 EByte E32 LoRa 模块交互的 CLI + GUI

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 选项,可以将设置保存(temporarypermanent)。在 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 串行端口设置

必须启用串行端口硬件外围设备(但无需登录外壳)。

简化依赖图

graph

依赖关系

~12–25MB
~375K SLoC