tdaq-develop-2025-02-12
ots::OtsUDPFirmwareCore Class Reference
Inheritance diagram for ots::OtsUDPFirmwareCore:
ots::FrontEndFirmwareBase ots::OtsUDPFirmwareDataGen ots::FEOtsUDPProducerTemplateInterface ots::FEOtsUDPTemplateInterface

Public Member Functions

 OtsUDPFirmwareCore (unsigned int version)
 
virtual void init (void)
 
virtual std::string write (char *address, char *data)
 
virtual void write (std::string &buffer, char *address, char *data, bool clearBuffer=true)
 
virtual void write (std::string &buffer, uint32_t address, uint32_t data, bool clearBuffer=true)
 
virtual void write (std::string &buffer, uint64_t address, uint64_t data, bool clearBuffer=true)
 
virtual void waitClear (std::string &, uint32_t, uint32_t, uint32_t=255, bool=true)
 
virtual std::string read (char *address)
 
virtual void read (std::string &buffer, char *address, bool clearBuffer=true)
 
virtual void read (std::string &buffer, uint64_t address, bool clearBuffer=true)
 
virtual void read (std::string &buffer, uint32_t address, bool clearBuffer=true)
 
virtual void setDataDestination (std::string &buffer, const std::string &ip, const uint16_t port, bool clearBuffer=true)
 
virtual uint32_t createRegisterFromValue (std::string &readBuffer, std::string &receivedValue)
 return data lower 32 bits
 
void writeAdvanced (std::string &buffer, const char *address, const char *data, uint8_t size=1, uint8_t commandTypeOptions=0, bool clearBuffer=true)
 low level functionality
 
void writeAdvanced (std::string &buffer, const uint64_t &address, const char *data, uint8_t size, uint8_t commandTypeOptions=0, bool clearBuffer=true)
 
void writeAdvanced (std::string &buffer, const uint64_t &address, const uint64_t &data, uint8_t commandTypeOptions=0, bool clearBuffer=true)
 
void writeAdvanced (std::string &buffer, const uint64_t &address, const std::vector< uint64_t > &data, uint8_t commandTypeOptions=0, bool clearBuffer=true)
 
void readAdvanced (std::string &buffer, char *address, uint8_t size=1, uint8_t commandTypeOptions=0, bool clearBuffer=true)
 
void readAdvanced (std::string &buffer, const uint64_t &address, uint8_t size=1, uint8_t commandTypeOptions=0, bool clearBuffer=true)
 
void writeDataDestinationIP (std::string &buffer, const uint64_t value, bool clearBuffer=true)
 
void writeDataDestinationMAC (std::string &buffer, const uint64_t value, bool clearBuffer=true)
 
void writeDataDestinationPort (std::string &buffer, const uint64_t value, bool clearBuffer=true)
 
void readDataDestinationIP (std::string &buffer)
 
void readDataDestinationMAC (std::string &buffer)
 
void readDataDestinationPort (std::string &buffer)
 
void setDataDestinationAsSelf (std::string &buffer)
 
virtual void setControlDestination (std::string &buffer, const std::string &ip, const uint16_t port)
 control destination read/write
 
void writeControlDestinationIP (std::string &buffer, const uint64_t value)
 
void writeControlDestinationMAC (std::string &buffer, const uint64_t value)
 
void writeControlDestinationPort (std::string &buffer, const uint64_t value)
 
void readControlDestinationIP (std::string &buffer)
 
void readControlDestinationMAC (std::string &buffer)
 
void readControlDestinationPort (std::string &buffer)
 
void setControlDestinationAsSelf (std::string &buffer)
 
void UDPFirmwareSpecialPing (std::string &buffer)
 other
 
void UDPFirmwareSpecialNoOp (std::string &buffer)
 
void readUDPFirmwareVersion (std::string &buffer)
 
void softEthernetReset (std::string &buffer)
 
void hardEthernetReset (std::string &buffer)
 
void clearEthernetReset (std::string &buffer)
 
void startBurst (std::string &buffer)
 
void stopBurst (std::string &buffer)
 
- Public Member Functions inherited from ots::FrontEndFirmwareBase
 FrontEndFirmwareBase (unsigned int version=-1)
 
unsigned int getVersion ()
 
virtual void waitSet (std::string &, uint32_t, uint32_t, uint32_t=255, bool=true)
 
virtual unsigned int getNumberOfBufferedCommands (std::string &)
 

Static Public Attributes

static const uint8_t FIFO_ADDRESS_CMD_TYPE = (1 << 3)
 command type options that can be OR'd More...
 

Additional Inherited Members

- Public Attributes inherited from ots::FrontEndFirmwareBase
const unsigned int version_
 

Detailed Description

Definition at line 12 of file OtsUDPFirmwareCore.h.

Constructor & Destructor Documentation

◆ OtsUDPFirmwareCore()

OtsUDPFirmwareCore::OtsUDPFirmwareCore ( unsigned int  version)

OtsUDPFirmwareCore

The intent of this class is to be the core UDP firmware functionality. This should handle everything except the user block 0x0 of the address space.

Note: Currently there are these other blocks of the address space:
    block 0x1 -- UDP core
    block 0x2 -- Programming over Ethernet core

Definition at line 50 of file OtsUDPFirmwareCore.cc.

Member Function Documentation

◆ read()

std::string OtsUDPFirmwareCore::read ( char *  )
virtual

These should never be called directly if used correctly, but not all classes will implement every function (so no pure virtuals). Should be obvious that the wrong thing is happening if these are called because exceptions are thrown!

Reimplemented from ots::FrontEndFirmwareBase.

Definition at line 198 of file OtsUDPFirmwareCore.cc.

◆ write()

std::string OtsUDPFirmwareCore::write ( char *  address,
char *  data 
)
virtual

implementation of base class virtual functionality

std::string read (char* address);

Reimplemented from ots::FrontEndFirmwareBase.

Definition at line 62 of file OtsUDPFirmwareCore.cc.

◆ writeAdvanced()

void ots::OtsUDPFirmwareCore::writeAdvanced ( std::string &  buffer,
const uint64_t &  address,
const char *  data,
uint8_t  size,
uint8_t  commandTypeOptions = 0,
bool  clearBuffer = true 
)

size is required, to remove ambiguity when calling write with data=0

◆ writeDataDestinationIP()

void OtsUDPFirmwareCore::writeDataDestinationIP ( std::string &  buffer,
const uint64_t  value,
bool  clearBuffer = true 
)

next level functionality

data destination read/write

Definition at line 344 of file OtsUDPFirmwareCore.cc.

Member Data Documentation

◆ FIFO_ADDRESS_CMD_TYPE

const uint8_t OtsUDPFirmwareCore::FIFO_ADDRESS_CMD_TYPE = (1 << 3)
static

command type options that can be OR'd

end ADDRESS SPACE //////////////////////////////=======================================

Definition at line 169 of file OtsUDPFirmwareCore.h.


The documentation for this class was generated from the following files: