8 breaking releases
Uses new Rust 2024
new 0.9.0 | Apr 25, 2025 |
---|---|
0.8.0 | Nov 30, 2024 |
0.8.0-rc.1 | Oct 23, 2024 |
0.7.0 | Jul 5, 2024 |
0.2.0 | Nov 14, 2022 |
#695 in Game dev
89 downloads per month
28KB
225 lines
bevy_serialport
bevy_serialport
is a plugin for add async serial port support for bevy.
Usage
use bevy::{app::ScheduleRunnerPlugin, log::LogPlugin};
use std::time::Duration;
use bevy::prelude::*;
use bytes::Bytes;
use bevy_serialport::{
DataBits, FlowControl, Parity, SerialData, SerialPortPlugin, SerialPortRuntime,
SerialPortSetting, SerialResource, StopBits,
};
fn main() {
App::new()
.add_plugins((
MinimalPlugins.set(ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(
1.0 / 60.0,
))),
LogPlugin::default(),
SerialPortPlugin,
))
.add_systems(Startup, setup)
.add_systems(Update, (receive, send_test_data))
.run();
}
fn setup(mut serial_res: ResMut<SerialResource>, rt: Res<SerialPortRuntime>) {
let serial_setting = SerialPortSetting {
port_name: "COM1".to_string(),
baud_rate: 115_200,
data_bits: DataBits::Five,
flow_control: FlowControl::None,
parity: Parity::None,
stop_bits: StopBits::One,
timeout: Default::default(),
};
serial_res
.open_with_setting(rt.clone(), serial_setting)
.expect("open serial port error");
}
fn receive(mut serial_ev: EventReader<SerialData>) {
for message in serial_ev.read() {
info!("receive {:?}", message);
}
}
fn send_test_data(mut serial_res: ResMut<SerialResource>) {
serial_res.send_message("COM1", Bytes::from(&b"123457"[..]))
}
Supported Versions
bevy | bevy_serialport |
---|---|
0.16 | 0.9 |
0.15 | 0.8 |
0.14 | 0.7 |
0.13 | 0.6 |
0.12 | 0.5 |
0.11 | 0.4 |
0.10 | 0.3 |
0.9 | 0.2 |
0.8 | 0.1 |
License
Dual-licensed under either:
At your option. This means that when using this crate in your game, you may choose which license to use.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.
Dependencies
~20–33MB
~494K SLoC