irioCoreCpp Library Module  2.1.0
terminalsDMAIMAQ.h
1 #pragma once
2 
3 #include <memory>
4 #include <vector>
5 
6 #include "terminals/terminalsDMACommon.h"
7 #include "imaqTypes.h"
8 
9 namespace irio {
10 class TerminalsDMAIMAQImpl;
11 
18  public:
26  explicit TerminalsDMAIMAQ(std::shared_ptr<TerminalsDMAIMAQImpl> impl);
27 
56  const std::int32_t fvalHigh, const std::int32_t lvalHigh,
57  const std::int32_t dvalHigh, const std::int32_t spareHigh,
58  const std::int32_t controlEnable, const std::int32_t linescan,
59  const CLSignalMapping &signalMapping, const CLMode &mode) const;
60 
76  size_t readImageNonBlocking(const std::uint32_t n,
77  const size_t imagePixelSize,
78  std::uint64_t *imageRead) const;
79 
102  size_t readImageBlocking(const std::uint32_t n, const size_t imagePixelSize,
103  std::uint64_t *imageRead,
104  const std::uint32_t timeout = 0) const;
105 
134  size_t readImage(const std::uint32_t n, const size_t imagePixelSize,
135  std::uint64_t *imageRead, const bool blockRead,
136  const std::uint32_t timeout = 0) const;
137 
152  void sendUARTMsg(const std::vector<std::uint8_t> &msg,
153  const std::uint32_t timeout = 0) const;
154 
168  std::vector<std::uint8_t> recvUARTMsg(
169  const size_t bytesToRecv = 0, const std::uint32_t timeout = 1000) const;
170 
183  void setUARTBaudRate(const UARTBaudRates &baudRate,
184  const std::uint32_t timeout = 0) const;
185 
195  UARTBaudRates getUARTBaudRate() const;
196 
207  std::uint16_t getUARTBreakIndicator() const;
208 
219  std::uint16_t getUARTFramingError() const;
220 
231  std::uint16_t getUARTOverrunError() const;
232 };
233 
234 } // namespace irio
Class managing the terminals common to all other terminals that use DMAs in the RIO device.
Class managing the resources used for IMAQ DAQ operations.
std::vector< std::uint8_t > recvUARTMsg(const size_t bytesToRecv=0, const std::uint32_t timeout=1000) const
Reads an UART message from the CameraLink system.
size_t readImageNonBlocking(const std::uint32_t n, const size_t imagePixelSize, std::uint64_t *imageRead) const
Tries to read an specifeid number of pixels.
std::uint16_t getUARTOverrunError() const
Read UART Overrun Error.
std::uint16_t getUARTFramingError() const
Read UART Framing Error.
size_t readImage(const std::uint32_t n, const size_t imagePixelSize, std::uint64_t *imageRead, const bool blockRead, const std::uint32_t timeout=0) const
Reads an specified number of pixels from a DMA group.
void setUARTBaudRate(const UARTBaudRates &baudRate, const std::uint32_t timeout=0) const
Sets UART baud rate.
TerminalsDMAIMAQ(std::shared_ptr< TerminalsDMAIMAQImpl > impl)
Manages finding IMAQ resources.
size_t readImageBlocking(const std::uint32_t n, const size_t imagePixelSize, std::uint64_t *imageRead, const std::uint32_t timeout=0) const
Waits to read an specified number of pixels from a DMA group.
void configCameraLink(const std::int32_t fvalHigh, const std::int32_t lvalHigh, const std::int32_t dvalHigh, const std::int32_t spareHigh, const std::int32_t controlEnable, const std::int32_t linescan, const CLSignalMapping &signalMapping, const CLMode &mode) const
Configure CameraLink frame grabber.
std::uint16_t getUARTBreakIndicator() const
Read UART Break Indicator.
UARTBaudRates getUARTBaudRate() const
Read UART baud rate.
void sendUARTMsg(const std::vector< std::uint8_t > &msg, const std::uint32_t timeout=0) const
Sends an UART message to the CameraLink system.