DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
wibmod
src
wibmod
WIB1
BNL_UDP.hh
Go to the documentation of this file.
1
#ifndef __BNL_UDP_HH__
2
#define __BNL_UDP_HH__
3
4
#include <string>
5
#include <vector>
6
7
#include <stdint.h>
8
#include <sys/socket.h>
9
#include <netinet/ip.h>
10
11
12
#define WIB_RESPONSE_PACKET_BUFFER_SIZE 4048
13
14
class
BNL_UDP
{
15
public
:
16
BNL_UDP
():
readSocketFD
(-1),
writeSocketFD
(-1),
buffer_size
(0),
buffer
(NULL),
total_retry_count
(0) {
Clear
();};
17
~BNL_UDP
();
18
19
void
Setup
(std::string
const
& address, uint16_t port_offset = 0);
20
bool
Ready
(){
return
connected
;};
21
22
void
SetWriteAck
(
bool
val){
writeAck
=val;};
23
bool
GetWriteAck
(){
return
writeAck
;};
24
25
uint32_t
ReadWithRetry
(uint16_t address,uint8_t retry_count=10);
26
uint32_t
Read
(uint16_t address);
27
void
WriteWithRetry
(uint16_t address, uint32_t value, uint8_t retry_count=10);
28
void
Write
(uint16_t address,uint32_t value);
29
void
Write
(uint16_t address,std::vector<uint32_t>
const
& values);
30
void
Write
(uint16_t address,uint32_t
const
* values,
size_t
word_count);
31
32
std::string
GetAddress
(){
return
remoteAddress
;};
33
34
uint64_t
GetRetryCount
(){
return
total_retry_count
;};
35
36
private
:
37
// Prevent copying of BNL_UDP objects
38
BNL_UDP
(
const
BNL_UDP
& other) ;
// prevents construction-copy
39
BNL_UDP
&
operator=
(
const
BNL_UDP
&) ;
// prevents copying
40
41
void
FlushSocket
(
int
sock);
42
43
//functions
44
void
Clear
();
45
void
Reset
();
46
void
ResizeBuffer
(
size_t
size =
WIB_RESPONSE_PACKET_BUFFER_SIZE
);
47
48
bool
writeAck
;
49
50
//Network addresses
51
std::string
remoteAddress
;
52
int16_t
readPort
;
53
int16_t
writePort
;
54
int16_t
replyPort
;
55
56
//Network sockets and sockaddrs
57
bool
connected
;
58
int
readSocketFD
;
59
int
writeSocketFD
;
60
struct
sockaddr_in
readAddr
;
61
struct
sockaddr_in
writeAddr
;
62
63
//Packet buffer
64
size_t
buffer_size
;
65
uint8_t *
buffer
;
66
uint64_t
total_retry_count
;
67
};
68
#endif
WIB_RESPONSE_PACKET_BUFFER_SIZE
#define WIB_RESPONSE_PACKET_BUFFER_SIZE
Definition
BNL_UDP.hh:12
BNL_UDP::SetWriteAck
void SetWriteAck(bool val)
Definition
BNL_UDP.hh:22
BNL_UDP::writeAddr
struct sockaddr_in writeAddr
Definition
BNL_UDP.hh:61
BNL_UDP::readPort
int16_t readPort
Definition
BNL_UDP.hh:52
BNL_UDP::Setup
void Setup(std::string const &address, uint16_t port_offset=0)
Definition
BNL_UDP.cpp:96
BNL_UDP::remoteAddress
std::string remoteAddress
Definition
BNL_UDP.hh:51
BNL_UDP::Ready
bool Ready()
Definition
BNL_UDP.hh:20
BNL_UDP::Write
void Write(uint16_t address, uint32_t value)
Definition
BNL_UDP.cpp:217
BNL_UDP::connected
bool connected
Definition
BNL_UDP.hh:57
BNL_UDP::WriteWithRetry
void WriteWithRetry(uint16_t address, uint32_t value, uint8_t retry_count=10)
Definition
BNL_UDP.cpp:197
BNL_UDP::ReadWithRetry
uint32_t ReadWithRetry(uint16_t address, uint8_t retry_count=10)
Definition
BNL_UDP.cpp:370
BNL_UDP::writeSocketFD
int writeSocketFD
Definition
BNL_UDP.hh:59
BNL_UDP::BNL_UDP
BNL_UDP(const BNL_UDP &other)
BNL_UDP::Read
uint32_t Read(uint16_t address)
Definition
BNL_UDP.cpp:391
BNL_UDP::FlushSocket
void FlushSocket(int sock)
Definition
BNL_UDP.cpp:53
BNL_UDP::total_retry_count
uint64_t total_retry_count
Definition
BNL_UDP.hh:66
BNL_UDP::Clear
void Clear()
Definition
BNL_UDP.cpp:63
BNL_UDP::readAddr
struct sockaddr_in readAddr
Definition
BNL_UDP.hh:60
BNL_UDP::GetAddress
std::string GetAddress()
Definition
BNL_UDP.hh:32
BNL_UDP::buffer_size
size_t buffer_size
Definition
BNL_UDP.hh:64
BNL_UDP::GetWriteAck
bool GetWriteAck()
Definition
BNL_UDP.hh:23
BNL_UDP::readSocketFD
int readSocketFD
Definition
BNL_UDP.hh:58
BNL_UDP::GetRetryCount
uint64_t GetRetryCount()
Definition
BNL_UDP.hh:34
BNL_UDP::operator=
BNL_UDP & operator=(const BNL_UDP &)
BNL_UDP::Reset
void Reset()
BNL_UDP::~BNL_UDP
~BNL_UDP()
Definition
BNL_UDP.cpp:459
BNL_UDP::ResizeBuffer
void ResizeBuffer(size_t size=WIB_RESPONSE_PACKET_BUFFER_SIZE)
Definition
BNL_UDP.cpp:464
BNL_UDP::replyPort
int16_t replyPort
Definition
BNL_UDP.hh:54
BNL_UDP::BNL_UDP
BNL_UDP()
Definition
BNL_UDP.hh:16
BNL_UDP::buffer
uint8_t * buffer
Definition
BNL_UDP.hh:65
BNL_UDP::writePort
int16_t writePort
Definition
BNL_UDP.hh:53
BNL_UDP::writeAck
bool writeAck
Definition
BNL_UDP.hh:48
Generated on
for DUNE-DAQ by
1.17.0