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

add dds-config tool readme #13525

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
61 changes: 61 additions & 0 deletions tools/dds/dds-config/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# dds-config tool

## Goal
This tool is used to configure Ethernet based devices.

## Description
The dds-config tool offers connection configuration information for connected devices and allows users to manage connection priorities.
It enables the selection of the preferred connection method, whether Ethernet or USB, when both options are available, and provides the ability to set network parameters.

## Command Line Parameters
| Flag | Description |
Noy-Zini marked this conversation as resolved.
Show resolved Hide resolved
|---|---|
|-h --help|Show command line help menu with all available options|
|--version|Displays version information|
|--usb-first|Prioritize USB and fall back to Ethernet after link timeout|
|--eth-first|Prioritize Ethernet and fall back to USB after link timeout|
|--dynamic-priority|Dynamically prioritize the last-working connection method (the default)|
|--serial-number <S/N>|Device serial-number to use, if more than one device is available|
|--reset|Hardware reset without making any changes|
|--link-timeout <milliseconds>|Milliseconds before --eth-first link times out and falls back to USB|
|--dhcp <on/off>|DHCP dynamic IP discovery 'on' or 'off'|
|--ip <address>|Device static IP address to use when DHCP is off|
|--mask <1.2.3.4>|Device static IP network mask to use when DHCP is off|
|--gateway <1.2.3.4>|Gateway to use when DHCP is off|
|--domain-id <0-232>|DDS Domain ID to use (default is 0), note:this is the device domain ID not librealsense domain ID|
|--dhcp-timeout <seconds>|Seconds before DHCP times out and falls back to a static IP|
|--no-reset|Do not hardware reset after changes are made|
|--golden| Show R/O golden values vs. current; mutually exclusive with any changes|
|--factory-reset|Reset settings back to the --golden values|

## Usage example
Prioritize Ethernet connection by using `rs-dds-config.exe --eth-first`:
```
Device: [USB] Intel RealSense D555 s/n 338522301774
MAC address: 98:4f:ee:19:cc:49
configured: 192.168.11.55 & 255.255.255.0 / 192.168.11.1
DDS:
domain ID: 0
link: 1000 Mbps
MTU, bytes: 9000
timeout, ms: 10000
priority: usb-first --> eth-first
DHCP: OFF
timeout, sec: 30
Successfully changed
Resetting device...
```
After running `rs-dds-config.exe` we can now see the device changed it's connection to DDS:
```
Device: [DDS] Intel RealSense D555 s/n 338522301774
MAC address: 98:4f:ee:19:cc:49
configured: 192.168.11.55 & 255.255.255.0 / 192.168.11.1
DDS:
domain ID: 0
link: 1000 Mbps
MTU, bytes: 9000
timeout, ms: 10000
priority: eth-first
DHCP: OFF
timeout, sec: 30
```
6 changes: 3 additions & 3 deletions tools/dds/dds-config/rs-dds-config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,19 +151,19 @@ try

cli::flag quiet_arg( "quiet", "Suppress regular informational (-I-) messages" );
cli::flag reset_arg( "reset", "Hardware reset without making any changes" );
cli::flag disable_arg( "disable", "Disable DDS in all librealsense examples & tools by default and exit" );
cli::flag disable_arg( "disable", "Disable DDS in all librealsense examples & tools by default" );
cli::flag no_reset_arg( "no-reset", "Do not hardware reset after changes are made" );
cli::flag golden_arg( "golden", "Show R/O golden values vs. current; mutually exclusive with any changes" );
cli::flag factory_reset_arg( "factory-reset", "Reset settings back to the --golden values" );
cli::value< std::string > sn_arg( "serial-number", "S/N", "", "Device serial-number to use, if more than one device is available" );
cli::value< std::string > ip_arg( "ip", "address", "", "Device static IP address to use when DHCP is off" );
cli::value< std::string > mask_arg( "mask", "1.2.3.4", "", "Device static IP network mask to use when DHCP is off" );
cli::value< std::string > gateway_arg( "gateway", "1.2.3.4", "", "Device static IP network mask to use when DHCP is off" );
cli::value< std::string > gateway_arg( "gateway", "1.2.3.4", "", "Gateway to use when DHCP is off" );
cli::value< std::string > dhcp_arg( "dhcp", "on/off", "on", "DHCP dynamic IP discovery 'on' or 'off'" );
cli::value< uint32_t > dhcp_timeout_arg( "dhcp-timeout", "seconds", 30, "Seconds before DHCP times out and falls back to a static IP" );
cli::value< uint32_t > link_timeout_arg( "link-timeout", "milliseconds", 4000, "Milliseconds before --eth-first link times out and falls back to USB" );
cli::value< int > domain_id_arg( "domain-id", "0-232", 0, "DDS Domain ID to use (default is 0)" );
cli::flag usb_first_arg( "usb-first", "Prioritize USB before Ethernet" );
cli::flag usb_first_arg( "usb-first", "Prioritize USB and fall back to Ethernet after link timeout" );
cli::flag eth_first_arg( "eth-first", "Prioritize Ethernet and fall back to USB after link timeout" );
cli::flag dynamic_priority_arg( "dynamic-priority", "Dynamically prioritize the last-working connection method (the default)" );

Expand Down
Loading