crates.io

bevy_serialport

bevy_serialport is a plugin for add async serial port support for bevy.

Usage

``` rust use std::time::Duration;

use bevy::{app::ScheduleRunnerSettings, log::LogPlugin, prelude::*}; use bytes::Bytes;

use bevy_serialport::{ DataBits, FlowControl, Parity, Runtime, SerialData, SerialPortPlugin, SerialPortSetting, SerialResource, StopBits, };

fn main() { App::new() .insertresource(ScheduleRunnerSettings::runloop(Duration::frommillis(10))) .addplugin(LogPlugin) .addplugins(MinimalPlugins) .addplugin(SerialPortPlugin) .addstartupsystem(setup) .addsystem(receive) .addsystem(sendtestdata) .run() }

fn setup(cmdargs: Res, mut serialres: ResMut, rt: Res) { let serialsetting = SerialPortSetting { portname: "COM1".tostring(), baudrate: 115200, databits: DataBits::Five, flowcontrol: FlowControl::None, parity: Parity::None, stopbits: StopBits::One, timeout: Default::default(), }; serialres .openwithsetting(rt.clone(), serial_setting) .expect("open serial port error"); }

fn receive(mut serialev: EventReader) { for message in serialev.iter() { info!("receive {:?}", message); } }

fn sendtestdata(mut serialres: ResMut) { serialres.send_message("COM1", Bytes::from(&b"123457"[..])) }

```

Supported Versions

| bevy | bevy_serialport | |------|-----------------| | 0.8 | 0.1 |

License

Dual-licensed under either

Bevy support table

| bevy | bevy_egui | |------|-----------| | 0.9 | 0.2 | | 0.8 | 0.1 |