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 <iostream>
17
#include <iomanip>
18
#include <string>
19
#include <cstdint>
20
#include <cstdio>
21
#include <cstring>
22
#include <unistd.h>
23
#include <vector>
24
25
namespace
dunedaq
{
26
namespace
sspmodules
{
27
28
class
EthernetDevice
:
public
Device
{
29
30
public
:
31
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
(){
38
return
isOpen
;
39
}
40
41
virtual
void
Close
();
42
43
virtual
void
DevicePurgeComm
();
44
45
virtual
void
DevicePurgeData
();
46
47
virtual
void
DeviceQueueStatus
(
unsigned
int
* numWords);
48
49
virtual
void
DeviceReceive
(std::vector<unsigned int>& data,
unsigned
int
size
);
50
51
virtual
void
DeviceRead
(
unsigned
int
address
,
unsigned
int
* value);
52
53
virtual
void
DeviceReadMask
(
unsigned
int
address
,
unsigned
int
mask,
unsigned
int
* value);
54
55
virtual
void
DeviceWrite
(
unsigned
int
address
,
unsigned
int
value);
56
57
virtual
void
DeviceWriteMask
(
unsigned
int
address
,
unsigned
int
mask,
unsigned
int
value);
58
59
virtual
void
DeviceSet
(
unsigned
int
address
,
unsigned
int
mask);
60
61
virtual
void
DeviceClear
(
unsigned
int
address
,
unsigned
int
mask);
62
63
virtual
void
DeviceArrayRead
(
unsigned
int
address
,
unsigned
int
size
,
unsigned
int
* data);
64
65
virtual
void
DeviceArrayWrite
(
unsigned
int
address
,
unsigned
int
size
,
unsigned
int
* data);
66
67
//Internal functions - make public so debugging code can access them
68
69
void
SendReceive
(
dunedaq::sspmodules::CtrlPacket
& tx,
dunedaq::sspmodules::CtrlPacket
& rx,
unsigned
int
txSize,
unsigned
int
rxSizeExpected,
unsigned
int
retryCount=0);
70
71
void
SendEthernet
(
dunedaq::sspmodules::CtrlPacket
& tx,
unsigned
int
txSize);
72
73
void
ReceiveEthernet
(
dunedaq::sspmodules::CtrlPacket
& rx,
unsigned
int
rxSizeExpected);
74
75
void
DevicePurge
(boost::asio::ip::tcp::socket& socket);
76
77
private
:
78
79
friend
class
DeviceManager
;
80
81
bool
isOpen
;
82
83
static
boost::asio::io_service
fIo_service
;
84
85
boost::asio::ip::tcp::socket
fCommSocket
;
86
boost::asio::ip::tcp::socket
fDataSocket
;
87
88
boost::asio::ip::address
fIP
;
89
90
//Can only be opened by DeviceManager, not by user
91
virtual
void
Open
(
bool
slowControlOnly);
92
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:85
dunedaq::sspmodules::EthernetDevice::IsOpen
virtual bool IsOpen()
Definition
EthernetDevice.hpp:37
dunedaq::sspmodules::EthernetDevice::fIP
boost::asio::ip::address fIP
Definition
EthernetDevice.hpp:88
dunedaq::sspmodules::EthernetDevice::fIo_service
static boost::asio::io_service fIo_service
Definition
EthernetDevice.hpp:83
dunedaq::sspmodules::EthernetDevice::fDataSocket
boost::asio::ip::tcp::socket fDataSocket
Definition
EthernetDevice.hpp:86
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:81
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:79
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
Including Qt Headers.
Definition
module.cpp:16
dunedaq::size
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size
Definition
FelixIssues.hpp:28
dunedaq::address
Invalid address
Definition
CommonIssues.hpp:29
dunedaq::sspmodules::CtrlPacket
Definition
SSPTypes.hpp:96
Generated on
for DUNE-DAQ by
1.17.0