Introduction
USB driver
MCA-2K Device
Overview
Module Constants
ARM Data structures
Version
Status
Controls
Calibration
Histogram
Two-channel Logger
Pulse capture
Lossless listmode
Perceptron-powered PSD
API
Overview
|
MCA-1K Data Structures
Summary
The file mca1k_data.py contains definitions for data classes. Each data class describes one set of control data or acquired data as shown in the table below. All classes have the same structure: They contain data and a set of standardized functions which the API level uses when executing commands. The data objects transient. They created, used and then discarded during the execution of a command. The data object functions mostly serve to translate between human-readable data in Si units and the bit-fields and register contents on board the MCA-1K.
Data structures
The mca1k_data.py module defines all data classes used for communication. The common structure of all data classes is explained in the table below.
MCA-1K Data Class Structure |
Attribute | Description |
registers | On board data are stored in registers as arrays of data. 'registers' is a copy of that array. |
fields | 'fields' is a dictionary where the various components of the registers and any bit fields are stored by name. |
user | 'user' is a dictionary where data are stored as physical quantities in SI units. Since this is not meaningful for all data, 'user' may only capture a subset of all data. On the other hand, when reading data, 'user' may present an enhanced set of data containing evaluated data; eg when reading count rates. |
wr_type | Identifies the device to write to; here always ARM. |
rd_type | Identifies the device to read from; here always ARM. |
cmd_addr | An ID that tells the MCA-1K device which data section is being addressed; cf the Data Classes tables below. |
data_type | Tells the device driver what kind of data are being transmitted; they can be 'H', 'I' and 'f' for unsigned int16, unsigned int32 and float32 data. |
num_items | Number of data items to transmit between host and MCA-1K. |
num_bytes | Number of bytes to transmit between host and MCA-1K. |
MCA-1K data class attributes.
MCA-1K Data Class Functions |
Function | Description |
registers_2_fields | Convert FPGA control register values into a control register dictionary which has names for the bit fields. |
fields_2_registess | Compute the values of the control registers from the fields dictionary. |
fields_2_user | Convert a few field values into physical quantities in SI units. |
user_2_fields | Convert user values from physical quantities in SI units into numerical fields |
add_to_cmd_out_list(mca) | If a command requires auxiliary data to be sent with it (up to 14 unsigned int16) those could be copied from a designated member of an mca object. The standard MCA-1K software does not use this feature. |
MCA-1K data class functions.
MCA-1K Data Classes |
Name | Description |
arm_version | Version and serial number information for FPGA and ARM firmware and software. |
arm_status | Status information (unsigned int32) from the slow-control system, including temperatures, operating voltage, etc. |
arm_ctrl | Parameters (float32) to set the SiPM operating voltage, apply gain stabilization and more. |
arm_cal | Calibration data (float32) used by the gain stabilization; eg a voltage vs temperature lookup table. |
arm_histo | Raw statistics and histogram data in two banks: One for sample data and for a background spectrum that can be subtracted from the sample data. From the raw statistics we determine, elapsed run time, count rates and the like. |
Table of MCA-1K data structures.
|