REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
|
Loading...
Searching...
No Matches
mblock_mul.h
Go to the documentation of this file.
13 virtual bool write_calibration_input_offsets(uint8_t idx, uint16_t offset_x, uint16_t offset_y) = 0;
35 bool write_calibration_input_offsets(uint8_t idx, uint16_t offset_x, uint16_t offset_y) override;
50 map(value, MIN_OFFSET, MAX_OFFSET, functions::DAC60508::RAW_MAX, functions::DAC60508::RAW_ZERO)));
59 explicit MMulBlockHAL_FullAutoCalibration(bus::addr_t block_address) : MMulBlockHAL_V_1_0_X(block_address) {}
110 static MMulBlock *from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address);
119 static constexpr std::array<uint8_t, NUM_MULTIPLIERS> MULTIPLIERS_OUTPUT_RANGE() { return {0, 1, 2, 3}; };
142 [[nodiscard]] const std::array<MultiplierCalibration, NUM_MULTIPLIERS> &get_calibration() const;
Definition mblock.h:27
@ M_MUL4_BLOCK
MMulBlockHAL_FullAutoCalibration(bus::addr_t block_address)
Definition mblock_mul.h:59
virtual bool write_calibration_gain(uint8_t idx, uint8_t gain)=0
Definition mblock_mul.h:19
std::bitset< 8 > read_overload_flags() override
Definition mblock_mul.cpp:435
const functions::TriggerFunction f_overload_flags_reset
Definition mblock_mul.h:22
metadata::eui_t get_entity_eui() const override
Definition mblock_mul.h:30
bool write_calibration_output_offset(uint8_t idx, uint16_t offset_z) override
Definition mblock_mul.cpp:431
MMulBlockHAL_V_1_0_X(bus::addr_t block_address)
Definition mblock_mul.cpp:403
const functions::SR74HC16X f_overload_flags
Definition mblock_mul.h:23
const functions::DAC60508 f_calibration_dac_0
Definition mblock_mul.h:24
void reset_overload_flags() override
Definition mblock_mul.cpp:423
static float raw_to_float_calibration(uint16_t raw)
Takes in DAC raw value, returns voltage recieved by multiplier.
Definition mblock_mul.h:42
bool write_calibration_input_offsets(uint8_t idx, uint16_t offset_x, uint16_t offset_y) override
Definition mblock_mul.cpp:425
const functions::DAC60508 f_calibration_dac_1
Definition mblock_mul.h:25
static uint16_t float_to_raw_calibration(float value)
Takes in voltage recieved by multiplier, returns DAC raw value.
Definition mblock_mul.h:48
Definition mblock_mul.h:75
MMulBlockHAL_V_1_1_X(bus::addr_t block_address)
Definition mblock_mul.cpp:457
bool write_calibration_gain(uint8_t idx, uint8_t gain) override
Definition mblock_mul.cpp:460
Definition mblock_mul.h:64
bool write_calibration_gain(uint8_t idx, uint8_t gain) override
Definition mblock_mul.cpp:448
MMulBlockHAL_V_1_M1_X(bus::addr_t block_address)
Definition mblock_mul.cpp:443
Definition mblock_mul.h:11
virtual bool write_calibration_input_offsets(uint8_t idx, uint16_t offset_x, uint16_t offset_y)=0
virtual bool write_calibration_output_offset(uint8_t idx, uint16_t offset_z)=0
MMulBlock_FullAutoCalibration(SLOT slot, blocks::MMulBlockHAL_FullAutoCalibration *hardware)
Definition mblock_mul.cpp:439
bool calibrate(platform::Cluster *cluster, carrier::Carrier *carrier) override
Definition mblock_mul.cpp:331
utils::status write_calibration_to_hardware() override
Definition mblock_mul.cpp:318
MMulBlockHAL_FullAutoCalibration * hardware
Definition mblock_mul.h:161
Multplier Math Block (or: Math Multplier Block, hence MMulBlock).
Definition mblock_mul.h:105
MMulBlock(bus::addr_t block_address, MMulBlockHAL *hardware)
void config_self_to_json(JsonObject &cfg) override
Definition mblock_mul.cpp:82
static MMulBlock * from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address)
Definition mblock_mul.cpp:95
std::array< MultiplierCalibration, NUM_MULTIPLIERS > calibration
Definition mblock_mul.h:124
const std::array< MultiplierCalibration, NUM_MULTIPLIERS > & get_calibration() const
Definition mblock_mul.cpp:306
utils::status config_self_from_json(JsonObjectConst cfg) override
Definition mblock_mul.cpp:25
utils::status _config_elements_from_json(const JsonVariantConst &cfg)
Definition mblock_mul.cpp:41
static constexpr uint8_t NUM_MULTIPLIERS
Definition mblock_mul.h:113
static constexpr std::array< uint8_t, NUM_MULTIPLIERS > MULTIPLIERS_OUTPUT_RANGE()
Definition mblock_mul.h:119
MMulBlock(SLOT slot, MMulBlockHAL *hardware)
Definition mblock_mul.cpp:126
virtual utils::status write_calibration_to_hardware()
Definition mblock_mul.cpp:70
utils::status write_to_hardware() override
Definition mblock_mul.cpp:68
static constexpr std::array< uint8_t, NUM_MULTIPLIERS *2 > MULTIPLIERS_INPUT_RANGE()
Definition mblock_mul.h:115
metadata::eui_t get_entity_eui() const override
Definition mblock_mul.cpp:19
bool calibrate(platform::Cluster *cluster, carrier::Carrier *carrier) override
Definition mblock_mul.cpp:149
Definition AD840X.h:18
The DAC60508 is the 12-Bit 8-channel DAC, used in the MInt-Block for the initial conditions.
Definition DAC60508.h:17
Definition SR74HC16X.h:12
A trigger function exploits the fact that setting an address on the bus triggers an action (TODO: Is ...
Definition functions.h:33
Definition entity.h:32
A recoverable error, inspired from https://abseil.io/docs/cpp/guides/status and https://github....
Definition error.h:35
struct __attribute__((packed)) IntegratorCalibration
Calibration data for each integrator.
Definition mblock_int.h:14
Definition protocol.h:20
Definition base.h:101