REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
|
Loading...
Searching...
No Matches
ublock.cpp
Go to the documentation of this file.
21const SPISettings functions::UMatrixFunction::DEFAULT_SPI_SETTINGS{4'000'000, MSBFIRST, SPI_MODE2};
38FLASHMEM bool blocks::UBlock::_i_sanity_check(const uint8_t input) { return input < NUM_OF_INPUTS; }
40FLASHMEM bool blocks::UBlock::_o_sanity_check(const uint8_t output) { return output < NUM_OF_OUTPUTS; }
80FLASHMEM bool blocks::UBlock::connect_alternative(Transmission_Mode signal_mode, const uint8_t output,
138FLASHMEM void blocks::UBlock::_disconnect(const uint8_t output) { output_input_map[output] = -1; }
215blocks::UBlock::change_all_transmission_modes(const std::pair<Transmission_Mode, Transmission_Mode> modes) {
229FLASHMEM void blocks::UBlock::change_reference_magnitude(blocks::UBlock::Reference_Magnitude ref) {
307 return utils::status("UBlock: Given input is not a number '%s'", keyval.value().as<const char *>());
407FLASHMEM void blocks::UBlock::reset_reference_magnitude() { ref_magnitude = Reference_Magnitude::ONE; }
409FLASHMEM bool blocks::UBlockHAL_Dummy::write_outputs(std::array<int8_t, 32> outputs) { return true; }
412 std::pair<Transmission_Mode, Transmission_Mode> modes, blocks::UBlockHAL::Reference_Magnitude ref) {
418FLASHMEM blocks::UBlockHAL_Common::UBlockHAL_Common(bus::addr_t block_address, const uint8_t f_umatrix_cs,
425 f_transmission_mode_register(bus::replace_function_idx(block_address, f_transmission_mode_register_cs),
427 f_transmission_mode_sync(bus::replace_function_idx(block_address, f_transmission_mode_sync_cs)),
428 f_transmission_mode_reset(bus::replace_function_idx(block_address, f_transmission_mode_reset_cs)) {}
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
bool write_outputs(std::array< int8_t, 32 > outputs) override
Definition ublock.cpp:430
void reset_transmission_modes_and_ref() override
Definition ublock.cpp:454
bool write_transmission_modes_and_ref(std::pair< Transmission_Mode, Transmission_Mode > modes, Reference_Magnitude ref) override
Definition ublock.cpp:437
UBlockHAL_Common(bus::addr_t block_address, uint8_t f_umatrix_cs, uint8_t f_umatrix_sync_cs, uint8_t f_transmission_mode_register_cs, uint8_t f_transmission_mode_sync_cs, uint8_t f_transmission_mode_reset_cs)
Definition ublock.cpp:418
void reset_transmission_modes_and_ref() override
Definition ublock.cpp:416
bool write_transmission_modes_and_ref(std::pair< Transmission_Mode, Transmission_Mode > modes, Reference_Magnitude ref) override
Definition ublock.cpp:411
bool write_outputs(std::array< int8_t, 32 > outputs) override
Definition ublock.cpp:409
Definition ublock.h:104
Definition ublock.h:49
The Lucidac U-Block (U for Voltage) is represented by this class.
Definition ublock.h:123
bool connect(const uint8_t input, const uint8_t output, const bool force=false)
Connects a block input to a block output.
Definition ublock.cpp:50
metadata::eui_t get_entity_eui() const override
Definition ublock.cpp:32
bool disconnect(const uint8_t input, const uint8_t output)
Disconnect an input from an output, if they are connected. Both input and output are zero-based indiz...
Definition ublock.cpp:140
bool is_connected(const uint8_t input, const uint8_t output) const
Check whether an chip input is connected to an chip / block output.
Definition ublock.cpp:163
utils::status config_self_from_json(JsonObjectConst cfg) override
Deserialize a new configuration for this entity from a JsonObject.
Definition ublock.cpp:257
utils::status _config_outputs_from_json(const JsonVariantConst &cfg)
Definition ublock.cpp:278
bool _is_connected(const uint8_t input, const uint8_t output) const
Check whether an input is connected to an output, without sanity checks.
Definition ublock.cpp:159
static bool _i_sanity_check(const uint8_t input)
Definition ublock.cpp:38
void _connect(const uint8_t input, const uint8_t output)
Connects output with given input, without sanity checks or disconnection prevention.
Definition ublock.cpp:46
void change_b_side_transmission_mode(const Transmission_Mode mode)
Changes the transmission mode of the alternative ublock switches.
Definition ublock.cpp:205
static UBlock * from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address)
Definition ublock.cpp:392
void change_a_side_transmission_mode(const Transmission_Mode mode)
Changes the transmission mode of the regular ublock switches.
Definition ublock.cpp:201
bool is_input_connected(const uint8_t input) const
Check whether an chip input is connected to any output.
Definition ublock.cpp:188
bool is_output_connected(const uint8_t output) const
Check whether an chip / block output is connected to any chip input.
Definition ublock.cpp:174
void config_self_to_json(JsonObject &cfg) override
Serialize the configuration of this entity to a JsonObject.
Definition ublock.cpp:354
static bool _o_sanity_check(const uint8_t output)
Definition ublock.cpp:40
void change_all_transmission_modes(const Transmission_Mode mode)
Changes the transmission mode for all ublock switches.
Definition ublock.cpp:209
Reference_Magnitude get_reference_magnitude()
Definition ublock.cpp:225
static bool _io_sanity_check(const uint8_t input, const uint8_t output)
Definition ublock.cpp:42
bool _is_input_connected(const uint8_t input) const
Definition ublock.cpp:181
void change_reference_magnitude(Reference_Magnitude ref)
Definition ublock.cpp:229
bool connect_alternative(Transmission_Mode signal_type, const uint8_t output, const bool force=false, bool use_a_side=false)
Connects an alternative input / non block input specified by signal_mode from the a- or b-side to a b...
Definition ublock.cpp:80
std::pair< Transmission_Mode, Transmission_Mode > get_all_transmission_modes() const
Definition ublock.cpp:221
utils::status _config_constants_from_json(const JsonVariantConst &cfg)
Definition ublock.cpp:328
void _disconnect(const uint8_t output)
Disconnects output, without sanity checks.
Definition ublock.cpp:138
bool _is_output_connected(const uint8_t output) const
Check whether an output is connected to any input, without sanity checks.
Definition ublock.cpp:170
A DataFunction class wraps SPI communication over the digital bus.
Definition functions.h:47
UMatrixFunction(bus::addr_t address)
Definition ublock.cpp:23
static const SPISettings DEFAULT_SPI_SETTINGS
Definition ublock.h:21
A recoverable error, inspired from https://abseil.io/docs/cpp/guides/status and https://github....
Definition error.h:35
Definition counters.h:13
Definition base.h:101