Skip to content

Device Service Component Configuration

The following table describes the configuration variables that can be used with all Device Service components:

Parameter Type Description Valid Values Required
Library String The shared library implementing the Device Service component "libxrt-{protocol}-device-service.so" Y - When using dynamic linking
Factory String The name of the C function used to instantiate the component "xrt_{protocol}_device_service_factory" Y - When using dynamic linking
Name String The name of the Device Service Y
TelemetryTopic String The name of the topic on which to publish data from a service including scheduled events, COVs and more Y
RequestTopic String The name of the topic on which to receive requests from the Bus Y
ReplyTopic String The name of the topic on which to publish request replies to the Bus Y
DiscoveryTopic String The name of the topic on which to publish discovery requests to the Bus N
StatusTopic String The name of the topic on which to publish change of operational state events to the Bus N
QueueMax Unsigned Integer The maximum size of the queue for requests Default: 1 N
DiscoveryInterval Unsigned Integer The interval in seconds in which discovery will be triggered Default: 0 N
ScheduleDeadBand Unsigned Integer A schedules initial start time can be anytime within its interval. This option can reduce the range of the start time by setting a dead band at the end of the potential start time in milliseconds. For example, a schedule with an interval of 10 seconds, a dead band of 2000 ms would mean the initial start time of the schedule would occur within 0 to 8 seconds instead of 0 to 10 Default: 0 N
Timestamp Boolean Include timestamp in reading Default: false N
AutoRegister Boolean Automatically add discovered devices Default: false N
PublishRegisteredDevices Boolean On starting XRT, details of the devices already registered will be published Default: false N
PublishAttributes Boolean Include attributes in reading Default: false N
SchedulesThreadPool String Assign a dedicated Threadpool component for Schedules to use. By default all Schedule events will run in the common Threadpool A string with the name of the ThreadPool component to use N
SyncPostData Boolean Set whether to publish messages synchronously (true) or asynchronously (false) Default: false N
EdgeXCompat Boolean Determines whether returned readings should be EdgeX compatible Default: false N
EnableDiscovery Boolean Enable discovery for the service Default: false N
PreloadCache Boolean Specify true to load resource metadata cache with device profiles on initialization

Specify false to cache resource metadata on demand

Provides the optimal response time for the first request for a specified resource at the cost of increased memory use and start-up time
Default: false N
ProfileDir String The full path of the directory containing the device profiles and ProfileListFile Y
ProfileListFile String The name of the JSON file that contains the list of device profiles to load

The file list is represented as an array of strings

This JSON file and the entries in the array are relative to the path defined in ProfileDir and have a .json extension

If not present, a profiles.json file in the path defined in ProfileDir is read to provide the profile files to load

A JSON file that matches the name of the JSON file specified in this parameter must be present in the path defined in ProfileDir
Default: profiles N
DevicesFile String The name of the JSON file that contains the list of devices to load

The file list is represented as an array of device objects

This JSON file and the entries in the array are relative to the path defined in StateDir and have a .json extension

If not present, a devices.json file in the path defined in StateDir is read to provide the devices to load

A JSON file that matches the name of the JSON file specified in this parameter must be present in the path defined in StateDir
Default: devices N
SchedulesFile String The name of the JSON file that contains the list of schedules to load

The file list is represented as an array of schedule objects

This JSON file and the entries in the array are relative to the path defined in StateDir and have a .json extension

If not present, a schedules.json file in the path defined in StateDir is read to provide the devices to load

A JSON file that matches the name of the JSON file specified in this parameter must be present in the path defined in StateDir
Default: schedules N
StateDir String The full path of the directory containing the DevicesFile and SchedulesFile Y
Driver Object Device Service-specific configuration

See the supported Device Service components for the available options
N
Scheduler String The name of the Scheduler component to use The name of an existing Scheduler component Y
ThreadPool String The name of the ThreadPool component to use The name of an existing ThreadPool component Y
Bus String The name of the Bus component to use The name of an existing Bus component Y
Logger String The name of the Logger component to use The name of an existing Logger component N
ValidateProfilesOnStart Boolean Specify true for XRT to validate that every profile loaded on startup is correct

Specify false for no profile validation to occur on startup
Default: true N
Back to top