Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mavlink/rust-mavlink
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.13.2
Choose a base ref
...
head repository: mavlink/rust-mavlink
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 2,580 additions and 428 deletions.
  1. +3 −0 .github/dependabot.yml
  2. +16 −15 .github/workflows/test.yml
  3. +5 −1 Cargo.toml
  4. +6 −3 mavlink-bindgen/Cargo.toml
  5. +3 −4 mavlink-bindgen/src/lib.rs
  6. +70 −89 mavlink-bindgen/src/parser.rs
  7. +12 −3 mavlink-core/Cargo.toml
  8. +116 −0 mavlink-core/src/async_connection/direct_serial.rs
  9. +95 −0 mavlink-core/src/async_connection/file.rs
  10. +126 −0 mavlink-core/src/async_connection/mod.rs
  11. +156 −0 mavlink-core/src/async_connection/tcp.rs
  12. +258 −0 mavlink-core/src/async_connection/udp.rs
  13. +147 −0 mavlink-core/src/async_peek_reader.rs
  14. +1 −2 mavlink-core/src/bytes.rs
  15. +4 −11 mavlink-core/src/bytes_mut.rs
  16. +152 −0 mavlink-core/src/connectable.rs
  17. +61 −42 mavlink-core/src/connection/direct_serial.rs
  18. +35 −4 mavlink-core/src/connection/file.rs
  19. +37 −51 mavlink-core/src/connection/mod.rs
  20. +56 −26 mavlink-core/src/connection/tcp.rs
  21. +49 −48 mavlink-core/src/connection/udp.rs
  22. +4 −0 mavlink-core/src/embedded.rs
  23. +9 −0 mavlink-core/src/error.rs
  24. +617 −97 mavlink-core/src/lib.rs
  25. +15 −7 mavlink-core/src/peek_reader.rs
  26. +139 −0 mavlink-core/src/signing.rs
  27. +4 −2 mavlink-core/src/utils.rs
  28. +14 −7 mavlink/Cargo.toml
  29. +3 −6 mavlink/build/main.rs
  30. +3 −6 mavlink/examples/embedded-async-read/src/main.rs
  31. +5 −0 mavlink/src/lib.rs
  32. +6 −1 mavlink/tests/mav_frame_tests.rs
  33. +30 −0 mavlink/tests/parse_test.rs
  34. +100 −0 mavlink/tests/signing.rs
  35. +71 −0 mavlink/tests/tcp_loopback_async_tests.rs
  36. +21 −3 mavlink/tests/tcp_loopback_tests.rs
  37. +42 −0 mavlink/tests/test_shared/mod.rs
  38. +49 −0 mavlink/tests/udp_loopback_async_tests.rs
  39. +20 −0 mavlink/tests/v1_encode_decode_tests.rs
  40. +20 −0 mavlink/tests/v2_encode_decode_tests.rs
3 changes: 3 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ updates:
directory: "/"
schedule:
interval: daily
ignore:
- dependency-name: "embedded-hal"
versions: ["^0.2"]
- package-ecosystem: github-actions
directory: "/"
schedule:
31 changes: 16 additions & 15 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -19,22 +19,23 @@ jobs:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2023-10-21
toolchain: nightly-2024-09-10
components: clippy
- uses: actions-rs-plus/clippy-check@v2
with:
args: --all --all-targets --features format-generated-code
args: --all --all-targets --features format-generated-code --features signing --features tokio-1

internal-tests:
runs-on: ubuntu-latest
strategy:
matrix:
dialect: ["ardupilotmega", "asluav", "matrixpilot", "minimal", "paparazzi", "python_array_test", "slugs", "standard", "test", "ualberta", "uavionix", "icarous", "common"]
signing: ["", "--features signing"]
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
- name: Run internal tests
run: cargo test --verbose --features ${{ matrix.dialect }} -- --nocapture
run: cargo test --verbose --features ${{ matrix.dialect }} ${{ matrix.signing }} -- --nocapture

mavlink-dump:
runs-on: ubuntu-latest
@@ -46,20 +47,20 @@ jobs:

msrv:
runs-on: ubuntu-latest
strategy:
matrix:
features: ["", "--features serde,tokio-1", "--features signing"]
steps:
- uses: actions/checkout@master
- name: Get MSRV from Cargo.toml
run: |
MSRV=$(grep 'rust-version' Cargo.toml | sed 's/.*= *"\(.*\)".*/\1/')
echo "MSRV=$MSRV" >> $GITHUB_ENV
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.65.0
- uses: actions-rs/cargo@v1
with:
command: install
args: cross --locked
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: check
args: --all --all-targets
toolchain: ${{ env.MSRV }}
- uses: taiki-e/install-action@cargo-no-dev-deps
- run: cargo no-dev-deps check --all --lib --bins ${{ matrix.features }}

build:
needs: [formatting, linting, internal-tests, mavlink-dump, msrv]
@@ -125,9 +126,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
- uses: dtolnay/rust-toolchain@nightly
- name: Build docs
run: cargo doc
run: cargo doc --features "default all-dialects emit-description emit-extensions format-generated-code tokio-1 signing"
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.ref == 'refs/heads/master' }}
6 changes: 5 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -5,6 +5,10 @@ resolver = "1"
[workspace.dependencies]
crc-any = { version = "2.3.5", default-features = false }
num-traits = { version = "0.2", default-features = false }
num-derive = "0.3.2"
num-derive = "0.4"
bitflags = "1.2.1"
byteorder = { version = "1.3.4", default-features = false }

[workspace.package]
edition = "2021"
rust-version = "1.70.0"
9 changes: 6 additions & 3 deletions mavlink-bindgen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
[package]
name = "mavlink-bindgen"
version = "0.13.1"
edition = "2021"
version = "0.13.2"
edition.workspace = true
license = "MIT/Apache-2.0"
description = "Library used by rust-mavlink."
readme = "README.md"
repository = "https://github.com/mavlink/rust-mavlink"
rust-version.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
crc-any = { workspace = true, default-features = false }
quick-xml = "0.26"
quick-xml = "0.36"
quote = "1"
proc-macro2 = "1.0.43"
lazy_static = "1.2.0"
@@ -28,3 +29,5 @@ anstyle-parse = { version = "=0.2.1", optional=true }

[features]
cli = ["dep:clap", "dep:clap_lex", "dep:clap_builder", "dep:anstyle", "dep:anstyle-query", "dep:anstyle-parse"]
emit-extensions = []
emit-description = []
7 changes: 3 additions & 4 deletions mavlink-bindgen/src/lib.rs
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ fn _generate(
) -> Result<GeneratedBindings, BindGenError> {
let mut bindings = vec![];

for entry_maybe in read_dir(&definitions_dir).map_err(|source| {
for entry_maybe in read_dir(definitions_dir).map_err(|source| {
BindGenError::CouldNotReadDefinitionsDirectory {
source,
path: definitions_dir.to_path_buf(),
@@ -55,8 +55,7 @@ fn _generate(
let definition_file = PathBuf::from(entry.file_name());
let module_name = util::to_module_name(&definition_file);

let mut definition_rs = PathBuf::from(&module_name);
definition_rs.set_extension("rs");
let definition_rs = PathBuf::from(&module_name).with_extension("rs");

let dest_path = destination_dir.join(definition_rs);
let mut outf = BufWriter::new(File::create(&dest_path).map_err(|source| {
@@ -67,7 +66,7 @@ fn _generate(
})?);

// generate code
parser::generate(&definitions_dir, &definition_file, &mut outf)?;
parser::generate(definitions_dir, &definition_file, &mut outf)?;

bindings.push(GeneratedBinding {
module_name,
Loading