SRS-control 0.1.4
 
Loading...
Searching...
No Matches
Fec.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "VmmDevice.hpp"
4#include <string>
5
6namespace srs
7{
9 {
10 std::vector<vmm::Device> vmms;
11 };
12
13 struct I2CDevice
14 {
15 uint8_t address{};
16 int sequence{};
17 int data{};
18 int reg{};
19 uint32_t result{};
20 };
21
22 struct UDPSocket
23 {
24 };
25
26 namespace fec
27 {
29 {
30 std::string ip_addr;
31 int port{};
32 int daq_port{};
33 };
34
35 enum class State
36 {
40 };
41
42 struct Config
43 {
44 uint8_t clock_source{};
46 uint32_t latency_reset{};
47 uint32_t latency_data_max{};
49 uint32_t tp_offset_first{};
50 uint32_t tp_offset{};
51 uint32_t tp_latency{};
52 uint32_t tp_number{};
53 uint32_t tp_skew{};
54 uint32_t tp_width{};
55 uint32_t tp_polarity{};
56 uint32_t ckbc_skew{};
57 uint32_t ckbc{};
58 uint32_t ckdt{};
59 int debug{};
62 };
63
64 class Devices
65 {
66 public:
67 Devices() = default;
68
69 private:
70 std::unique_ptr<UDPSocket> socket;
71 uint32_t packet_counter{};
72 uint8_t channel_map{};
73 // uint8_t n_hybrids{};
74 uint8_t hybrid_index{};
75 uint8_t vmm_index{};
76 uint8_t adc_channel{};
77 uint8_t id{}; /* made from lowest 8 bits of IP address */
78 std::vector<uint8_t> hybrid_index_map;
80 std::vector<HybridDevice> hybrid;
83 };
84 }; // namespace fec
85} // namespace srs
uint8_t channel_map
Definition Fec.hpp:72
uint8_t hybrid_index
Definition Fec.hpp:74
uint8_t adc_channel
Definition Fec.hpp:76
std::vector< HybridDevice > hybrid
Definition Fec.hpp:80
uint32_t packet_counter
Definition Fec.hpp:71
I2CDevice i2c
Definition Fec.hpp:82
std::vector< uint8_t > hybrid_index_map
Definition Fec.hpp:78
uint8_t vmm_index
Definition Fec.hpp:75
std::unique_ptr< UDPSocket > socket
Definition Fec.hpp:70
Config config
Definition Fec.hpp:81
std::vector< vmm::Device > vmms
Definition Fec.hpp:10
uint8_t address
Definition Fec.hpp:15
int sequence
Definition Fec.hpp:16
uint32_t result
Definition Fec.hpp:19
uint32_t tp_skew
Definition Fec.hpp:53
uint32_t ckbc_skew
Definition Fec.hpp:56
uint32_t debug_data_format
Definition Fec.hpp:45
uint8_t clock_source
Definition Fec.hpp:44
uint32_t ckdt
Definition Fec.hpp:58
uint32_t tp_number
Definition Fec.hpp:52
uint32_t latency_reset
Definition Fec.hpp:46
uint32_t tp_offset
Definition Fec.hpp:50
uint32_t tp_latency
Definition Fec.hpp:51
DeviceConnection connection
Definition Fec.hpp:61
uint32_t tp_width
Definition Fec.hpp:54
uint32_t latency_data_error
Definition Fec.hpp:48
uint32_t tp_polarity
Definition Fec.hpp:55
uint32_t latency_data_max
Definition Fec.hpp:47
uint32_t ckbc
Definition Fec.hpp:57
int break_on_pkt_cnt_mismatch
Definition Fec.hpp:60
uint32_t tp_offset_first
Definition Fec.hpp:49
std::string ip_addr
Definition Fec.hpp:30