6#include <proto/main.pb.h>
7#include <block/ctrlblock.h>
10blocks::CTRLBlock::CTRLBlock(CTRLBlockHALBase *hardware) : FunctionBlock(
"CTRL", hardware), hardware(hardware) {
11 classifier.class_enum = CLASS_;
14metadata::eui_t blocks::CTRLBlock::get_entity_eui()
const {
16 return hardware->get_entity_eui();
20bool blocks::CTRLBlock::write_to_hardware() {
21 if (!hardware->write_adc_bus_muxers(adc_bus))
22 return UnitResult::err(
"Writing ctrl-block adc bus muxes failed");
23 return UnitResult::ok();
26bool blocks::CTRLBlock::init() {
29 return FunctionBlock::init() && write_to_hardware();
32blocks::CTRLBlock::ADCBus blocks::CTRLBlock::get_adc_bus()
const {
return adc_bus; }
34void blocks::CTRLBlock::set_adc_bus(blocks::CTRLBlock::ADCBus adc_bus_) { adc_bus = adc_bus_; }
36void blocks::CTRLBlock::reset_adc_bus() { adc_bus = ADCBus::ADC; }
38bool blocks::CTRLBlock::set_adc_bus_to_cluster_gain(uint8_t cluster_idx) {
41 set_adc_bus(
static_cast<ADCBus
>(cluster_idx));
45void blocks::CTRLBlock::reset(entities::ResetAction action) {
46 FunctionBlock::reset(action);
48 if (action.has(entities::ResetAction::CIRCUIT_RESET))
52UnitResult blocks::CTRLBlock::send_sync(uint8_t
id) {
53 if (!hardware->write_sync_id(
id))
54 return UnitResult::err(
"Error while sending SYNC.");
55 return UnitResult::ok();