REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
hardware.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 <entity/base.h>
9#include <entity/entity.h>
10#include <entity/meta.h>
11
12#include <chips/TMP127Q1.h>
13
14namespace entities {
15
16template <class Parent> class EntitySharedHardware : public Parent {
17protected:
20
21 EntitySharedHardware(bus::addr_t f_meta_addr, bus::addr_t temperature_sensor_addr, uint8_t alt_function_idx)
22 : f_meta(f_meta_addr, alt_function_idx), temperature_sensor(temperature_sensor_addr, alt_function_idx) {}
23
24 // Normally, we can deduce the temperature address at default position
25 explicit EntitySharedHardware(bus::addr_t block_address, uint8_t alt_function_idx)
26 : EntitySharedHardware(block_address, bus::replace_function_idx(block_address, 1), alt_function_idx) {}
27
28public:
29 metadata::eui_t get_entity_eui() const { return f_meta.read_eui(); }
30
31 float read_temperature() const { return temperature_sensor.read_temperature(); }
32};
33
34} // namespace entities
const metadata::MetadataEditor f_meta
Definition hardware.h:18
EntitySharedHardware(bus::addr_t f_meta_addr, bus::addr_t temperature_sensor_addr, uint8_t alt_function_idx)
Definition hardware.h:21
EntitySharedHardware(bus::addr_t block_address, uint8_t alt_function_idx)
Definition hardware.h:25
const functions::TMP127Q1 temperature_sensor
Definition hardware.h:19
metadata::eui_t get_entity_eui() const
Definition hardware.h:29
float read_temperature() const
Definition hardware.h:31
Definition bus.h:21