hist_interpolate_data

Cascade Historian: Version 4.1
Prev |  | Next

# `hist_interpolate_data`

`hist_interpolate_data` -- interpolates a history and returns data.

## Syntax

    hist_interpolate_data (hist_task, history, interpolator[, start[, duration[, args ...]]])

## Parameters

`hist_task`

  The task object corresponding to the Cascade Historian. See `locate_task` in the Gamma manual.

`history`

  The name of the history to use.

`interpolator`

  The name of the interpolator to use, as described below.

`start`

  The start of the time range of interest for query. If this value is `0` or is not supplied, it defaults to the time of the first data value available for the history.

`duration`

  The amount of time, in seconds, over which to perform the interpolation. If this value is `0` or is not supplied, it defaults to the length of time between that specified by `start` and the time of the last data value available for the history.

`args`

  Arguments to the specified interpolator, as required, passed as strings.

## Returns

A binary buffer containing the requested X-Y pairs as doubles.

## Description

This is a convenience function that combines `hist_interpolate`, `hist_buffer_id_read`, and `hist_buffer_id_destroy`. It causes the Cascade Historian to perform the requested interpolation on its history data, producing a temporary buffer which is read (copied to the user Gamma program) and subsequently destroyed.

The following choices are available for the `interpolator` argument:

| The `NoInterpolator` function is currently the only one that requires no additional parameters, making it possible to not supply `start` or `duration`. For the other interpolator functions, setting `start` or `duration` to `0` forces the default values.

- `NoInterpolator` simply returns all data that falls within the specified time range. No other processing is performed. When calling the `HI_Interpolate` function, this interpolator requires no extra arguments (`nxargs` = `0`, `xargs` = `NULL`).

- `PeriodicInterpolator` generates data as `Y` vs. time on an even time interval. The first extra argument is a double-precision float indicating the time interval in seconds. The second (optional) extra argument is a double-precision float indicating the maximum gap time: if provided and the time between two data samples exceeds this threshold, then data cannot be interpolated between the points. This suppresses generating interpolated data during 'gaps' in the data.

- `RelativeInterpolator` generates `Y` vs. `X` at all known values of `X`. The first extra argument is a string indicating the history name for `X`. The `history` argument provided to interpolate command (or the `histname` argument provided to `HI_Interpolate` function) is used as the `Y` history.

- `FixedRelativeInterpolator` generates `Y` vs. `X` on an even time interval. The first extra argument is a string indicating the history name for `X`. The second extra argument is a double specifying the time interval. The `history` argument provided to interpolate command (or the `histname` argument provided to `HI_Interpolate` function) is used as the `Y` history.

This function corresponds to the Cogent API function `HI_InterpolateData`.

## Example

        Gamma> length (a = hist_buffer2array (hist_interpolate_data(tsk, "p6", "PeriodicInterpolator", 0.0, 0.0, "0.1")));
        37
        Gamma> a[12];
        {HI_stVALUE (value . 103.018446) (xaxis . 1025721206.7)}

Prev | Home | Next
`hist_interpolate` | Up | `hist_latest`

Copyright 1995-2002 by Cogent Real-Time Systems, Inc.