EricLBuehler
6c62246e53
Fix typos
1 year ago
haixuanTao
bf4e9e283c
make chars public
2 years ago
haixuanTao
3521e10d7b
Use or_insert_with when registering package and raise glob error
2 years ago
haixuanTao
92e0edbd67
fix import widestring in `ros2_bridge`
2 years ago
haixuanTao
98d219ceac
Adding widestring import
2 years ago
haixuanTao
ab28403f5f
Fix `AMENT_PREFIX_PATH`
2 years ago
haixuanTao
f3b407ca7f
Return emptuy package vec if AMENT_PREFIX_PATH points to ''
Fix https://github.com/dora-rs/dora/issues/481#issuecomment-2075193358
2 years ago
haixuanTao
a09a50d481
Added warning and fix for cases with 2 messages definition of the same (package, message)
Fix CI by ficing widestring proc_macro, fixing clippy, adding CI flag
fix CI with minor changes
2 years ago
haixuanTao
f94a810890
Use `root_dir` for multi directory scenario
2 years ago
haixuanTao
db34e81c37
Simplify parsing of `AMENT_PREFIX_PATH`
This PR simplify how ROS2 messages are parsed using dora.
It will parse all messages included in the `AMENT_PREFIX_PATH` folder
that has a path in the following format: `<package>/msg/<message>.msg`.
Similarly for services it will be parsed as: `<package>/srv/<service>.srv`.
It does not requires `.idl` anymore nor does it needs to be in the `ament_index`.
2 years ago
Michael-J-Ward
3b59b026b4
lint: allow type-complexity for select signatures
2 years ago
Michael-J-Ward
829d30c88e
lint: more simple lint fixes
2 years ago
Philipp Oppermann
d4a406e93e
Adjust generated code and examples for latest `ros2-client` version
2 years ago
Philipp Oppermann
4ad8bdda38
Use `Debug` formatting for eyre errors when returning to C++
We want to include all underlying causes.
2 years ago
Philipp Oppermann
1a0992a9b7
Enable service clients in C++ ROS2 bridge
2 years ago
Philipp Oppermann
ab7091ba28
Create C++ functions for constructing service clients
2 years ago
Philipp Oppermann
3a249642ab
Fix unresolved crate errors in generated code for C++ API
2 years ago
Philipp Oppermann
23a05f1f32
Add dummy field to empty structs to make them compatible with C++ bridge
2 years ago
Philipp Oppermann
1a925175c5
Adjust names of generated service structs slightly
2 years ago
Philipp Oppermann
b7566ef5bc
Implement message generation for ROS2 services in Rust API
2 years ago
Philipp Oppermann
5909c4f7e6
Make C++ `const_` methods independent functions for convenience
It's no longer required to create a struct instance to call them.
2 years ago
Philipp Oppermann
e81a5703a3
Make `const_` helper functions private to reemove them from the Rust API
2 years ago
Philipp Oppermann
e7f5d47cc9
Expose ROS2 constants in generated bindings (Rust and C++)
2 years ago
Philipp Oppermann
dc8a794835
Fix some dead code warnings
2 years ago
Philipp Oppermann
0074ffd6e8
Refactor C++ ROS2 subscription API to make downcasts work
Use the subscriber type for downcasting to ensure that the correct type is used. Also, store an unique ID per subscriber to differentiate subscriptions of same type after merging.
2 years ago
Philipp Oppermann
0d75f5391f
First implementation of subscription stream merging and downcasting
2 years ago
Philipp Oppermann
20434e6492
Move c++ ros2 bridge generation to node API crate to allow stream merging
Stream merging based on the cxx crate requires the bridge and the api to share an `ExternalEvents` type, which is only possible if the two bridge modules are defined in the same crate.
2 years ago
Philipp Oppermann
cf7e2b658a
Hide method name warnings in generated publish code
2 years ago
Philipp Oppermann
c01880f70a
Add support for setting QoS from C++
2 years ago
Philipp Oppermann
874ec96a3e
Provide ROS2 publish function to c++
2 years ago
Philipp Oppermann
7baecea71d
Provide functions to create topics and publishers
2 years ago
Philipp Oppermann
6153f6629a
Export function to create ROS2 context
2 years ago
Philipp Oppermann
e818983549
Generate topic definitions for all messages types
2 years ago
Philipp Oppermann
4c64cad6ed
Replace proc macro by build script to generate C++ bindings
The `cxx_build` crate does not support proc macro output (see https://github.com/dtolnay/cxx/issues/808 ), so we have to generate a standard Rust source file instead.
2 years ago
Philipp Oppermann
f9cfedc302
Move code generation to `msg-gen` crate
2 years ago
Philipp Oppermann
bd84baba28
Fix impl blocks for generated messages
2 years ago
Philipp Oppermann
b9e5e533e0
Redesign ROS2 message struct generator to support `cxx_bridge`
2 years ago
Philipp Oppermann
f0075d8e92
Add config option to msg gen macro to output `cxx_bridge` attribute
2 years ago
Philipp Oppermann
bccde9b5d3
Print action string after splitting on parse errors
2 years ago
Philipp Oppermann
df5c509479
Permit `\r` in action line separator
2 years ago
Philipp Oppermann
26e04e63ce
Debug: print full content of action that fails to parse
2 years ago
Philipp Oppermann
4123c3a6ce
Add more context to action file parse errors
2 years ago
Philipp Oppermann
7cc4bd3361
Update Cargo.toml files to integrate bridge into workspace
2 years ago
Philipp Oppermann
f3a8655d02
Add 'libraries/extensions/ros2-bridge/' from commit 'c08bb144060f61594c8d32dd3725691ec57ebcfb'
git-subtree-dir: libraries/extensions/ros2-bridge
git-subtree-mainline: 8e7688a593
git-subtree-split: c08bb14406
2 years ago