Analog Class

class AnalogClass : public Acroname::BrainStem::EntityClass

The AnalogClass is the interface to analog entities on BrainStem modules. Analog entities may be configured as a input or output depending on hardware capabilities. Some modules are capable of providing actual voltage readings, while other simply return the raw analog-to-digital converter (ADC) output value. The resolution of the voltage or number of useful bits is also hardware dependent.

Public Functions

AnalogClass(void)

Constructor.

~AnalogClass(void)

Destructor.

void init(Module *pModule, const uint8_t index)

Initialize the class.

Parameters
  • pModule: The module to which this entity belongs.
  • index: The index of the analog entity being initialized.

aErr getValue(uint16_t *value)

Get the raw ADC output value in bits.

Note
Not all modules are provide 16 useful bits; this value’s least significant bits are zero-padded to 16 bits. Refer to the module’s datasheet to determine analog bit depth and reference voltage.
Return
Returns common entity return values
Parameters
  • value: 16 bit analog reading with 0 corresponding to the negative analog voltage reference and 0xFFFF corresponding to the positive analog voltage reference.

aErr getVoltage(int32_t *microVolts)

Get the scaled micro volt value with refrence to ground.

Note
Not all modules provide 32 bits of accuracy; Refer to the module’s datasheet to determine the analog bit depth and reference voltage.
Return
Returns common entity return values
Parameters
  • microVolts: 32 bit signed integer (in microVolts) based on the board’s ground and reference voltages.

aErr getRange(uint8_t *range)

Get the analog input range.

Return
Returns common entity return values
Parameters
  • range: 8 bit value corresponding to a discrete range option

aErr getEnable(uint8_t *enable)

Get the analog output enable status.

Return
Returns common entity return values
Parameters
  • enable: 0 if disabled 1 if enabled.

aErr setValue(const uint16_t value)

Set the value of an analog output (DAC) in bits.

Note
Not all modules are provide 16 useful bits; the least significant bits are discarded. E.g. for a 10 bit DAC, 0xFFC0 to 0x0040 is the useful range. Refer to the module’s datasheet to determine analog bit depth and reference voltage.
Return
Returns common entity return values
Parameters
  • value: 16 bit analog set point with 0 corresponding to the negative analog voltage reference and 0xFFFF corresponding to the positive analog voltage reference.

aErr setVoltage(const int32_t microVolts)

Set the voltage level of an analog output (DAC) in microVolts.

Note
Voltage range is dependent on the specific DAC channel range.
Return
Returns common entity return values
Parameters
  • microVolts: 32 bit signed integer (in microVolts) based on the board’s ground and reference voltages.

aErr setRange(const uint8_t range)

Set the analog input range.

Return
Returns common entity return values
Parameters
  • range: 8 bit value corresponding to a discrete range option

aErr setEnable(const uint8_t enable)

Set the analog output enable state.

Return
Returns common entity return values
Parameters
  • enable: set 1 to enable or 0 to disable.

aErr setConfiguration(const uint8_t configuration)

Set the analog configuration.

Return
EntityReturnValues “common entity” return values
Parameters
  • configuration: - bitAnalogConfigurationOutput configures the analog entity as an output.
Return Value
  • aErrConfiguration: - Entity does not support this configuration.

aErr getConfiguration(uint8_t *configuration)

Get the analog configuration.

Return
Returns common entity return values
Parameters
  • configuration: - Current configuration of the analog entity.

aErr setBulkCaptureSampleRate(const uint32_t value)

Set the sample rate for this analog when bulk capturing.

Return
Returns common entity return values
Parameters
  • value: sample rate in samples per second (Hertz). Minimum rate: 7,000 Hz Maximum rate: 200,000 Hz

aErr getBulkCaptureSampleRate(uint32_t *value)

Get the current sample rate setting for this analog when bulk capturing.

Return
Returns common entity return values
Parameters
  • value: upon success filled with current sample rate in samples per second (Hertz).

aErr setBulkCaptureNumberOfSamples(const uint32_t value)

Set the number of samples to capture for this analog when bulk capturing.

Return
Returns common entity return values
Parameters
  • value: number of samples. Minimum # of Samples: 0 Maximum # of Samples: (BRAINSTEM_RAM_SLOT_SIZE / 2) = (3FFF / 2) = 1FFF = 8191

aErr getBulkCaptureNumberOfSamples(uint32_t *value)

get the current number of samples setting for this analog when bulk capturing.

Return
Returns common entity return values
Parameters
  • value: number of samples.

aErr initiateBulkCapture(void)

Initiate a BulkCapture on this analog. Captured measurements are stored in the module’s RAM store (RAM_STORE) slot 0. Data is stored in a contiguous byte array with each sample stored in two consecutive bytes, LSB first.

Return
Returns common entity return values. When the bulk capture is complete getBulkCaptureState() will return either bulkCaptureFinished or bulkCaptureError.

aErr getBulkCaptureState(uint8_t *state)

get the current bulk capture state for this analog.

Return
Returns common entity return values
Parameters
  • state: the state of bulk capture.
    • Idle: bulkCaptureIdle = 0
    • Pending: bulkCapturePending = 1
    • Finished: bulkCaptureFinished = 2
    • Error: bulkCaptureError = 3