SIAM instrument services are configured using Java properties, consisting of name/value pair strings defining configuration parameters.
The SIAM instrument service framework defines a set of properties (attributes, configuration parameters) common to all SIAM services.
InstrumentServiceAttribute and related classes encapsulate the types and behaviors of the properties, for example whether required or optional, and conversion from (configuration file) strings.
Instrument services may also define instrument-specific properties, which may have default values and may be made required or optional.
At run-time, the service property values are loaded from a file called service.properties contained in the instrument service jar. service.properties is created by the mkpuck utility, which is called from mksiamjar. The property values are set by configuring the appropriate makefile or shell script used to call mksiamjar.
The service property values may be changed while the service is running using the setProperty utility. The changes made with setProperty will persist while the service is running; by default, they will revert to the serviceProperty defaults at service or system restart. They may be made to persist across service or system restarts using the cachePort utility.
The current values of the service properties may be read while the service is running using the portProperties utility.
portProperties lists all instrument service properties, both common and instrument-specific. The getMetadata utility shows both the current value of the service properties and the default values in the service.properties file.
The following table describes the service properties common to all of the instrument services.
|isiID||SSDS-ID of device||-|
|serviceName||Name of service||UNKNOWN|
|UUID||Universal unique identifier of device||00000000-0000-0000-0000-000000000000|
|nominalCurrentMa||Expected nominal instrument current draw||1000|
|peakCurrentMa||Expected maximum instrument current draw||5000|
|currentLimitMa||DPA overcurrent trip if this limit exceeded||1000|
|powerOnDelaySec||Seconds to pause before first power-on||0|
|startDelayMsec||Pause (msec) after each power-on||0|
|powerPolicy||Set to ALWAYS, NEVER, or SAMPLING||PowerPolicy.NEVER|
|commPowerPolicy||Set to ALWAYS, NEVER, or SAMPLING||PowerPolicy.WHEN_SAMPLING|
|timeSynch||If true, try to synchronize instrument clock with node clock when service starts||FALSE|
|sampleSchedule||Sample acquisition schedule||-|
|maxSampleTries||Number of times to attempt per scheduled sample acquisition||-|
|sampleTimeoutMsec||Timeout (msec) on serial read during acquisition||-|
|Summarization and telemetry subsampling properties|
|summaryTriggerCount||Generate summary packet after this many raw samples are acquired|
|maxSummarySamples||Generate summary packet and clear statistics after this many raw samples are acquired||0|
|defaultSkipInterval|| n>0: Number of "raw" SensorDataPackets to skip during data telemetry
0: retrieve all raw packets
-1: retrieve no raw packets (e.g. during summarization)
|packetSetSize||Number of SIAM packets to retrieve per "set" by portal||10|
|errCacheLimit||Generate MessagePacket after this many successive errors||5|
|The following are read-only properties that may be displayed but may not be modified by the user:|
|className||Name of service class||-|
|parentID||ISI-ID of host platform||-|
|frameworkVersion||SIAM version of service base class||-|
|serviceStatus||Code indicating current state of service: