16K Data Manager

Coordinates the processing of 12 asynchronous input receptor data streams between two 16K Imaging Channelizers. Loads gain tables from configured memory locations, on a per-stream basis, and pushes them into the channelizers’ buffers as required.

Note: This low-level interface is a work in progress and is subject to change as the driver design is fleshed out.

Low-Level Device Interface

Commands

Command

Input Type

Input Description

Output Type

Output Description

Command Description

Configure()

DevString

JSON configuration; see below.

n/a

Configures parameters for the 16K Data Manager IP blocks for a single subarray, including which stream(s) to configure for and their respective gain table indices.

Deconfigure()

DevString

JSON configuration; see below.

n/a

[TODO: TBD if block can be deconfigured or recovered.]

Reset()

n/a

n/a

[TODO: TBD if block can be deconfigured or recovered.]

GetStatus()

DevBoolean

Whether to clear counters in firmware [TODO/TBD: any counters?].

DevString

Status JSON; see below.

Gets the status of the 16K Data Manager, including the state of each stream, the currently in-use gain table, and the most recent read timestamp.

JSON Field Definitions

Configure() Input JSON Parameters

Parameter

Type

Items

Allowed Range

Description

stream_configs

array

StreamConfig

An array of configurations for individual receptor streams; see below.

gain_table_timestamp

integer

0 to 264-1

The timestamp at which the specified gain values for any stream should start to be applied. Will be rounded down to the nearest multiple of 16384 to ensure alignment with the boundary of a data frame.

StreamConfig JSON Parameters

Parameter

Type

Allowed Range

Description

stream_idx

integer

0 to 23

The index of the stream to update configuration for.

gain_table_idx_pol_x

integer

0 to 256-1

The index of the gain table in memory to apply to the specified receptor stream for polarization X.

gain_table_idx_pol_y

integer

0 to 256-1

The index of the gain table in memory to apply to the specified receptor stream for polarization Y.

GetStatus() Output JSON Fields

Field

Type

Items

Possible Range

Description

receptor_online

array

boolean

The state of each receptor. A value of true at index N means that receptor N is online, and false means it is offline.