Abstract Signal Table Interface

This chapter documents the Abstract Signal Table Interface for which an implementation has to be provided, in order that the functions (see Overview of Functions) of the SignalTables package can be used.

A signal table is an ordered dictionary of signals with string keys. The first k entries represent the k independent signals. A signal is either a

  • Var dictionary that has a required :values key representing a signal array of any element type as function of the independent signal(s) (or is the k-th independent variable), or a
  • Par dictionary that has an optional :value key representing a constant of any type.

A signal array has indices [i1,i2,...,j1,j2,...] to hold variable elements [j1,j2,...] at the [i1,i2,...] independent signal(s). If an element of a signal array is not defined it has a value of missing. In both dictionaries, additional attributes can be stored, for example units, into texts, variability (continuous, clocked, ...), alias.

Functions that are marked as required, need to be defined for a new signal table type. Functions that are marked as optional have a default implementation.

Abstract functionsDescription
getIndependentSignalNamesReturns a string vector of the names of the independent signals (required).
getSignalNamesReturns a string vector of the signal names from a signal table (required).
getSignalReturns signal from a signal table as Var or as Par (required).
getSignalInfoReturns signal with :_typeof, :_size keys instead of :values/:value key (optional).
getIndependentSignalsSizeReturns the lengths of the independent signals as Dims. (optional).
getDefaultHeadingReturns the default heading for a plot. (optional).
hasSignalReturns true if signal name is present in signal table. (optional).