GPA Logo   TSL Adapter List Show All...



Adapter Overview

The time-series data processing library (TSL) in the Grid Solutions Framework is a core collection of classes used to manage, process and respond to dynamic changes in fast moving streaming time-series data in real-time. TSL components allow applications to be architected as measurement routing systems. Any application can host the library which will allow the application to become a "measurement router" that can host any of the TSL's pluggable adapters. More information about the time-series adapters that are available as part of the Grid Solutions Framework can be found in the online adapter documentation.

The openPDC, SIEGate, and opehHistorian are examples of projects based on the TSL. To build a time-series application that can use any of these adapters, or other custom adapters built on the TSL, see the Project Alpha GitHub site and some simple steps on building a time-series library project.


More...



Adapter Categories

Computational Adapters


The following computational adapters have been developed over the years by GPA for processing real-time streaming synchrophasor data. All adapters are included with all GPA time-series products, e.g., openPDC and openHistorian.

Some recently added adapters, e.g., the Bulk Sequence Calculator, will auto-configure itself, creating output measurements as needed based on existing configuration.


  • Angle Difference - (action) calculates an angle difference from time-series inputs taking into account wrapping
  • Average Frequency (area) - (action) calculates an average frequency from validated time-series inputs
  • Average Frequency (one second) - (action) calculates average of the input frequencies over each full second
  • Frequency Excursion - (action) detects a frequency excursion from a configured set of time-series inputs
  • Impedance - (action) calculates impedance outputs from a configured set of time-series inputs
  • Loss-of-Field - (action) detects loss-of-field from a configured set of time-series inputs
  • Power - (action) calculates a single set of P/Q/S values from configured time-series inputs
  • Power (bulk) - (action-collection) calculates bulk P/Q/S values based on configured phasor mappings from time-series inputs
  • Power Stability - (action) calculates a standard deviation of power useful simple oscillation detection from time-series inputs
  • Reference Angle - (action) creates a virtual angle from several time-series input angles that can be used as a reference angle
  • Reference Magnitude - (action) creates a virtual reference angle magnitude from several time-series input magnitudes
  • Sequence Values - (action) calculates a single set of sequence values (+/-/0) from configured time-series inputs
  • Sequence Values (bulk) - (action-collection) uses to calculate bulk sequence values (+/-/0) based on system configuration

Dynamic Calculator Adapters


The dynamic calculation adapters are used to process expressions using the Fast Lightweight Expression Evaluator (FLEE).

In the case of the database and e-mail notification adapters, the format will be to create a boolean expression based on incoming time-series measurements such that when the expression evaluates to True, the database operation will execute or the e-mail notification will be sent.

See the following documentation on FLEE expressions: Flee wiki examples


  • Email Notification - (action) sends an e-mail when time-series values trigger a Boolean expression as True
  • Dynamic Calculator - (action) produces a new time-series value based on a user equation (expression) from time-series inputs
  • Database Notification - (action) executes a database operation when time-series values trigger a Boolean expression as True

Phasor Protocol Adapters


The following phasor protocol adapters form the foundation of allowing a time-series application to consume, produce and operate on streaming synchorphasor data from a measurement perspective. Mapping of frames of synchrophasor data to and from measurements happens in the Phasor Measurement Mapper and the Base Concentration Adapter, both of which operate on most any synchorphasor protocol, e.g., IEEE C37.118.



Testing Adapters


The testing adapters are available to developers and users experimenting with time-series framework to produce various kinds of data feeds for the purposes of scaling a system for stress testing or validating adapter development under various conditions. The adapters also include a time-synchronization adapter that will take incoming data, e.g., from a GPS-time synchronized PMU, and use the incoming data to set the local clock -- this is useful for computers in lab environments where hardware clock synchronization options many not be available and NTP based-synchronization options are not accurate enough.



Database / Historian Adapters


These adapters provide production quality connectivity options to commericial historians, e.g., OSIsoft PI and eDNA, as well as providing options to push data into RDBMS and time-series databases. Do keep in mind that the time-series framework combined with high-volume, streaming synchrophasor data can quickly overwhelm these types of data archive systems. If you are experimenting with time-series archival systems, we suggest you take a look at GPA's openHistorian 2.0 which was explicitly designed for this kind of high-speed data.



Data Quality Monitoring Adapters


