micro-ROS / micro-ROS/rmw_microxrcedds

Feature request: runtime switching of transport channel

Open
#322 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
47
Forks
36
Avg merge
2d 19h
Merged PRs (30d)
6

Description

## Support for runtime switching of transport (UDP / custom, etc )

Current implementation requires compile time definition for transport type. Adding support for runtime
switching will open possibility of applications to setup backup channel in case main channel fails or create more dynamic applications.

### possible implementation
- add a another transport "multimode" apart from UDP, custom, etc which defines multimode implementation. Thus only users with "multimode" bear the overhead of binary size and execution.

#### multimode
- [rmw_uxrce_transport_params_t](https://github.com/micro-ROS/rmw_microxrcedds/blob/jazzy/rmw_microxrcedds_c/include/rmw_microros/rmw_microros.h#L55) contains parameters for all possible types. Nothing excluded by macros.

- Add a static global variable "RMW_UXRCE_ACTIVE_TRANSPORT" to determine currently active transport and make transport call as per currently active transport.

+ many more

Does this sound like a good idea ?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing rmw_microros.h, especially rmw_uxrce_transport_params_t, and trace how the current compile-time UDP and custom transport selection works. Evaluate the proposed multimode transport and RMW_UXRCE_ACTIVE_TRANSPORT approach; done would require an agreed design for runtime switching and backup-channel behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.