Crates.io | bevy_serialport |
lib.rs | bevy_serialport |
version | 0.8.0 |
source | src |
created_at | 2022-08-17 04:17:58.317951 |
updated_at | 2024-11-30 11:26:34.987228 |
description | async serial port Plugin for bevy |
homepage | https://github.com/foxzool/bevy_serialport |
repository | https://github.com/foxzool/bevy_serialport |
max_upload_size | |
id | 647135 |
size | 98,337 |
bevy_serialport
is a plugin for add async serial port support for bevy.
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"[..]))
}
bevy | bevy_serialport |
---|---|
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 |
Dual-licensed under either