DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
sspmodules
src
anlBoard
EthernetDevice.hpp
Go to the documentation of this file.
1
8
#ifndef SSPMODULES_SRC_ANLBOARD_ETHERNETDEVICE_HPP_
9
#define SSPMODULES_SRC_ANLBOARD_ETHERNETDEVICE_HPP_
10
11
#include "
SSPTypes.hpp
"
12
13
#include "
Device.hpp
"
14
#include "boost/asio.hpp"
15
16
#include <cstdint>
17
#include <cstdio>
18
#include <cstring>
19
#include <iomanip>
20
#include <iostream>
21
#include <string>
22
#include <unistd.h>
23
#include <vector>
24
25
namespace
dunedaq
{
26
namespace
sspmodules
{
27
28
class
EthernetDevice
:
public
Device
29
{
30
31
public
:
32
// Create a device object using FTDI handles given for data and communication channels
33
explicit
EthernetDevice
(
unsigned
long
ipAddress);
// NOLINT
34
35
// Implementation of base class interface
36
37
inline
virtual
bool
IsOpen
() {
return
isOpen
; }
38
39
virtual
void
Close
();
40
41
virtual
void
DevicePurgeComm
();
42
43
virtual
void
DevicePurgeData
();
44
45
virtual
void
DeviceQueueStatus
(
unsigned
int
* numWords);
46
47
virtual
void
DeviceReceive
(std::vector<unsigned int>& data,
unsigned
int
size
);
48
49
virtual
void
DeviceRead
(
unsigned
int
address
,
unsigned
int
* value);
50
51
virtual
void
DeviceReadMask
(
unsigned
int
address
,
unsigned
int
mask,
unsigned
int
* value);
52
53
virtual
void
DeviceWrite
(
unsigned
int
address
,
unsigned
int
value);
54
55
virtual
void
DeviceWriteMask
(
unsigned
int
address
,
unsigned
int
mask,
unsigned
int
value);
56
57
virtual
void
DeviceSet
(
unsigned
int
address
,
unsigned
int
mask);
58
59
virtual
void
DeviceClear
(
unsigned
int
address
,
unsigned
int
mask);
60
61
virtual
void
DeviceArrayRead
(
unsigned
int
address
,
unsigned
int
size
,
unsigned
int
* data);
62
63
virtual
void
DeviceArrayWrite
(
unsigned
int
address
,
unsigned
int
size
,
unsigned
int
* data);
64
65
// Internal functions - make public so debugging code can access them
66
67
void
SendReceive
(
dunedaq::sspmodules::CtrlPacket
& tx,
68
dunedaq::sspmodules::CtrlPacket
& rx,
69
unsigned
int
txSize,
70
unsigned
int
rxSizeExpected,
71
unsigned
int
retryCount = 0);
72
73
void
SendEthernet
(
dunedaq::sspmodules::CtrlPacket
& tx,
unsigned
int
txSize);
74
75
void
ReceiveEthernet
(
dunedaq::sspmodules::CtrlPacket
& rx,
unsigned
int
rxSizeExpected);
76
77
void
DevicePurge
(boost::asio::ip::tcp::socket& socket);
78
79
private
:
80
friend
class
DeviceManager
;
81
82
bool
isOpen
;
83
84
static
boost::asio::io_service
fIo_service
;
85
86
boost::asio::ip::tcp::socket
fCommSocket
;
87
boost::asio::ip::tcp::socket
fDataSocket
;
88
89
boost::asio::ip::address
fIP
;
90
91
// Can only be opened by DeviceManager, not by user
92
virtual
void
Open
(
bool
slowControlOnly);
93
};
94
95
}
// namespace sspmodules
96
}
// namespace dunedaq
97
98
#endif
// SSPMODULES_SRC_ANLBOARD_ETHERNETDEVICE_HPP_
Device.hpp
SSPTypes.hpp
dunedaq::sspmodules::Device
Definition
Device.hpp:28
dunedaq::sspmodules::EthernetDevice::DeviceQueueStatus
virtual void DeviceQueueStatus(unsigned int *numWords)
Definition
EthernetDevice.cxx:81
dunedaq::sspmodules::EthernetDevice::SendEthernet
void SendEthernet(dunedaq::sspmodules::CtrlPacket &tx, unsigned int txSize)
Definition
EthernetDevice.cxx:280
dunedaq::sspmodules::EthernetDevice::DeviceReadMask
virtual void DeviceReadMask(unsigned int address, unsigned int mask, unsigned int *value)
Definition
EthernetDevice.cxx:122
dunedaq::sspmodules::EthernetDevice::DeviceArrayRead
virtual void DeviceArrayRead(unsigned int address, unsigned int size, unsigned int *data)
Definition
EthernetDevice.cxx:196
dunedaq::sspmodules::EthernetDevice::DeviceSet
virtual void DeviceSet(unsigned int address, unsigned int mask)
Definition
EthernetDevice.cxx:184
dunedaq::sspmodules::EthernetDevice::DeviceWriteMask
virtual void DeviceWriteMask(unsigned int address, unsigned int mask, unsigned int value)
Definition
EthernetDevice.cxx:163
dunedaq::sspmodules::EthernetDevice::EthernetDevice
EthernetDevice(unsigned long ipAddress)
Definition
EthernetDevice.cxx:21
dunedaq::sspmodules::EthernetDevice::DevicePurgeComm
virtual void DevicePurgeComm()
Definition
EthernetDevice.cxx:69
dunedaq::sspmodules::EthernetDevice::DevicePurge
void DevicePurge(boost::asio::ip::tcp::socket &socket)
Definition
EthernetDevice.cxx:298
dunedaq::sspmodules::EthernetDevice::fCommSocket
boost::asio::ip::tcp::socket fCommSocket
Definition
EthernetDevice.hpp:86
dunedaq::sspmodules::EthernetDevice::IsOpen
virtual bool IsOpen()
Definition
EthernetDevice.hpp:37
dunedaq::sspmodules::EthernetDevice::fIP
boost::asio::ip::address fIP
Definition
EthernetDevice.hpp:89
dunedaq::sspmodules::EthernetDevice::fIo_service
static boost::asio::io_service fIo_service
Definition
EthernetDevice.hpp:84
dunedaq::sspmodules::EthernetDevice::fDataSocket
boost::asio::ip::tcp::socket fDataSocket
Definition
EthernetDevice.hpp:87
dunedaq::sspmodules::EthernetDevice::DeviceWrite
virtual void DeviceWrite(unsigned int address, unsigned int value)
Definition
EthernetDevice.cxx:143
dunedaq::sspmodules::EthernetDevice::Open
virtual void Open(bool slowControlOnly)
Definition
EthernetDevice.cxx:30
dunedaq::sspmodules::EthernetDevice::DeviceRead
virtual void DeviceRead(unsigned int address, unsigned int *value)
Definition
EthernetDevice.cxx:102
dunedaq::sspmodules::EthernetDevice::DeviceClear
virtual void DeviceClear(unsigned int address, unsigned int mask)
Definition
EthernetDevice.cxx:190
dunedaq::sspmodules::EthernetDevice::DevicePurgeData
virtual void DevicePurgeData()
Definition
EthernetDevice.cxx:75
dunedaq::sspmodules::EthernetDevice::isOpen
bool isOpen
Definition
EthernetDevice.hpp:82
dunedaq::sspmodules::EthernetDevice::Close
virtual void Close()
Definition
EthernetDevice.cxx:62
dunedaq::sspmodules::EthernetDevice::DeviceArrayWrite
virtual void DeviceArrayWrite(unsigned int address, unsigned int size, unsigned int *data)
Definition
EthernetDevice.cxx:219
dunedaq::sspmodules::EthernetDevice::ReceiveEthernet
void ReceiveEthernet(dunedaq::sspmodules::CtrlPacket &rx, unsigned int rxSizeExpected)
Definition
EthernetDevice.cxx:289
dunedaq::sspmodules::EthernetDevice::SendReceive
void SendReceive(dunedaq::sspmodules::CtrlPacket &tx, dunedaq::sspmodules::CtrlPacket &rx, unsigned int txSize, unsigned int rxSizeExpected, unsigned int retryCount=0)
Definition
EthernetDevice.cxx:247
dunedaq::sspmodules::EthernetDevice::DeviceManager
friend class DeviceManager
Definition
EthernetDevice.hpp:80
dunedaq::sspmodules::EthernetDevice::DeviceReceive
virtual void DeviceReceive(std::vector< unsigned int > &data, unsigned int size)
Definition
EthernetDevice.cxx:88
dunedaq::sspmodules
Definition
anlExceptions.hpp:15
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
dunedaq::size
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size
Definition
FelixIssues.hpp:30
dunedaq::address
Invalid address
Definition
CommonIssues.hpp:26
dunedaq::sspmodules::CtrlPacket
Definition
SSPTypes.hpp:95
Generated on
for DUNE-DAQ by
1.18.0