Products like the openPDC use the data quality adapters to monitor and alarm on data quality issues in streaming time-series data, covering a variety of common quality issues with streaming data, e.g., data flat-line scenarios (i.e., streaming but value is fixed) and out-of-range issues.


  • Alarm Adapter - (facile-action) used generate alarms based on time-series data
  • Alarm State Flagger - (filter) used to generate new measurement quality flags based on alarm states
  • Best Value Selector - (action) used to produces a new signal by selecting the best values from a time-series values
  • Flatline Test - (action) used test time-series values to determine if values have flat-lined
  • Range Test - (action) used test time-series values to determine if values satisfy a range condition
  • State Flags Transfer Adapter - (filter) used to transfers flags to / from time-series values
  • Device Statistic Adapters - (facile-action) used to monitor and report device alarm states based on time-series input values

File Operation Adapters


Time-series operations as it relates to files include options for reading and writing values that can be mapped to measurements in the GSF Time-Series Library. Existing options include an ICCP style adapter which will drop a file periodically with a configured set of measurements in a format consumable by many ICCP systems in use with SCADA deployments, providing a simple way to get calculations or other external time-series data into SCADA.


  • COMTRADE File Exporter - (action) used to export time-series values to COMTRADE file
  • ICCP File Exporter - (action) used to save time-series data a file suitable for ICCP import / SCADA
  • CSV Export Adapter - (output) exports time-series values to CSV files on a schedule with a fixed format of Timestamp,ID,Value
  • CSV Import Adapter - (input) imports time-series values from CSV files on a schedule and fixed format of Timestamp,ID,Value
  • CSV Input Adapter - (input) imports time-series values from CSV files in highly-customizable fashion with column mappings
  • CSV Output Adapter - (output) exports time-series values to a CSV formated: Signal ID,Measurement Key,Timestamp,Value
  • File Block Reader - (facile-action) used to read and transport file data via time-series framework (e.g., over STTP)
  • File Block Writer - (output) used to receive and write file data via time-series framework (e.g., over STTP)
  • EPRI File Exporter - (action) used to export calculated time-series values to formats used by EPRI analysis applications
  • EPRI File Importer - (input) used to import calculated time-series values from formats used by EPRI analysis applications
  • EPRI Metric Importer - (input) used to import time-series statistic values from formats used by EPRI analysis applications
  • FTP Reader - (facile-action) used to read and download files using FTP
  • Metadata Export - (facile-action) exports system metadata to a file for transport as time-series data chunks (e.g., over STTP)
  • Metadata Import - (facile-action) imports system metadata from a file-based transport as time-series data chunks (e.g., over STTP)

Publish / Subscribe Adapters


The following adapters are used to transffer streaming data using publish-subscribe data transfer protocols that have been optimized for exchanging streaming time series style data, such as synchrophasor data that is used in the electric power industry, over Internet Protocol (IP). The protocols, e.g., STTP/IEEE 2664, support transferring both real-time and historical time series data at full or down-sampled resolutions. These types of protocols have benefits that are realized at scale when multiplexing very large numbers of time series data points at high speed, such as, hundreds of times per second per data point.

Ideal use cases for protocols like STTP include those that need to securely exchange large numbers of continuously measured data. See the GPA overview of STTP for more detail.


  • STTP (IEEE 2664) Publisher - (action-collection) used to publish time-series data using the Streaming Telemetry Transport Protocol
  • STTP (IEEE 2664) Subscriber - (input) used to subscribe to time-series data using the Streaming Telemetry Transport Protocol
  • GEP Publisher - (action-collection) used to publish time-series data using the Gateway Exchange Protocol
  • GEP Subscriber - (input) used to subscribe to time-series data using the Gateway Exchange Protocol

Additional Adapters


The remaining adapters include various options for processing time-series data, including receiving time-series measurements from DNP3 and Modbus.


  • Azure Event Hub - (output) exports time-series values to an Azure event hub for cloud based analysis
  • DNP3 - (input) uses to import time-series values from a DNP3 data source
  • Modbus Poller - (input) import time-series values from a Modbus data source
  • WAV Audio Input Adapter - (input) used to read audio data from a WAV file for export as time-series data
  • Audio Input Adapters - (input) used to sample audio data from a microphone for export as time-series data

Products Summary Page      Product and Tools Index