Philipp Oppermann
89f980e753
Simplify arrow array construction through new `IntoArrow` trait
2 years ago
haixuanTao
3c737f8957
Fix clippy
2 years ago
haixuanTao
1d18d2ce62
Remove unnecessary ro2value encapsulation
2 years ago
Philipp Oppermann
2a19044919
Automatically convert from Python dict to arrow array in ROS2 publish
2 years ago
Philipp Oppermann
7f90c13cc2
Automatically convert from `StructScalar` to `ArrayData` in ROS2 publish method
2 years ago
Philipp Oppermann
8b2e5f9386
Fix: Use expected type for serializing
This way we get an error on incompatible types, instead of sending out invalid data.
2 years ago
Philipp Oppermann
19f9cc7c90
Add support for arbitrary Arrow types in Python API
2 years ago
Philipp Oppermann
0835a19dd2
Merge pull request #342 from dora-rs/small-refactoring
Small refactoring
2 years ago
haixuanTao
90c28de777
Fix clippy warnings about unnecessary `.clone()`, `.into()`, borrowing and let statement
2 years ago
haixuanTao
9805d06bdd
Remove capnproto dependency
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
39c12aa83c
Fix: Standalone turtle example was removed
2 years ago
Philipp Oppermann
1f01890c2a
Remove ros2 bridge CI script and gitignore
2 years ago
Philipp Oppermann
a4244f9eb0
Delete standalone bridge examples
2 years ago
Philipp Oppermann
2ef2b770d2
Remove ros2-bridge Python release script
It's now bundled with the main dora library, so there's no need to release it separately.
2 years ago
Philipp Oppermann
b12f5e7620
Adjust python-ros2-dataflow example and move it to top level
2 years ago
Philipp Oppermann
bae02930df
Import ros2_bridge as experimental submodule of python node API
2 years ago
Philipp Oppermann
51f5418400
Move rust-ros2-dataflow example to top level examples dir
2 years ago
Philipp Oppermann
623514d69b
Delete duplicate repo files (readme, license, gitignore)
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
haixuanTao
0220d1ef65
Adding `data_type` to metadata for typing output
2 years ago
haixuanTao
6b910ab619
Adding `arrow-schema` as dependency
2 years ago
haixuanTao
eb515c7755
Removing lifetime to the Metadata struct
2 years ago
haixuanTao
19172523df
Update `pyo3` and `arrow` version to use latest version
2 years ago
haixuanTao
504910c350
Use `serde_bytes` to serialize `Vec<u8>`
Seializing Vec<u8> by default iterate over each element instead of copying
the byte array.
See: https://github.com/rust-lang/rust/issues/31844
2 years ago
Haixuan Xavier Tao
53198b861b
Merge pull request #248 from dora-rs/shmem-read-only
Map shared memory region as read-only in receiver
2 years ago
haixuanTao
2f0300076f
Search for binaries in path when validating a dataflow
2 years ago
Philipp Oppermann
979573689a
Switch to forked `shared_memory_extended` crate
The maintainer of the `shared_memory` crate did not react to our PR, so I decided to create a (temporary) fork.
2 years ago
Philipp Oppermann
4da34d82d9
Merge branch 'main' into event-timestamps
3 years ago
Philipp Oppermann
984ee364e4
Fill in timestamps when sending events from node to daemon
3 years ago
Haixuan Xavier Tao
2e9108e894
Merge pull request #301 from dora-rs/pass-dataflow-to-nodes
Make dataflow descriptor available to Python nodes and operators
3 years ago
Philipp Oppermann
0bf31b750e
WIP: Add `uhlc` timestamps to all events and update HLC clocks
3 years ago
Philipp Oppermann
8a439c3411
Pass dataflow descriptor to Rust nodes via API
3 years ago
Philipp Oppermann
dff0d82f52
Fix adding of `.exe` extension
The `with_extension` method returns a new path, it does not modify the existing path.
3 years ago
Philipp Oppermann
868bee5897
Wait for dataflow finish on `dora stop`
3 years ago
Philipp Oppermann
3bb665ae00
Pass dataflow result to CLI
3 years ago
haixuanTao
2c52891438
Place documentation as docstring
3 years ago
Philipp Oppermann
97bc9d0f92
Merge branch 'main' into heartbeat
3 years ago
Philipp Oppermann
520fa352da
Merge branch 'main' into node-errors-before-init
3 years ago
Philipp Oppermann
7d646509c2
Replace watchdog by asynchronous heartbeat messages
The previous watchdog requests required waiting for a reply, which could slow down the system under load and also lead to false errors on slower systems (e.g. the CI). Because of this, this commit replaces the watchdog requests with asynchronous heartbeat messages, which don't require replies. Instead, we record the last heartbeat timestamp whenever we receive a heartbeat message. We then periodically check the time since the last received heartbeat message and consider the connection closed if too much time has passed.
3 years ago
haixuanTao
664e8d48ba
Minor refactoring
3 years ago
haixuanTao
7f82f32a98
Make logs not fail in the daemon
3 years ago
Philipp Oppermann
e20699de3f
Handle node errors during initialization phase
We synchronize the start of nodes (even across machines) to avoid missed messages. This led to deadlock issues when nodes exited before they initialized the connection to the dora daemon. The reason was that the other nodes were still waiting for the stopped node to become ready.
This commit fixes this issue by properly handling node exits that occur before sending the subscribe message. If nodes exit, they are removed from the pending list and added to a new 'exited before init' list. Once all nodes have subscribed or exited, we answer the pending subscribe requests. If nodes exited before subscribing we send an error reply to the other nodes because a synchronized start is no longer possible.
To make this logic work across different machines too, we add a `success` field to the `AllNodesReady` message that the daemon sends to the coordinator. The coordinator forwards this flag to other daemons so that they can act accordingly.
3 years ago
Philipp Oppermann
132957ad34
Fix: Don't ignore subscribe results
3 years ago
haixuanTao
e3079a88bd
Refactor to multi-daemon branch
3 years ago
haixuanTao
ca182bb131
Provide a way to access logs through the CLI
3 years ago