REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
shblock.h
Go to the documentation of this file.
1// Copyright (c) 2024 anabrid GmbH
2// Contact: https://www.anabrid.com/licensing/
3//
4// SPDX-License-Identifier: MIT OR GPL-2.0-or-later
5#pragma once
6
7#include <block/shblock.h>
8#include <entity/meta.h>
9
10namespace blocks {
11class SHBlockHAL_V_1_0_X : public SHBlockHAL {
12public:
13 explicit SHBlockHAL_V_1_0_X(bus::addr_t block_address);
14
15 metadata::eui_t get_entity_eui() const override { return f_meta.read_eui(); }
16
17 void compensate_hardware_offsets(uint32_t track_time, uint32_t inject_time);
18 void set_state(SHState state) const;
19
20private:
21 // Default state after reset is inject with a potentially random inject current
22 const metadata::MetadataEditor f_meta;
23 const functions::TriggerFunction set_track;
24 const functions::TriggerFunction set_track_at_ic;
25 const functions::TriggerFunction set_gain;
26 const functions::TriggerFunction set_gain_channels_zero_to_seven;
27 const functions::TriggerFunction set_gain_channels_eight_to_fifteen;
28 const functions::TriggerFunction set_inject;
29};
30
31} // namespace blocks
SHBlockHAL_V_1_0_X(bus::addr_t block_address)
Definition shblock.cpp:11
void compensate_hardware_offsets(uint32_t track_time, uint32_t inject_time)
Definition shblock.cpp:19
metadata::eui_t get_entity_eui() const override
Definition shblock.h:15
void set_state(SHState state) const
Definition shblock.cpp:27
A trigger function exploits the fact that setting an address on the bus triggers an action (TODO: Is ...
Definition functions.h:33
eui_t read_eui() const
Definition meta.h:26
uint32_t
Definition flasher.cpp:195