ADCON Telemetry

This is an import that makes use of the custom import mechanism described in Custom import formats. The ADCON server import consists of a ServerParser (AdconTimeSeriesServerParser.java), and an XmlParser (AdconTimeSeriesXmlParser.class).

IMPORTANT REMARK: Using the ADCON Telemetry Webservice is only allowed if you have signed a NDA with Adcon Telemetry GmbH (Austria). Please visit www.adcon.at for more details.

The server parser interacts with an ADCON programming interface as described their URL Programming Interface document. This document is available at Adcon Telemetry GmbH. 

The following API functions have been implemented:

  • login - returns a session-id which is required by the other function calls.
  • getdata - returns timeseries data. Can return multiple timeseries.
  • logout - closes session.

The response returned by the getdata call is parsed using the AdconTimeSeriesXmlParser.class.

FEWS configuration

In order to activate the ADCON Server import as a FEWS import, it is required to setup a TimeSeriesImportRun module configuration file and an accompanying IdMap file. Also the bin directory containing all ADCON resources must be placed in a location that can be accessed by FEWS.

Example Import configuration file:

<?xml version="1.0" encoding="UTF-8"?>
<timeSeriesImportRun xmlns="http://www.wldelft.nl/fews"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.wldelft.nl/fews file:/d:/FEWS-code/trunk/xml-schemas/timeSeriesImportRun.xsd">
<!-- This is an example import configuration file for importing Observations and Measurements data from a service -->
<import>
    <general>
        <parserClassName>nl.wldelft.adcon.timeseriesparsers.AdconTimeSeriesServerParser</parserClassName>
        <binDir>%REGION_HOME%/Modules/adcon-bin</binDir>
        <serverUrl>http://dummy_hostname:port/addUPI</serverUrl>
        <user>dummy_username</user>
        <password>dummy_password</password>
        <relativeViewPeriod unit="hour" start="-5" end="0" startOverrulable="true" endOverrulable="true"/>
        <idMapId>IdImportAdcon</idMapId>
        <importTimeZone>
            <timeZoneOffset>-06:00</timeZoneOffset>
        </importTimeZone>
     </general>
     <properties>
     <!-- Optional: This value represents the sampling frequency for the series in seconds. It is used
           to convert the search period into a number of slots (~timesteps) to return from the server.
           If omitted a default of 900 is used. If this value does not match with the actual value, then
           either too many or too few slots will be returned.

           Conversion search period and slotInterval to nr of slots:

           nr of slots = Period duration in millis / (slotInterval in seconds * 1000) -->
          <int key="slotInterval" value="900"/>

      <!-- Optional: The maximum number of slots that can be request in one go. This number is defined
           by the server. If the number of requested slots exceeds this value the server throws an exception.
           If omitted a default of 1000 is used. -->
         <int key="getdataMaxSlots" value="1000"/>

      </properties>
      <timeSeriesSet>
          <moduleInstanceId>ImportAdcon</moduleInstanceId>
          <valueType>scalar</valueType>
          <parameterId>MyPar</parameterId>
          <locationSetId>MyLocSet</locationSetId>
          <timeSeriesType>external historical</timeSeriesType>
       <timeStep unit="nonequidistant"/>
       <readWriteMode>add originals</readWriteMode>
       <synchLevel>1</synchLevel>
    </timeSeriesSet>
    </import>
</timeSeriesImportRun>

Example IdMap file:

<?xml version="1.0" encoding="UTF-8"?>
<idMap version="1.1" xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/idMap.xsd">
<!--
    OPTION1: map internal timeseries directly to external timeseries
    Using this configuration the Adcon parser queries each timeseries separately.
 -->
 <map internalLocation="MyLoc1" internalParameter="MyPar1" externalLocation="adconNodeIdOfTimeseries" externalParameter="none" />

 <!--
   OPTION2: map internal timeseries to groep of external timeseries
   Using this configuration the Adcon parser queries the whole group is a single request and then
   extract the timeseries data from the response. The response contains all available timeseries
   and not only the requested ones. -->
 <map internalLocation="MyLoc1" internalParameter="MyPar1" externalLocation="adconNodeIdOfGroup" externalParameter="adconNodeIdOfTimeSeries1" />
 <map internalLocation="MyLoc1" internalParameter="MyPar2" externalLocation="adconNodeIdOfGroup" externalParameter="adconNodeIdOfTimeSeries2" />
 <map internalLocation="MyLoc1" internalParameter="MyPar3" externalLocation="adconNodeIdOfGroup" externalParameter="adconNodeIdOfTimeSeries3" />
 <map internalLocation="MyLoc1" internalParameter="MyPar4" externalLocation="adconNodeIdOfGroup" externalParameter="adconNodeIdOfTimeSeries4" />

 </idMap>

  • No labels