49 void initialize()
override;
51 void close()
override;
52 void finalize()
override;
60 void waitForModbusIRQs(uint32_t warning_timeout, uint32_t error_timeout)
override;
66 void writeCommandFIFO(uint16_t *data,
size_t length, uint32_t timeoutInMs)
override;
67 void writeRequestFIFO(uint16_t *data,
size_t length, uint32_t timeoutInMs)
override;
70 void readU16ResponseFIFO(uint16_t *data,
size_t length, uint32_t timeoutInMs)
override;
72 std::vector<uint8_t> readMPUFIFO(cRIO::MPU &mpu)
override {
throw std::runtime_error(
"readMPU called"); }
73 void writeMPUFIFO(cRIO::MPU &mpu,
const std::vector<uint8_t> &data, uint32_t timeout)
override {}
75 void waitOnIrqs(uint32_t irqs, uint32_t timeout,
bool &timedout, uint32_t *triggered = NULL)
override;
76 void ackIrqs(uint32_t irqs)
override;
86 std::map<size_t, NiFpga_IrqContext> _contexes;
87 NiFpga_IrqContext _outerLoopIRQContext;
88 NiFpga_IrqContext _modbusIRQContext;
89 NiFpga_IrqContext _ppsIRQContext;
91 uint32_t _modbus_irqs;
The class used to communicate with the FPGA.
Definition FPGA.h:44
void writeHealthAndStatusFIFO(uint16_t request, uint16_t param=0) override
Requests HealthAndStatus data.
Definition FPGA.cpp:296
void readRawAccelerometerFIFO(uint64_t *raw, size_t samples) override
Reads raw accelerometer FIFO.
Definition FPGA.cpp:312
void pullTelemetry() override
Retrieve telemetry data.
Definition FPGA.cpp:167
void writeTimestampFIFO(uint64_t timestamp) override
Write current timestamp value into timestampFIFO.
Definition FPGA.cpp:255
void waitForPPS(uint32_t timeout) override
Waits for Peer-to-Peer Synchronization interrupt (10).
Definition FPGA.cpp:102
void readU8ResponseFIFO(uint8_t *data, size_t length, uint32_t timeoutInMs) override
Definition FPGA.cpp:262
void ackOuterLoopClock() override
Acknowledge (clear interrupt 0) outer loop clock.
Definition FPGA.cpp:98
void waitForOuterLoopClock(uint32_t timeout) override
Wait for outer loop clock interrupt for synchronization between C++ and FPGA code.
Definition FPGA.cpp:91
void pullHealthAndStatus() override
Retrieve Health&Status data.
Definition FPGA.cpp:236
void readHealthAndStatusFIFO(uint64_t *data, size_t length, uint32_t timeoutInMs=10) override
Copy HealthAndStatus data into supplied data buffer.
Definition FPGA.cpp:305
void ackPPS() override
Acknowledge (clear) Peer-to-Peer Synchronization interrupt.
Definition FPGA.cpp:109
void ackModbusIRQs() override
Acknowledge ModBus interrupt reception.
Definition FPGA.cpp:163
void waitForModbusIRQs(uint32_t warning_timeout, uint32_t error_timeout) override
Wait for ModBus interrupts.
Definition FPGA.cpp:113
Abstract interface for FPGA.
Definition IFPGA.h:46