An open API service indexing awesome lists of open source software.

https://github.com/foxzool/bevy_serialport

serial port Plugin for Bevy
https://github.com/foxzool/bevy_serialport

Last synced: over 1 year ago
JSON representation

serial port Plugin for Bevy

Awesome Lists containing this project

README

          

# bevy_serialport

[![Crates.io](https://img.shields.io/crates/v/bevy_serialport)](https://crates.io/crates/bevy_serialport)
[![Downloads](https://img.shields.io/crates/d/bevy_serialport)](https://crates.io/crates/bevy_serialport)
[![Documentation](https://docs.rs/bevy_serialport/badge.svg)](https://docs.rs/bevy_serialport)
[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](https://github.com/Seldom-SE/seldom_pixel#license)

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

## Usage

``` no_run
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, rt: Res) {
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) {
for message in serial_ev.read() {
info!("receive {:?}", message);
}
}

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

```

## Supported Versions

| 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 |

## License

Dual-licensed under either

- MIT
- Apache 2.0