|
REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
|
Loading...
Searching...
No Matches
iblock.h
Go to the documentation of this file.
37 static uint8_t chip_cmd_word(uint8_t chip_input_idx, uint8_t chip_output_idx, bool connect = true);
49 static constexpr uint32_t INPUT_BITMASK(uint8_t input_idx) { return static_cast<uint32_t>(1) << input_idx; }
104 static IBlock *from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address);
109 static constexpr uint32_t INPUT_BITMASK(uint8_t input_idx) { return IBlockHAL::INPUT_BITMASK(input_idx); }
173 bool connect(uint8_t input, uint8_t output, bool exclusive = false, bool allow_input_splitting = false);
Definition base.h:12
A function block represents one module in a cluster, such as an M-Block, C-Block, I-Block or U-Block.
Definition base.h:29
Definition iblock.h:55
std::array< uint8_t, 8 > get_entity_eui() const override
Definition iblock.h:63
bool write_outputs(const std::array< uint32_t, 16 > &outputs) override
Definition iblock.h:57
bool write_upscaling(std::bitset< 32 > upscaling) override
Definition iblock.h:59
Definition iblock.h:66
const functions::TriggerFunction f_imatrix_reset
Definition iblock.h:70
bool write_upscaling(std::bitset< 32 > upscaling) override
Definition iblock.cpp:376
IBlockHAL_V_1_2_X(bus::addr_t block_address)
Definition iblock.cpp:299
const functions::TriggerFunction scaling_register_sync
Definition iblock.h:74
const functions::SR74HCT595 scaling_register
Definition iblock.h:73
metadata::eui_t get_entity_eui() const override
Definition iblock.h:83
const functions::TriggerFunction f_imatrix_sync
Definition iblock.h:71
const functions::ICommandRegisterFunction f_cmd
Definition iblock.h:69
bool write_outputs(const std::array< uint32_t, 16 > &outputs) override
Definition iblock.cpp:306
Definition iblock.h:44
virtual bool write_upscaling(std::bitset< 32 > upscaling)=0
virtual bool write_outputs(const std::array< uint32_t, 16 > &outputs)=0
static constexpr uint32_t INPUT_BITMASK(uint8_t input_idx)
Definition iblock.h:49
The Lucidac I-Block (I for Current; the Implicit Summing Block) is represented by this class.
Definition iblock.h:99
void config_self_to_json(JsonObject &cfg) override
Serialize the configuration of this entity to a JsonObject.
Definition iblock.cpp:248
static constexpr std::array< uint8_t, NUM_INPUTS > INPUT_IDX_RANGE()
Definition iblock.h:114
static constexpr uint32_t INPUT_BITMASK(uint8_t input_idx)
Definition iblock.h:109
static constexpr std::array< uint8_t, NUM_OUTPUTS > OUTPUT_IDX_RANGE()
Definition iblock.h:119
const std::bitset< NUM_INPUTS > & get_upscales() const
Returns all input scales. A low bit indicates a factor of 1.0, a high bit indicates a factor of 10....
Definition iblock.h:201
utils::status config_self_from_json(JsonObjectConst cfg) override
Deserialize a new configuration for this entity from a JsonObject.
Definition iblock.cpp:105
static IBlock * from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address)
Definition iblock.cpp:272
bool _is_connected(uint8_t input, uint8_t output) const
Definition iblock.cpp:48
void set_outputs(const std::array< uint32_t, NUM_OUTPUTS > &outputs_)
Definition iblock.cpp:295
bool _is_output_connected(uint8_t output) const
Definition iblock.cpp:52
metadata::eui_t get_entity_eui() const override
Definition iblock.cpp:27
const std::array< uint32_t, NUM_OUTPUTS > & get_outputs() const
Definition iblock.cpp:291
utils::status _connect_from_json(const JsonVariantConst &input_spec, uint8_t output)
Definition iblock.cpp:196
bool is_connected(uint8_t input, uint8_t output) const
Whether an input is connected to an output.
Definition iblock.cpp:54
bool connect(uint8_t input, uint8_t output, bool exclusive=false, bool allow_input_splitting=false)
Connects an input line [0..31] to an output line [0..15] by setting an appropriate bit/switch in the ...
Definition iblock.cpp:67
utils::status _config_upscaling_from_json(const JsonVariantConst &cfg)
Definition iblock.cpp:168
bool disconnect(uint8_t input, uint8_t output)
Disconnect one input from an output. Fails for invalid arguments or if no input is connected.
Definition iblock.cpp:215
bool set_upscaling(uint8_t input, bool upscale)
Sets the input scale of the corresponding output.
Definition iblock.cpp:230
utils::status _config_outputs_from_json(const JsonVariantConst &cfg)
Definition iblock.cpp:125
bool get_upscaling(uint8_t output) const
Returns the input scale of the corresponding output.
Definition iblock.cpp:241
DataFunction to transfer 32bit of data to the I-Block matrix command registry.
Definition iblock.h:30
ICommandRegisterFunction(bus::addr_t address)
Definition iblock.cpp:13
static uint8_t chip_cmd_word(uint8_t chip_input_idx, uint8_t chip_output_idx, bool connect=true)
Definition iblock.cpp:16
static const SPISettings DEFAULT_SPI_SETTINGS
Definition iblock.h:10
The SR74HCT595 is an 8-Bit Shift Register with 3-State Output Registers.
Definition SR74HCT595.h:16
SR74HCT595(bus::addr_t address, bool shift_clock=false)
Definition SR74HCT595.cpp:15
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
@ I_BLOCK
Definition base.h:101