Command Line Options {#command_line_options}

Robot Raconteur version 0.9.3 introduced command line option parsing for Node Setup classes. The following is an example of a program being started with the hardware transport disabled, the node name changed to testprog10, the TCP listen port changed to 62222, and the log level set to DEBUG. (There are many other options available beyond the ones shown in this example!)

./my_device_driver --robotraconteur-hardware-enable=false --robotraconteur-nodename=testprog10 --robotraconteur-tcp-port=62222 --robotraconteur-log-level=DEBUG

Node Setup classes must be configured to use command line options. See below.

Available Options

Options can be boolean, int, or string. Boolean must be true or false.

The following options are available:

Option

Type

Client Default

Server Default

Description

--robotraconteur-discovery-listening-enable=

boolean

true

true

Enable node discovery listening

--robotraconteur-discovery-announce-enable=

boolean

false

true

Enable node discovery listening

--robotraconteur-local-enable=

boolean

true

true

Enable Local transport

--robotraconteur-tcp-enable=

boolean

true

true

Enable TCP transport

--robotraconteur-hardware-enable=

boolean

false

false

Enable Hardware transport (USB,PCIe,Bluetooth)

--robotraconteur-intra-enable=

boolean

true

true

Enable Intra transport

--robotraconteur-local-start-server=

boolean

false

true

Start Local transport server

--robotraconteur-local-start-client=

boolean

false

false

Start Local transport named client. Ignored if start-server is true

--robotraconteur-local-server-public=

boolean

false

true

Start Local transport server as public on local machine

--robotraconteur-tcp-start-server=

boolean

false

true

Start TCP transport server

--robotraconteur-tcp-listen-localhost=

boolean

false

false

TCP transport server listen on localhost only

--robotraconteur-tcp-start-server-sharer=

boolean

false

true

Start TCP transport server using port sharer

--robotraconteur-tcp-ws-add-origin=

string

Comma separated list of WebSocket origins to add to TCP transport access control

--robotraconteur-tcp-ws-remove-origin=

string

Comma separated list of WebSocket origins to remove from TCP transport access control

--robotraconteur-tcp-ipv4-discovery=

boolean

false

false

Enable IPv4 discovery if discovery announce and/or listening is enabled

--robotraconteur-tcp-ipv6-discovery=

boolean

true

true

Enable IPv6 discovery if discovery announce and/or listening is enabled

--robotraconteur-intra-start-server=

boolean

false

true

Start Intra transport server

--robotraconteur-disable-timeouts=

boolean

false

false

Disable timeouts by setting to a large value (for debugging purposes)

--robotraconteur-disable-message4=

boolean

false

false

--robotraconteur-disable-stringtable=

boolean

true

true

--robotraconteur-load-tls=

boolean

false

false

Load TLS certificate for TCP transport. Default true for SecureServerNodeSetup

--robotraconteur-require-tls=

boolean

false

false

Require TLS certificate for TCP transport. Default true for SecureServerNodeSetup

--robotraconteur-nodeid=

string

Override the NodeID for the node. NodeID is typically determined by the Local transport on startup using system cache

--robotraconteur-nodename=

string

program specific

Override the NodeName for the node. The default NodeName is typically set by the program

--robotraconteur-tcp-port=

string

program specific

Override the TCP listen port. The default port is typically set by the program

--robotraconteur-log-level=

string

WARNING

WARNING

Sets the log level of the node. This overrides the environmental variable. Valid settings are FATAL, ERROR, WARNING, INFO, DEBUG, TRACE.

--robotraconteur-local-tap-enable=

boolean

false

false

Enable local tap feature (must also specify tap name)

--robotraconteur-local-tap-name=

string

Name of local tap

--robotraconteur-jumbo-message=

boolean

false

false

Enable jumbo messages (up to 100 MB)

Enable Command Line Options

Programs using Robot Raconteur must be configured to use command line options. This is accomplished using the NodeSetup classes. The following sections demonstrate using the command line options in each language.

** Note that [tcp_port] and [node_name] are placeholders and the real values are specific to each program! **

C++

C++ uses argc and argv from the main function to pass to the node setup:

Client:

ClientNodeSetup node_setup(ROBOTRACONTEUR_SERVICE_TYPES, argc, argv);

Server:

ServerNodeSetup node_setup(ROBOTRACONTEUR_SERVICE_TYPES, [node_name], [tcp_port], argc, argv);

C#

C# uses args (type string[]) from the program main function to pass to the node setup:

Client:

using(var node_setup = ClientNodeSetup(args)) { ... }

Server:

using(var node_setup = ServerNodeSetup([node_name], [tcp_port], args)) { ... }

Java

Java uses args (type String[]) from the program main function to pass to the node setup:

Client:

ClientNodeSetup node_setup = ClientNodeSetup(args);

Server:

ServerNodeSetup node_setup = ServerNodeSetup([node_name], [tcp_port], args);

Python

Python can either be initialized using from RobotRaconteur.Client import * for a default client configurations, or using the node setup classes. The RobotRaconteur.Client module supports command line options starting in version 0.10.

Client:

from RobotRaconteur.Client import *

...

Server:

import RobotRaconteur as RR
RRN = RR.RobotRaconteurNode.s
import sys

with RR.ServerNodeSetup([node_name], [tcp_port], argv=sys.argv) as node_setup:
    ...

MATLAB

Command line options are not supported for MATLAB