REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
tblock.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
6#pragma once
7
8#include <chips/SR74HCT595.h>
9#include <entity/hardware.h>
10#include <redac/tblock.h>
11
12namespace blocks {
13
15
20protected:
26
27 static const SPISettings F_CONNECTION_SPI_SETTINGS;
28
29public:
30 explicit TBlockHAL_V_1_0_X(bus::addr_t block_address);
31
32 std::array<uint8_t, 8> get_entity_eui() const override { return f_meta.read_eui(); }
33
34 bool write_muxes(std::array<uint8_t, NUM_SWITCHES> muxes) override;
35 bool reset_muxes() override;
36 void set_mux_disable() override;
37 void reset_mux_disable() override;
38};
39
41
46protected:
49
53
54 static const SPISettings F_CONNECTION_SPI_SETTINGS;
55
56public:
57 explicit TBlockBackplaneHAL_V_1_0_X(bus::addr_t block_address);
58
59 std::array<uint8_t, 8> get_entity_eui() const override { return f_meta.read_eui(); }
60
61 bool write_muxes(std::array<uint8_t, NUM_SWITCHES> muxes) override;
62 bool reset_muxes() override;
63 void set_mux_disable() override;
64 void reset_mux_disable() override;
65};
66
67
68} // namespace blocks
const functions::TriggerFunction f_reset_connections
Definition tblock.h:51
const functions::TriggerFunction f_connections_sync
Definition tblock.h:52
std::array< uint8_t, 8 > get_entity_eui() const override
Definition tblock.h:59
const functions::SR74HCT595 f_connections
Definition tblock.h:50
const functions::TriggerFunction f_reset_mux_disable
Definition tblock.h:48
static const SPISettings F_CONNECTION_SPI_SETTINGS
Definition tblock.h:54
const functions::TriggerFunction f_set_mux_disable
Definition tblock.h:47
bool write_muxes(std::array< uint8_t, NUM_SWITCHES > muxes) override
Definition tblock.cpp:101
TBlockBackplaneHAL_V_1_0_X(bus::addr_t block_address)
Definition tblock.cpp:79
const functions::TriggerFunction f_reset_mux_disable
Definition tblock.h:22
void reset_mux_disable() override
Definition tblock.cpp:18
bool write_muxes(std::array< uint8_t, NUM_SWITCHES > muxes) override
Definition tblock.cpp:20
static const SPISettings F_CONNECTION_SPI_SETTINGS
Definition tblock.h:27
TBlockHAL_V_1_0_X(bus::addr_t block_address)
Definition tblock.cpp:10
const functions::TriggerFunction f_set_mux_disable
Definition tblock.h:21
void set_mux_disable() override
Definition tblock.cpp:16
const functions::TriggerFunction f_connections_sync
Definition tblock.h:25
const functions::TriggerFunction f_reset_connections
Definition tblock.h:23
bool reset_muxes() override
Definition tblock.cpp:35
std::array< uint8_t, 8 > get_entity_eui() const override
Definition tblock.h:32
const functions::SR74HCT595 f_connections
Definition tblock.h:24
const metadata::MetadataEditor f_meta
Definition hardware.h:18
The SR74HCT595 is an 8-Bit Shift Register with 3-State Output Registers.
Definition SR74HCT595.h:15
A trigger function exploits the fact that setting an address on the bus triggers an action.
Definition functions.h:33
entities::EntitySharedHardware< TBlockHAL > TBlockHAL_Parent
Definition tblock.h:14
entities::EntitySharedHardware< TBlockBackplaneHAL > TBlockBackplaneHAL_Parent
Definition tblock.h:40