Additional Files

example.conf

As described in Custom Driver File Locations, example.conf is a configuration file that specifies the configuration for running the example customer driver as a service on the SmartServer using smartserverctl, which is the SmartServer process manager.  A configuration file for a custom driver that’s going to be run as a service contains some basic elements.  This includes the program name and associated process name, and path statements to the actual application location and any associated log files.  The autostart and autorestart parameters also instruct smartserverctl to run the application when the system boots and to restart it if it exits.

[program:example]
command=/var/apollo/data/example/example
process_name=example
...
autostart=true
autorestart=true
...
stdout_logfile=/var/apollo/data/example/example.log

example-idl.conf

As described in Custom Driver File Locationsexample-idl.conf is a configuration file that among other things, specifies the driver name for this custom driver as it will be referenced in the CMS and IAP API, and it also provides the path to the resources directory where device type files associated with this protocol are located.  The configuration file is passed to IDL in main.cpp when IdlInit() is called to start up the custom driver.  A complete description of the contents of a driver configuration file can be found in Conf File.

{
"Protocol identifier": "example",
"MQTT specific details": {
   "MQTT client ID": "example.0",
   "cleanSession": false
   },
"xif_dir_absolute_path": "/var/apollo/data/example/res",
...
}

exampledevice.xpl

As mentioned in Custom Driver File Locations, exampledevice.xpl,is a device interface (XIF) file that devices the network interface of an example device.  It includes the definition for a simulated device that contains four,simple counter data points.  There are certain data point property columns that are mandatory to include in a custom device interface file, which includes the DataPoint Name, IAP Type, Write Enable, & Address columns.  Details on these mandatory column properties can be found in Collecting or Creating Device Definitions.  Drivers to other protocols may need additional columns to define all the necessary properties required to access data points using these custom protocols.  You can add custom columns to the definitions for datapoints in a device interface definition file as shown in the example below, however the SmartServer does not pass these custom parameters to the driver itself via the device create callback function.  For reference, see the *xif_dp_array parameter in the device create callback function described in Device Create Functions.

#filetype,example_xif
#program_ID,9B0001050004EC00
#manufacturer,EnOcean
#description,exampledevice xif
Datapoint Name,IAP Type,Write Enable,Address,Myfield1,Myfield2
Counter_A,SNVT_count,-,0,F6,02
Counter_B,SNVT_count,-,1,F6,02
Counter_C,SNVT_count,-,2,F6,02
Counter_D,SNVT_count,-,3,F6,02