7个版本 (破坏性更新)
0.7.0 | 2024年7月5日 |
---|---|
0.6.0 | 2024年2月26日 |
0.5.0 | 2023年11月6日 |
0.4.0 | 2023年7月10日 |
0.1.0 | 2022年8月17日 |
#365 in 游戏开发
每月下载量 55次
26KB
221 代码行
bevy_serialport
bevy_serialport
是为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.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 |
许可证
双许可
- MIT
- Apache 2.0
依赖
~24–37MB
~565K SLoC