#include <UdpDevice.h>
Public Member Functions | |
UdpControlSocket (UdpDevice *dev, int fd) | |
virtual | ~UdpControlSocket () |
virtual double | ProcessTimeout (double last_diff) |
virtual void | ProcessEvent (const dabc::EventId &) |
virtual int | ExecuteCommand (dabc::Command cmd) |
Protected Types | |
enum | EUdpEvents { evntSendCtrl = evntSocketLast + 1, evntCheckCmd } |
Protected Member Functions | |
void | checkCommandsQueue () |
void | completeLoop (bool res, int len=0) |
void | SendDisconnect () |
void | SetLastSendTime () |
Protected Attributes | |
UdpDevice * | fDev |
dabc::CommandsQueue | fUdpCmds |
bool | fCtrlRuns |
UdpMessageFull | fControlSend |
unsigned | fControlSendSize |
UdpMessageFull | fControlRecv |
uint32_t | fPacketCounter |
double | fTotalTmoutSec |
bool | fFastMode |
int | fLoopCnt |
dabc::TimeStamp | fSendLastOper |
Friends | |
class | UdpDevice |
class | UdpDataSocket |
Definition at line 36 of file UdpDevice.h.
enum roc::UdpControlSocket::EUdpEvents [protected] |
Definition at line 41 of file UdpDevice.h.
roc::UdpControlSocket::UdpControlSocket | ( | UdpDevice * | dev, | |
int | fd | |||
) |
Definition at line 36 of file UdpDevice.cxx.
References SetLastSendTime().
roc::UdpControlSocket::~UdpControlSocket | ( | ) | [virtual] |
Definition at line 53 of file UdpDevice.cxx.
References roc::UdpDevice::fCtrlCh, fDev, and fUdpCmds.
void roc::UdpControlSocket::checkCommandsQueue | ( | ) | [protected] |
Definition at line 248 of file UdpDevice.cxx.
References roc::UdpMessage::address, roc::AddrPar, roc::UdpDevice::CmdPutDisconnect(), roc::UdpDevice::CmdPutSuspendDaq(), evntCheckCmd, evntSendCtrl, fControlSend, fControlSendSize, fCtrlRuns, fFastMode, fLoopCnt, fPacketCounter, fTotalTmoutSec, fUdpCmds, roc::UdpMessage::id, MAX_UDP_PAYLOAD, NOPER_PUT, base::OperList::number(), base::OperList::oper(), roc::OperListPar, roc::UdpMessage::password, roc::UdpMessageFull::rawdata, roc::RawDataPar, ROC_ETH_CFG_READ, ROC_ETH_CFG_WRITE, ROC_ETH_FLASH_KIBFILE_FROM_DDR, ROC_ETH_OVERWRITE_SD_FILE, ROC_PASSWORD, roc::UdpMessage::tag, roc::TmoutPar, UDP_PAYLOAD_OFFSET, roc::UdpMessage::value, and roc::ValuePar.
Referenced by completeLoop(), ExecuteCommand(), and ProcessEvent().
void roc::UdpControlSocket::completeLoop | ( | bool | res, | |
int | len = 0 | |||
) | [protected] |
Definition at line 158 of file UdpDevice.cxx.
References roc::UdpMessage::address, checkCommandsQueue(), roc::UdpDevice::CmdPutDisconnect(), roc::UdpDevice::CmdPutSuspendDaq(), roc::UdpDevice::completeSwPut(), roc::ErrNoPar, fControlRecv, fControlSend, fCtrlRuns, fDev, fUdpCmds, base::Board::kOperNetworkErr, base::OperList::number(), base::OperList::oper(), base::Board::operErrBuild(), roc::OperListPar, roc::UdpMessageFull::rawdata, roc::UdpMessage::value, and roc::ValuePar.
Referenced by ProcessEvent(), and ProcessTimeout().
int roc::UdpControlSocket::ExecuteCommand | ( | dabc::Command | cmd | ) | [virtual] |
Definition at line 239 of file UdpDevice.cxx.
References checkCommandsQueue(), and fUdpCmds.
void roc::UdpControlSocket::ProcessEvent | ( | const dabc::EventId & | evnt | ) | [virtual] |
Definition at line 69 of file UdpDevice.cxx.
References checkCommandsQueue(), completeLoop(), evntCheckCmd, evntSendCtrl, fControlRecv, fControlSend, fControlSendSize, fCtrlRuns, fDev, fFastMode, fLoopCnt, fTotalTmoutSec, roc::UdpMessage::id, roc::UdpMessage::password, roc::UdpDevice::processCtrlMessage(), ROC_PASSWORD, SetLastSendTime(), and roc::UdpMessage::tag.
double roc::UdpControlSocket::ProcessTimeout | ( | double | last_diff | ) | [virtual] |
Definition at line 130 of file UdpDevice.cxx.
References completeLoop(), evntSendCtrl, fCtrlRuns, fFastMode, fSendLastOper, fTotalTmoutSec, fUdpCmds, and ROC_ROCID.
void roc::UdpControlSocket::SendDisconnect | ( | ) | [protected] |
Definition at line 118 of file UdpDevice.cxx.
References roc::UdpMessage::address, fControlSend, fControlSendSize, ROC_ETH_MASTER_LOGOUT, roc::UdpMessage::tag, and roc::UdpMessage::value.
Referenced by roc::UdpDevice::~UdpDevice().
void roc::UdpControlSocket::SetLastSendTime | ( | ) | [protected] |
Definition at line 62 of file UdpDevice.cxx.
References fSendLastOper.
Referenced by roc::UdpDataSocket::CheckNextRequest(), ProcessEvent(), and UdpControlSocket().
friend class UdpDataSocket [friend] |
Definition at line 38 of file UdpDevice.h.
friend class UdpDevice [friend] |
Definition at line 37 of file UdpDevice.h.
UdpMessageFull roc::UdpControlSocket::fControlRecv [protected] |
Definition at line 51 of file UdpDevice.h.
Referenced by completeLoop(), ProcessEvent(), and roc::UdpDevice::takeStat().
UdpMessageFull roc::UdpControlSocket::fControlSend [protected] |
Definition at line 49 of file UdpDevice.h.
Referenced by checkCommandsQueue(), completeLoop(), ProcessEvent(), and SendDisconnect().
unsigned roc::UdpControlSocket::fControlSendSize [protected] |
Definition at line 50 of file UdpDevice.h.
Referenced by checkCommandsQueue(), ProcessEvent(), and SendDisconnect().
bool roc::UdpControlSocket::fCtrlRuns [protected] |
Definition at line 48 of file UdpDevice.h.
Referenced by checkCommandsQueue(), completeLoop(), ProcessEvent(), and ProcessTimeout().
UdpDevice* roc::UdpControlSocket::fDev [protected] |
Definition at line 44 of file UdpDevice.h.
Referenced by completeLoop(), ProcessEvent(), ~UdpControlSocket(), and roc::UdpDevice::~UdpDevice().
bool roc::UdpControlSocket::fFastMode [protected] |
Definition at line 56 of file UdpDevice.h.
Referenced by checkCommandsQueue(), ProcessEvent(), and ProcessTimeout().
int roc::UdpControlSocket::fLoopCnt [protected] |
Definition at line 57 of file UdpDevice.h.
Referenced by checkCommandsQueue(), and ProcessEvent().
uint32_t roc::UdpControlSocket::fPacketCounter [protected] |
Definition at line 53 of file UdpDevice.h.
Referenced by checkCommandsQueue().
dabc::TimeStamp roc::UdpControlSocket::fSendLastOper [protected] |
Definition at line 59 of file UdpDevice.h.
Referenced by ProcessTimeout(), and SetLastSendTime().
double roc::UdpControlSocket::fTotalTmoutSec [protected] |
Definition at line 55 of file UdpDevice.h.
Referenced by checkCommandsQueue(), ProcessEvent(), and ProcessTimeout().
dabc::CommandsQueue roc::UdpControlSocket::fUdpCmds [protected] |
Definition at line 46 of file UdpDevice.h.
Referenced by checkCommandsQueue(), completeLoop(), ExecuteCommand(), ProcessTimeout(), and ~UdpControlSocket().