REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
back_panel.cpp
Go to the documentation of this file.
1#include <redac/back_panel.h>
2
3#include "teensy/back_panel.h"
4
5platform::REDACBackPanel *platform::REDACBackPanel::from_entity_classifier(entities::EntityClassifier classifier, bus::addr_t block_address) {
6 if (!classifier or classifier.class_enum != CLASS_)
7 return nullptr;
8
9 if (classifier.version < entities::Version(1, 0, 0))
10 return nullptr;
11 if (classifier.version < entities::Version(1, 1, 0)) {
12 auto *new_block = new REDACBackPanel(new BackPanelHAL_V_1_0_X(block_address));
13 new_block->classifier = classifier;
14 return new_block;
15 }
16 if (classifier.version < entities::Version(2, 0, 0))
17 return nullptr;
18 if (classifier.version < entities::Version(2, 1, 0)) {
19 auto *new_block = new REDACBackPanel(new BackPanelHAL_V_2_0_X(block_address));
20 new_block->classifier = classifier;
21 return new_block;
22 }
23 return nullptr;
24}
25
26platform::BackPanelHAL_V_1_0_X::BackPanelHAL_V_1_0_X(bus::addr_t block_address) : BackPanelHAL_Parent(block_address, 3) {}
27
28platform::BackPanelHAL_V_2_0_X::BackPanelHAL_V_2_0_X(bus::addr_t block_address) : BackPanelHAL_Parent(block_address, 0xff) {}
BackPanelHAL_V_1_0_X(bus::addr_t block_address)
BackPanelHAL_V_2_0_X(bus::addr_t block_address)
entities::EntitySharedHardware< BackPanelHAL > BackPanelHAL_Parent
Definition back_panel.h:13