Dataserver Simulator
- 09 Aug 2021
- 3 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
Dataserver Simulator
- Updated on 09 Aug 2021
- 3 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
The purpose of this article is as a reference guide for the use of the Simulator Dataserver.
This is not a real cloud service
just a test service that throws away data instead of sending it to a Cloud service. It still maintains all statistics counters and can be used during testing of collectors.
Prerequisite
A Starter package (SiteManager + accounts)
A device to collect data from (PLC, HMI, Controller)
The DataServers (array of objects, mandatory) list elements contain the following fields:
Function | Type | Importance | Description |
---|---|---|---|
DatasrvName | string | mandatory | Unique (within this configuration file) name for each dataserver this SiteManager delivers data to. Follows the normal rules for names. |
DatasrvDesription | string | optional | A description of this data server. For your future reference |
SampleList | array of strings | optional | This array contains the list of sampleref this dataserver will deliver data for. If it is not present, all sample values in this configuration will be delivered. Since this object is not a Collectors object, the CollectorName part of the sampleref field is mandatory. If the SampleName part of the sampleref is left blank, all samples from that collector are delivered. |
IOPin | boolean | optional | If set to true, the Output I/O pins configured to follow DCM dataloss will be controlled by this datasrv. If multiple dataservers are controlling the I/O pins, then the value will be the logical OR of all dataservers data loss state. (I.e. If any dataserver is in dataloss, the I/O pins will be in logical high). If not set, the value is false. |
DatasrvProtocol | string-enum | mandatory | Designates the protocol used to deliver data from the Store'n'Forward database to data servers, aka Cloud Systems. For Simulator, use "SIMULATOR/NONE". Currently 6 possible values exist: "AWS/MQTT", "AZURE/IOTHUB", "SCI/SPD", "C8Y/REST", "SEMA/REST" or "SIMULATOR/NONE". |
ConnectRetryMin | integer > 0 | mandatory | Minimum number of seconds before trying to reestablish a connection to the dataserver for data delivery. An exponential back-off algorithm is used to retry connection establishment, starting after ConnectRetryMin and increasing to ConnectRetryMax. |
ConnectRetryMax | integer > 0 | mandatory | Maximum number of seconds before trying to reestablish a connection to the dataserver for data delivery. |
SimulatorParams | object | mandatory for Simulator Cloud | Contains all the parameters needed to deliver (publish) data to a simulated Cloud. Mandatory if DatasrvProtocol has the value "SIMULATOR/NONE". This is not a real cloud service, but just a test service that throws away data instead of sending it to a Cloud service. It still maintains all statistics counters and can be used during testing of collectors. |
The SimulatorParams object contains the following fields:
Function | Type | Importance | Description |
---|---|---|---|
PushInterval | integer >= 0 | mandatory | The interval in seconds between each delivery of new data from the Store’n’Forward database. The value 0 means that data is delivered as fast as possible. |
PayloadFormat | string | optional | This string describes the format of the payload reported to Sema. The format is as for the MQTTAWSParams PayloadFormat field. If not specified the format is %jd:%js,%jv,%T. |
BulkElementFormat | string | optional | This string describes the format of the element used by the "%b" format used in the PayloadFormat. The format is the same as for MQTTAWSParams PayloadFormat. If not specified, this bulk element format is not used. |
MaxFrameSize | integer > 0 | optional | This integer specifies the maximum frame size used, if the BulkElementFormat is used to buffer up payloads. If not specified, the value is 4096. |
DropNthFrame | integer >= 0 | optional | This value makes the Simulated Cloud Service drop 1 in DropNthFrame frames and thus force the Store'n'Forward database to re-transmit all the values contained in that dropped frame. |
'm' - SiteManager Unique address. (This is NOT the MAC address, but the EdgeID )
'M' - SiteManager Unique MAC address.
'N' - SiteManager Name. (GateManager Appliance Name).
'V' - Configuration version ID.
'd' - Collector name.
's' - Sample name.
'u' - Sample unit. If undefined, an empty string.
'g' - Sample group name. If undefined, the sample name will be used.
't' - Timestamp value as an integer. (64bit 100ns resolution)
'T' - Timestamp as ISO-8601 time string. (2018-11-12T14:04:46.114)
'e' - Timestamp as an integer. (32bit Unix Epoch)
'E' - Timestamp as an integer. (64bit Unix Epoch in millisecond resolution)
'v' - Sample value as a string. (binary data as hex byte string)
'b' - Multiple values are delivered (in bulk) as an array, described in the BulkElementFormat .
'%' - A percent character. The format can be prefixed with 'j', which will perform escape sequence to data according to the RFC 7159 (JSON) standard. If not specified, the format is { "v" : [ %jb ] } .
{ "DatasrvName":"Simulatedcloud", "DatasrvProtocol":"SIMULATOR/NONE", "ConnectRetryMin":2, "ConnectRetryMax":240, "SimulatorParams":{ "PushInterval":0, "PayloadFormat":"{ \"%js\" : %jv, \"timestamp\" : %t }" } }
Was this article helpful?