24#ifndef LSST_M1M3_SS_FPGA_IFPGA_H_
25#define LSST_M1M3_SS_FPGA_IFPGA_H_
29#include <HealthAndStatusFPGAData.h>
30#include <SupportFPGAData.h>
46class IFPGA :
public cRIO::FPGA {
48 IFPGA() : cRIO::FPGA(cRIO::SS) {}
53 uint16_t getTxCommand(uint8_t bus)
override;
54 uint16_t getRxCommand(uint8_t bus)
override;
55 uint32_t getIrq(uint8_t bus)
override;
207 void setPower(
bool aux,
bool network);
215 void setPower(
const bool aux[4],
const bool network[4]);
Health and status reader.
Definition HealthAndStatusFPGAData.h:64
Abstract interface for FPGA.
Definition IFPGA.h:46
virtual void readRawAccelerometerFIFO(uint64_t *raw, size_t samples)=0
Reads raw accelerometer FIFO.
virtual void readU8ResponseFIFO(uint8_t *data, size_t length, uint32_t timeoutInMs)=0
virtual void waitForPPS(uint32_t timeout)=0
Waits for Peer-to-Peer Synchronization interrupt (10).
virtual void ackModbusIRQs()=0
Acknowledge ModBus interrupt reception.
void setPower(bool aux, bool network)
Sets all auxiliary and network buses power (A-D).
Definition IFPGA.cpp:69
virtual void waitForOuterLoopClock(uint32_t timeout)=0
Wait for outer loop clock interrupt for synchronization between C++ and FPGA code.
virtual void writeTimestampFIFO(uint64_t timestamp)=0
Write current timestamp value into timestampFIFO.
virtual void writeHealthAndStatusFIFO(uint16_t request, uint16_t param=0)=0
Requests HealthAndStatus data.
virtual void pullTelemetry()=0
Retrieve telemetry data.
virtual void waitForModbusIRQs(uint32_t warning_timeout, uint32_t error_timeout)=0
Wait for ModBus interrupts.
virtual void pullHealthAndStatus()=0
Retrieve Health&Status data.
virtual void ackPPS()=0
Acknowledge (clear) Peer-to-Peer Synchronization interrupt.
virtual void ackOuterLoopClock()=0
Acknowledge (clear interrupt 0) outer loop clock.
virtual void readHealthAndStatusFIFO(uint64_t *data, size_t length, uint32_t timeoutInMs=10)=0
Copy HealthAndStatus data into supplied data buffer.
HealthAndStatusFPGAData * getHealthAndStatusFPGAData()
Call after pullHealthAndStatus to retrieve HealthAndStatus data.
Definition IFPGA.h:69
SupportFPGAData * getSupportFPGAData()
Call after pullTelemetry to retrieve telemetry data.
Definition IFPGA.h:62
FPGA support data.
Definition SupportFPGAData.h:36