Combined updates from multiple sources#22
Merged
zultron merged 131 commits intotormach:humble-develfrom Sep 10, 2025
Merged
Conversation
Fix issue where drive param updates cycle indefinitely with console log spamming
The `test_read_update_write` test can be reused with different inputs to test many different cases. Split it out so it can be subclassed and run alone without dragging in the rest of the device tests.
This paves the way for running many tests over just one update.
The first cycle of the `test_read_update_write()` loop will completely reset all device interfaces. Interfaces are set twice so that the object doesn't see any change from the previous update cycle. Top-level device mgr objects may have their state machine forced to any desired state.
Log names now show up as device name@address; for example, in `hw_device_mgr/devices/tests/devices.py`, a log name could be `SV660_ECAT_test@(0,5,10)`. Its config object logger would be `SV660_ECAT_test_cfg@(0,5,10)`.
Classmethods beginning with `test_` are now considered test cases.
Have `hm_request_cw_flags()` and `pp_request_cw_flags()` return a `dict` with updated flags. This is nice for consistency, easy to understand, and easy to override if needed.
Introduce separate update rates, the usual update rate (default 10Hz) for normal operation, and a fast track update rate (default 100Hz) for when fast track is requested.
Allow passing an explicit list `devs` of bus scan results to `gen_ethercat_xml()`; the method will use that instead of running `bus_scan()` itself.
Simulate command execution by setting a period to sleep.
Some devices have fixed PDO mappings (e.g. iTegva IO modules) or no sync manager mailboxes or object dictionaries at all (e.g. Beckhoff CU1128 junction box). - Make `ethercat.conf.xml` `<slave configPdos=[...]` configurable - Don't crash when device config has no `sync_manager` key - Add sim junction box to tests
`REAL` data type seen in both Elmo and Ingenia ESIs.
The recently-added PDO entry `scale` and `offset` args need different values for different drives in the same machine.
- Fix CI Docker image namespace, following upstream [1] (possibly temporary) - Update CI Docker image and CI config to Humble/Jammy - Remove `clang` tests & ccache config; fixes failure on Ubuntu Jammy, with no `clang-format-10` package; no C code here anyway - Update pre-commit GH action tag to latest 3.0.0 [1]: moveit/moveit2#1908
Waiting for these to shake out: ros/rosdistro#36888 ros/rosdistro#36893
- Don't depend on unneeded things - Don't fail when `multilatency` comp can't be instaled
Update to "Add device class `init_class()` method" commit
960cce8 to
96a3b72
Compare
This was referenced Aug 8, 2025
…08-04_ros2_fixes-dev
This merge mostly replaces the original, stale branch with this recent
branch, containing all current code used in 1500MX and ZA6 ROS 2 code
bases, except preserving the following commits:
cia_301: Throw exception early if a device isn't recognized
ethercat: xml_reader.py no-op readability
ethercat: Handle `<Comment/>` child tags in `<DataType/>` tags
Fix error handling in mgr_ros
Conflicts:
.github/workflows/format.yaml
.github/workflows/upstream_install.sh
.pre-commit-config.yaml
hw_device_mgr/async_task_queue.py
hw_device_mgr/cia_301/async_params.py
hw_device_mgr/cia_301/config.py
hw_device_mgr/cia_301/device.py
hw_device_mgr/cia_301/tests/test_config.py
hw_device_mgr/cia_301/tests/test_device.py
hw_device_mgr/cia_402/device.py
hw_device_mgr/device.py
hw_device_mgr/devices/inovance_sv660.py
hw_device_mgr/logging/__init__.py
hw_device_mgr/mgr/mgr.py
hw_device_mgr/mgr/tests/test_mgr.py
hw_device_mgr/mgr_ros/mgr.py
hw_device_mgr/tests/test_device.py
f577727 to
96a3b72
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains combined updates from trees that have diverged:
Also support for additional drive models and lots of bug fixes.