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();
20UnitResult 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();
26UnitResult blocks::CTRLBlock::init() {
29 TRY(FunctionBlock::init());
30 return write_to_hardware();
33blocks::CTRLBlock::ADCBus blocks::CTRLBlock::get_adc_bus()
const {
return adc_bus; }
35void blocks::CTRLBlock::set_adc_bus(blocks::CTRLBlock::ADCBus adc_bus_) { adc_bus = adc_bus_; }
37void blocks::CTRLBlock::reset_adc_bus() { adc_bus = ADCBus::ADC; }
39bool blocks::CTRLBlock::set_adc_bus_to_cluster_gain(uint8_t cluster_idx) {
42 set_adc_bus(
static_cast<ADCBus
>(cluster_idx));
46void blocks::CTRLBlock::reset(entities::ResetAction action) {
47 FunctionBlock::reset(action);
49 if (action.has(entities::ResetAction::CIRCUIT_RESET))
53UnitResult blocks::CTRLBlock::send_sync(uint8_t
id) {
54 if (!hardware->write_sync_id(
id))
55 return UnitResult::err(
"Error while sending SYNC.");
56 return UnitResult::ok();