6 releases (breaking)
0.6.0 | Feb 26, 2024 |
---|---|
0.5.0 | Nov 6, 2023 |
0.4.0 | Jul 10, 2023 |
0.3.0 | Mar 10, 2023 |
0.1.0 | Aug 17, 2022 |
#277 in Game dev
298 downloads per month
22KB
210 lines
bevy_serialport
bevy_serialport
is a plugin for add async serial port support for bevy.
Usage
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()
.insert_resource(ScheduleRunnerSettings::run_loop(Duration::from_millis(10)))
.add_plugin(LogPlugin)
.add_plugins(MinimalPlugins)
.add_plugin(SerialPortPlugin)
.add_startup_system(setup)
.add_system(receive)
.add_system(send_test_data)
.run()
}
fn setup(cmd_args: Res<Args>, mut serial_res: ResMut<SerialResource>, rt: Res<Runtime>) {
let serial_setting = SerialPortSetting {
port_name: "COM1".to_string(),
baud_rate: 115200,
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.iter() {
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.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
- MIT
- Apache 2.0
Dependencies
~23–59MB
~1M SLoC