REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
|
Loading...
Searching...
No Matches
ublock.h
Go to the documentation of this file.
60 virtual bool write_transmission_modes_and_ref(std::pair<Transmission_Mode, Transmission_Mode> modes,
92 explicit UBlockHAL_Common(bus::addr_t block_address, uint8_t f_umatrix_cs, uint8_t f_umatrix_sync_cs,
129 static UBlock *from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address);
169 void change_all_transmission_modes(const std::pair<Transmission_Mode, Transmission_Mode> modes);
215 bool connect_alternative(Transmission_Mode signal_type, const uint8_t output, const bool force = 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 ublock.h:75
bool write_outputs(std::array< int8_t, 32 > outputs) override
Definition ublock.cpp:430
const functions::SR74HCT595 f_transmission_mode_register
Definition ublock.h:87
const functions::TriggerFunction f_transmission_mode_sync
Definition ublock.h:88
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
metadata::eui_t get_entity_eui() const override
Definition ublock.h:101
const functions::TriggerFunction f_umatrix_sync
Definition ublock.h:79
const functions::TriggerFunction f_transmission_mode_reset
Definition ublock.h:89
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
Definition ublock.h:65
void reset_transmission_modes_and_ref() override
Definition ublock.cpp:416
metadata::eui_t get_entity_eui() const override
Definition ublock.h:72
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
UBlockHAL_V_1_2_X(const bus::addr_t block_address)
Definition ublock.h:106
Definition ublock.h:49
virtual bool write_transmission_modes_and_ref(std::pair< Transmission_Mode, Transmission_Mode > modes, Reference_Magnitude ref)=0
@ ANALOG_INPUT
virtual bool write_outputs(std::array< int8_t, 32 > outputs)=0
virtual void reset_transmission_modes_and_ref()=0
The Lucidac U-Block (U for Voltage) is represented by this class.
Definition ublock.h:123
UBlockHAL::Transmission_Mode Transmission_Mode
Definition ublock.h:146
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 constexpr std::array< uint8_t, NUM_OF_INPUTS > INPUT_IDX_RANGE()
Definition ublock.h:137
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
static constexpr std::array< uint8_t, NUM_OF_OUTPUTS > OUTPUT_IDX_RANGE()
Definition ublock.h:141
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
std::array< int8_t, NUM_OF_OUTPUTS > output_input_map
Definition ublock.h:152
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
DataFunction(bus::addr_t address, const SPISettings &spiSettings)
Definition functions.cpp:16
The SR74HCT595 is an 8-Bit Shift Register with 3-State Output Registers.
Definition SR74HCT595.h:16
A trigger function exploits the fact that setting an address on the bus triggers an action (TODO: Is ...
Definition functions.h:33
Definition ublock.h:27
bool transfer(const std::array< int8_t, num_of_outputs > &outputs) const
Convert an output array to data packets and transfer to chip.
Definition ublock.tpl.h:15
UMatrixFunction(bus::addr_t address)
Definition ublock.cpp:23
static const SPISettings DEFAULT_SPI_SETTINGS
Definition ublock.h:21
Definition entity.h:32
A recoverable error, inspired from https://abseil.io/docs/cpp/guides/status and https://github....
Definition error.h:35
@ U_BLOCK
Definition counters.h:13
This concept of Backpanel / Backplane refers to the address decoder and periphery reachable by every ...
Definition cblock.h:15
Definition handler.h:10
Definition base.h:101