Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cono #3

Open
wants to merge 159 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
6fbbfd2
src: connection: udp: Remove usage of unnecessary
patrickelectric Aug 10, 2022
4fc603e
lib: Add read_v2_raw_message
patrickelectric Aug 11, 2022
9084a45
lib: Add read_v1_raw_message
patrickelectric Aug 11, 2022
21fc5cf
Cargo: Update doc features to have description and extensions
patrickelectric Aug 17, 2022
0eb4c91
src: connection: udp: Remove unused FromStr
patrickelectric Aug 17, 2022
17c4eef
src: lib: Remove unused WriteBytesExt
patrickelectric Aug 17, 2022
9a7a51d
github: test: Add emit-description
patrickelectric Aug 16, 2022
4854089
build: parser: Add documentation for enums
patrickelectric Aug 17, 2022
710692f
build: parser: Add documentation for bitfields
patrickelectric Aug 17, 2022
9803e32
Use u8 instead of chars in Rust
Erk- Aug 18, 2022
3ea2434
use quick-xml instead of xml-rs
Erk- Aug 18, 2022
df7d4b0
add dependabot config
Aug 22, 2022
0e33839
build(deps): update nb requirement from 0.1 to 1.0
dependabot[bot] Aug 22, 2022
b347918
build(deps): bump actions-rs/toolchain from 1.0.1 to 1.0.7
dependabot[bot] Aug 22, 2022
d59cd04
Update the parser to quote 1.0
Erk- Aug 18, 2022
bc64cd6
Truncate MAVLink v2 messages
Erk- Aug 18, 2022
00f654b
fix lints
danieleades Oct 21, 2021
86ac9f9
update quick-xml to 0.24
Erk- Aug 30, 2022
9c24ab3
Flattened mavlink definitions in generated dialect files
bitsauce Sep 7, 2022
d042708
Updated example and test code to use flattened API
bitsauce Sep 7, 2022
e4d8a4b
Updated CI to run `cargo test` on each dialect individually
bitsauce Sep 7, 2022
23d45b8
Changed default dialect to `ardupilotmega`
bitsauce Sep 7, 2022
6937b0f
build(deps): update quick-xml requirement from 0.24 to 0.26
dependabot[bot] Oct 24, 2022
af67e5e
refactor and add clippy and rustfmt CI targets
danieleades Aug 23, 2022
fd5a139
Remove alloc dependency
qwerty19106 Nov 14, 2022
670330e
Remove dependency on global Allocator
qwerty19106 Nov 14, 2022
0d4a197
Optimize BytesMut::put_* and Bytes::get_* methods
qwerty19106 Nov 15, 2022
fcc5261
Update embedded example
qwerty19106 Nov 16, 2022
b7e7e29
rustfmt run
qwerty19106 Nov 21, 2022
1bf58e9
github: test: Move alway from deprecated actions-rs
patrickelectric Nov 21, 2022
6cab2a5
github: Moerge lint with tests
patrickelectric Nov 21, 2022
d1caf7a
add msrv target to CI
Nov 29, 2022
d5f2865
split CI jobs
Dec 1, 2022
2f9ef39
MAVLinkV1MessageRaw and MAVLinkV2MessageRaw refactoring
qwerty19106 Nov 26, 2022
f24fa89
Fix enum value generation
JonathanPlasse Dec 20, 2022
7ccd09e
use inline format args (clippy::uninlined_format_args)
danieleades Jan 17, 2023
c0417b5
move msrv from clippy config to Cargo.toml
danieleades Jan 17, 2023
c60c482
use inline format args
danieleades Dec 26, 2022
4d84db5
remove extra unused lifetimes
danieleades Dec 26, 2022
d14508f
suppress 'clippy::unnecessary_cast' lint for generated code
danieleades Dec 26, 2022
4cb809d
add 'is_empty' method where types have a 'len' method
danieleades Dec 26, 2022
e366da4
deny 'clippy::all' warnings
danieleades Dec 26, 2022
c8349f3
use 'Self' keyword to refer to own type
danieleades Dec 26, 2022
6dfd5f7
use 'assert'
Feb 16, 2023
2f23925
refactor the internals of Bytes and add i/u24 support
Erk- Mar 20, 2023
240551b
perf: improve code generation performance
GabrielDertoni Mar 20, 2023
0d99c65
Generate bitmask enum arrays as primitive arrays
lopsided98 Mar 30, 2023
4654ee6
Update mavlink submodule
lopsided98 Mar 30, 2023
19245dd
Cargo: Update to 0.11.0
patrickelectric Mar 31, 2023
0254791
Cargo: Update dialects
patrickelectric Apr 1, 2023
72a2c4e
Cargo: Update to 0.11.1
patrickelectric Apr 1, 2023
a86807c
parser: Remove dbg from quote call
patrickelectric Apr 19, 2023
8774161
Cargo: Update to 0.11.2
patrickelectric Apr 19, 2023
bb502ed
ci: Add documentation deployment
patrickelectric Apr 20, 2023
2c27462
remove heapless dependency
GabrielDertoni Mar 20, 2023
ed96459
Update build/parser.rs
GabrielDertoni Mar 21, 2023
5c70c2b
fix #[serde(default)]
GabrielDertoni Mar 23, 2023
33edf26
Add link to issue regarding Default const generics impl
GabrielDertoni Apr 5, 2023
6757815
readme: Update links
joaoantoniocardoso Jul 11, 2023
b81a2a0
Update lib.rs comments
antonio-sc66 Jul 3, 2023
12a811d
Add MessageData trait to allow serialize ***_DATA structs into MAVLin…
qwerty19106 Mar 22, 2023
3708729
fix: correctly deserialize MavFrame
GabrielDertoni Feb 17, 2023
ad9fe3f
github: test: Fix toolchain version for windows
patrickelectric Aug 7, 2023
97bc456
Cargo: Update to 0.12.0
patrickelectric Sep 18, 2023
dd94f63
refactor 'internal tests'
danieleades Oct 22, 2023
17c084f
remove non-existent 'autoquad' feature
danieleades Oct 22, 2023
74243e3
ci: Update Rust version and runner step
danieleades Oct 22, 2023
226f2ee
update linting, address lints
danieleades Mar 20, 2023
3a17105
Fix sequence order in serialization function (#204)
IhsenBouallegue Nov 20, 2023
ffd3995
Cargo: Update to 0.12.1
patrickelectric Nov 20, 2023
892fef8
tests: Use COMMON_MSG_HEADER values over hardcoded numbers
patrickelectric Nov 20, 2023
2670b89
tests: Change value of component id to check for correct ser/deser logic
patrickelectric Nov 20, 2023
8c63f80
lib: Fix serialization of mavlink v2
patrickelectric Nov 20, 2023
63a51d8
tests: Add serialization test
patrickelectric Nov 20, 2023
8e58086
tests: Add more ser/deser test
patrickelectric Nov 20, 2023
c4e069e
Cargo: Update to 0.12.2
patrickelectric Nov 20, 2023
9353461
Update lib.rs
antonio-sc66 Dec 12, 2023
19154d8
Cleanup. Remove unnecessary self.clone() calls
antonio-sc66 Jan 3, 2024
76a2813
Bugfix. Replace default isize enum representation.
antonio-sc66 Jan 3, 2024
aaec6ed
Refactor mavlink-dump. Change from [[bin]] to [[example]].
antonio-sc66 Jan 3, 2024
a7102c9
Update README.md
antonio-sc66 Jan 3, 2024
d828e6e
Update .github workflow to accommodate for the mavlink-dump refactor
antonio-sc66 Jan 3, 2024
be0bc1e
src: connection: Fix panic when DNS lookup fails
joaoantoniocardoso Jan 10, 2024
09411e9
Restructure project to enable custom mavlink bindings generation (#223)
GrahamDennis Feb 18, 2024
7d6a1c4
Fixed incorrect message framing by using a buffered reader.
Feb 27, 2024
c8fb42b
Replaced `buffered_reader::Generic` with own buffered reader implemen…
Feb 29, 2024
5679e26
Removed extraneous buffered-reader dependency
Feb 29, 2024
ad39b28
added documentation to `PeekReader
Feb 29, 2024
033b069
Simplified PeekReader for MAVLink and made it friendly
Mar 20, 2024
8d61f75
Changed rerun-if-changed to full xml path of message definitions
JorgeCastanho Mar 27, 2024
1208960
Fix URLs in README pointing to examples
booo Mar 28, 2024
96079f4
changed fn_calculate_crc to pub
joaofrf May 2, 2024
cdd585f
Added (back) buffering to UDP's Read implementation
tjrmarques Apr 24, 2024
a67f1d8
changed `main` to `main.rs` for markdown hyperlinks
TB-ME Apr 19, 2024
f47c61f
print bindgen cli error
BKSalman Mar 31, 2024
8c342c1
Update embedded-hal to 1.0.
qwerty19106 Jun 17, 2024
249e4c8
mavlink-core: Update to 0.13.1
patrickelectric Jul 18, 2024
19ad62d
mavlink-core: Fix README path
patrickelectric Jul 18, 2024
66588af
mavlink-bindgen: Update Cargo description
patrickelectric Jul 18, 2024
594be0c
Release 0.13.1
patrickelectric Jul 18, 2024
eea939b
Add new release flow
patrickelectric Jul 18, 2024
26ecf38
workflows: Fix checkout
patrickelectric Jul 18, 2024
9cd7bf0
deploy: Fix action
patrickelectric Jul 18, 2024
2e40341
Use versions over path
patrickelectric Jul 21, 2024
0b39939
Fix and add missing links to README
patrickelectric Jul 21, 2024
ab925ad
Improve final binary size
G1gg1L3s Jul 21, 2024
63b6af9
fix: Enum entries without value are generated as isize
pv42 Jul 31, 2024
9e9ef09
Feat: add cli argument documentation
Aug 6, 2024
d788b66
Feat: add mavlink-bindgen readme
Aug 6, 2024
69703a7
Fix: CouldNotReadDefinitionFile doc is copy pasted
Aug 7, 2024
4705886
Feat: add doc to public functions in mavlink-bindgen's lib.rs
Aug 7, 2024
d168962
Fix: improve mavlink-bindgen readme
Aug 7, 2024
a5edd29
Fix: set cargo toml link to readme in mavlink-bindgen, add missing re…
Aug 7, 2024
c93fd57
fix: incompatibility flags of v2 messages are checked
pv42 Aug 8, 2024
c10d36e
mavlink-core: src: read shouldn't be mut
joaoantoniocardoso Aug 22, 2024
5a1cd30
cargo: Add tokio-1 feature for tokio-based async-io
joaoantoniocardoso Aug 22, 2024
12b1e2b
mavlink-core: src: Add tokio-based async read/write
joaoantoniocardoso Aug 22, 2024
311cd65
Revert "Use versions over path"
joaoantoniocardoso Aug 22, 2024
4faca0e
fix: add MavFrame deser & ser warning, fixes #250
amsmith-pro Aug 7, 2024
06f1eef
mavlink-core: src: Fix embedded v2 read header
joaoantoniocardoso Aug 22, 2024
8fb5875
Emit extensions
pv42 Aug 22, 2024
2ab6785
move to 2021 edition (#262)
danieleades Aug 25, 2024
908e654
Minor refactoring
danieleades Aug 25, 2024
9a657c0
feat: add signing feature with sha2 dependency
pv42 Aug 7, 2024
ab82e27
feat: Add incompat flag field to MavHeader
pv42 Aug 7, 2024
6e15048
feat: add MavConnection::setup_signing(), signing functions to MAVLin…
pv42 Aug 7, 2024
33d0564
fix: move signing mod, remove incompat_flags since it is breaking
pv42 Aug 11, 2024
312968c
fix: remove std requirement for signing, fmt
pv42 Aug 11, 2024
f264153
test: add features signing, tokio-1 to clippy
pv42 Aug 23, 2024
6592af0
feat: add link_id to signing config
pv42 Aug 23, 2024
42b84d1
feat: add signing to async read/write functions
pv42 Aug 23, 2024
04a4732
fix: clippy warnings
pv42 Aug 23, 2024
e481f5f
fix: remove redundant feature gate
pv42 Aug 25, 2024
e345857
fix: fmt
pv42 Aug 25, 2024
f83fcbd
chore(deps): update 'quickxml'
danieleades Aug 25, 2024
b41d557
chore(deps): update 'num_derive'
danieleades Aug 25, 2024
1b8fbf1
doc: add tokio-1 and signing to docs.rs features
pv42 Aug 26, 2024
3285c6d
exclude embedded-hal v0.2 from dependabot updates
danieleades Aug 26, 2024
a729400
update MSRV checks to account for features
danieleades Aug 25, 2024
d5c5bc3
address some lint warnings
danieleades Aug 25, 2024
cd600a2
doc: add doc_auto_cfg feature to doc and docsrs build for mavlink and…
pv42 Aug 26, 2024
c8b10f0
test: switch docs test to nightly, add all features used for docs.rs
pv42 Aug 26, 2024
bec09cc
test: disable doc_auto_cfg for doctest
pv42 Aug 26, 2024
49ecc03
mavlink/build.rs simplification
imp Aug 29, 2024
3cc4cce
mavlink-bindgen: build.rs simplification
imp Sep 8, 2024
4cc4513
mavlink-bindgen: parser: Simple PascalCase implementation
imp Sep 9, 2024
8f6fe95
mavlink-bindgen: parser: less unwrap()
imp Sep 9, 2024
38d94ff
test: remove all dev targets from msrv check (fixes #277)
Sep 4, 2024
3e7191e
feat: add async connection mod with tcp, udp, file
pv42 Aug 29, 2024
7dcc48f
test: add async versiosn of network loopback tests
pv42 Sep 1, 2024
0089701
fix: read_v2_msg_async_inner, write_versioned_msg_async_signed
pv42 Sep 1, 2024
f81f0b4
fix: fmt
pv42 Sep 1, 2024
68536ef
fix: add Send marker to AsyncMavConnection for rust 1.70
pv42 Sep 4, 2024
38e85b6
doc: replace block with yield, move file comment, fmt cargo
pv42 Sep 8, 2024
fbd2239
fix: rename tcp/udp connection to AsyncTcpConnection/AsyncUdpConnecti…
pv42 Sep 8, 2024
5f2ecbe
bump pinned clippy version
danieleades Sep 20, 2024
0e936c5
feat: async serial
roby2014 Sep 21, 2024
90d2ad4
cargo: update to 0.14.0
roby2014 Sep 23, 2024
c80321b
mavlink-core: MAVLinkV1MessageRaw::header should not require mut
joaoantoniocardoso Oct 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: daily
ignore:
- dependency-name: "embedded-hal"
versions: ["^0.2"]
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
27 changes: 23 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,31 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
with:
fetch-depth: 0
ref: ${{ github.event.repository.default_branch }}
- uses: actions-rs/[email protected]
with:
toolchain: stable
override: true
- name: Build
run: cargo build
- uses: katyo/publish-crates@v1
with:
registry-token: ${{ secrets.CARGO }}
- name: Extract version from tag
id: get_version
run: echo "::set-output name=version::${GITHUB_REF/refs\/tags\//}"
- name: Commit version changes
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
- name: Set and publish workspace crates
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO }}
run: |
cargo install cargo-workspaces
cargo workspaces version custom ${{ steps.get_version.outputs.version }} \
--exact --yes --no-git-tag --no-git-push \
-m "Commit new release ${{ steps.get_version.outputs.version }}"
cargo workspaces publish --yes --no-verify --publish-as-is
- name: Push commit
run: |
git push origin ${{ github.event.repository.default_branch }}
162 changes: 108 additions & 54 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,81 +3,135 @@ name: Test all targets
on: [push, pull_request]

jobs:
quick-tests:
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
with:
toolchain: stable
target: ${{ matrix.TARGET }}
override: true
- name: Check Type
run: cargo fmt -- --check
- name: Run internal tests
run: cargo test --verbose --features all-dialects -- --nocapture
- name: Build mavlink-dump
run: cargo build --verbose --bin mavlink-dump --features ardupilotmega
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run rustfmt
run: cargo fmt --all -- --check

linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-09-10
components: clippy
- uses: actions-rs-plus/clippy-check@v2
with:
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 }} ${{ matrix.signing }} -- --nocapture

mavlink-dump:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
- name: Build mavlink-dump
run: cargo build --verbose --example mavlink-dump

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: ${{ env.MSRV }}
- uses: taiki-e/install-action@cargo-no-dev-deps
- run: cargo no-dev-deps check --all --lib --bins ${{ matrix.features }}

build:
needs: quick-tests
needs: [formatting, linting, internal-tests, mavlink-dump, msrv]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
TARGET: x86_64-apple-darwin
FEATURES: --features all-dialects
- os: macos-latest
TARGET: x86_64-apple-darwin
FEATURES: --features ardupilotmega

- os: ubuntu-latest
TARGET: arm-unknown-linux-musleabihf
FLAGS: --features ardupilotmega
- os: ubuntu-latest
TARGET: arm-unknown-linux-musleabihf
FLAGS: --features ardupilotmega

- os: ubuntu-latest
TARGET: armv7-unknown-linux-musleabihf
FLAGS: --features ardupilotmega
- os: ubuntu-latest
TARGET: armv7-unknown-linux-musleabihf
FLAGS: --features ardupilotmega

- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features all-dialects
- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features ardupilotmega

- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features all-dialects,emit-extensions
- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features ardupilotmega,emit-description,emit-extensions

- os: ubuntu-latest
TARGET: thumbv7m-none-eabi
FLAGS: --no-default-features --features embedded
- os: ubuntu-latest
TARGET: thumbv7m-none-eabi
FLAGS: --no-default-features --features embedded

- os: windows-latest
TARGET: x86_64-pc-windows-msvc
FLAGS: --features all-dialects
- os: windows-latest
TARGET: x86_64-pc-windows-msvc
FLAGS: --features ardupilotmega

steps:
- name: Building ${{ matrix.TARGET }}
run: echo "${{ matrix.TARGET }}"
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
with:
toolchain: stable
target: ${{ matrix.TARGET }}
override: true
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --verbose --release --target=${{ matrix.TARGET }} ${{ matrix.FLAGS }}
- name: Building ${{ matrix.TARGET }}
run: echo "${{ matrix.TARGET }}"
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.TARGET }}
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --verbose --release --package=mavlink --target=${{ matrix.TARGET }} ${{ matrix.FLAGS }}

test-embedded-size:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: dtolnay/rust-toolchain@nightly
with:
target: thumbv7em-none-eabihf
- name: Build
run: cargo +nightly build --target thumbv7em-none-eabihf --manifest-path mavlink/examples/embedded/Cargo.toml --out-dir $PWD --release -Z unstable-options

docs:
needs: internal-tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
- uses: dtolnay/rust-toolchain@nightly
- name: Build docs
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' }}
with:
toolchain: nightly
target: thumbv7em-none-eabihf
override: true
- name: Build
run: cargo +nightly build --target thumbv7em-none-eabihf --manifest-path examples/embedded/Cargo.toml --out-dir $PWD --release -Z unstable-options
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./target/doc
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "mavlink"]
path = mavlink
[submodule "mavlink/mavlink"]
path = mavlink/mavlink
url = https://github.com/mavlink/mavlink
128 changes: 128 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading