ifw-ccf  1.0.0
defines.hpp
Go to the documentation of this file.
1 
5 #ifndef CCF_PROTOCOLS_ARAVIS_LIB_DEFINES_HPP_H_
6 #define CCF_PROTOCOLS_ARAVIS_LIB_DEFINES_HPP_H_
7 
8 #include <cstdint>
9 
10 #include <arv.h>
11 
12 namespace ccf::protocols::aravis {
13 
15  const auto ARAVIS_INFINITE = 0xFFFFFFFF;
16 
18  typedef struct {
19  // In:
20  ArvBuffer* aravis_buffer; // Object from Aravis. Shall be deleted.
21  const void* image_buffer; // Buffer for image/pixel data.
22  unsigned long image_buffer_size; // Size of ImageBuffer in bytes
23 
24  void* ancillary_buffer; // NOT USED
25  // Camera Firmware >= 1.42 Only.
26  // Buffer to capture ancillary chunk mode data. See ChunkModeActive attr.
27  // This MUST be 0 if not in use.
28  // Chunk mode format:
29  // [Bytes 1 - 4] acquisition count.
30  // [Bytes 5 - 8] EF lens settings.
31  // [Bytes 9 - 12] exposure value.
32  // [Bytes 13 - 16] gain value.
33  // [Bytes 17 - 18] sync in levels.
34  // [Bytes 19 - 20] sync out levels.
35  // [Bytes 21 - 40] not implemented. 0.
36  // [Bytes 41 - 44] chunk ID. 1000.
37  // [Bytes 45 - 48] chunk length.
38 
39  unsigned long ancillary_buffer_size; // Size of your ancillary buffer in bytes.
40  // See NonImagePayloadSize attr.
41  // Set to 0 for no buffer.
42 
43  // Out:
44  ArvBufferStatus status; // Status of this frame
45  ArvBufferPayloadType payload; // Type of payload
46  ArvPixelFormat pixel_format; // Pixel format
47  uint64_t frame_id; // Frame ID
48  int64_t image_size; // Image size, in bytes
49  uint32_t ancillary_size; // Ancillary data size, in bytes
50  uint32_t bit_depth; // Number of significant bits
51  uint32_t frame_count; // Frame counter. Uses 16bit GigEVision BlockID. Rolls at 65535.
52 
53  int32_t width; // Image width
54  int32_t height; // Image height
55  uint32_t offset_x; // Start of readout region (left)
56  uint32_t offset_y; // Start of readout region (top)
57 
58  // cppcheck complains about storing a double in a struct which is memset
59  // so the timestamp is split into two unsigned ints
60  uint32_t timestamp_secs; // Time stamp in seconds
61  uint32_t timestamp_frac; // Fractional value of time stamp
62 
63 } ArvFrame;
64 
66 enum class ArvDatatype {
67  ARV_DATA_TYPE_UNKNOWN = 0,
68  ARV_DATA_TYPE_COMMAND,
69  ARV_DATA_TYPE_ENUM,
70  ARV_DATA_TYPE_BOOLEAN,
71  ARV_DATA_TYPE_INTEGER,
72  ARV_DATA_TYPE_STRING,
73  ARV_DATA_TYPE_FLOAT,
74  //_ARV_DATA_TYPE_FORCE_32 = 0xFFFFFFFF
75  _ARV_DATA_TYPE_FORCE_32 = INT_MAX
76 };
77 
79 typedef struct {
80  ArvDatatype data_type; // Data type
81  unsigned long flags; // Currently not used
82  gint64 int_max;
83  gint64 int_min;
84  double float_max;
85  double float_min;
87 
88 }
89 
90 #endif // CCF_PROTOCOLS_ARAVIS_LIB_DEFINES_HPP_H_
ccf::protocols::aravis::ArvFrame::timestamp_frac
uint32_t timestamp_frac
Definition: defines.hpp:61
ccf::protocols::aravis::ArvFrame::status
ArvBufferStatus status
Definition: defines.hpp:44
ccf::protocols::aravis
Definition: comAdptAravis.cpp:26
ccf::protocols::aravis::ArvFrame::ancillary_buffer
void * ancillary_buffer
Definition: defines.hpp:24
ccf::protocols::aravis::ArvDatatype::ARV_DATA_TYPE_UNKNOWN
@ ARV_DATA_TYPE_UNKNOWN
ccf::protocols::aravis::ArvFrame::width
int32_t width
Definition: defines.hpp:53
ccf::protocols::aravis::ArvFrame::ancillary_buffer_size
unsigned long ancillary_buffer_size
Definition: defines.hpp:39
ccf::protocols::aravis::ArvFrame::offset_x
uint32_t offset_x
Definition: defines.hpp:55
ccf::protocols::aravis::ARAVIS_INFINITE
const auto ARAVIS_INFINITE
Never timeout.
Definition: defines.hpp:15
ccf::protocols::aravis::ArvAttributeInfo::float_min
double float_min
Definition: defines.hpp:85
ccf::protocols::aravis::ArvFrame::height
int32_t height
Definition: defines.hpp:54
ccf::protocols::aravis::ArvFrame::image_size
int64_t image_size
Definition: defines.hpp:48
ccf::protocols::aravis::ArvFrame::image_buffer_size
unsigned long image_buffer_size
Definition: defines.hpp:22
ccf::protocols::aravis::ArvDatatype
ArvDatatype
Aravis data types defined.
Definition: defines.hpp:66
ccf::protocols::aravis::ArvAttributeInfo::int_min
gint64 int_min
Definition: defines.hpp:83
ccf::protocols::aravis::ArvAttributeInfo::data_type
ArvDatatype data_type
Definition: defines.hpp:80
ccf::protocols::aravis::ArvFrame::aravis_buffer
ArvBuffer * aravis_buffer
Definition: defines.hpp:20
ccf::protocols::aravis::ArvFrame
Image in which to store frames received.
Definition: defines.hpp:18
ccf::protocols::aravis::ArvFrame::image_buffer
const void * image_buffer
Definition: defines.hpp:21
ccf::protocols::aravis::ArvAttributeInfo
Aravis attribute info.
Definition: defines.hpp:79
ccf::protocols::aravis::ArvFrame::payload
ArvBufferPayloadType payload
Definition: defines.hpp:45
ccf::protocols::aravis::ArvAttributeInfo::int_max
gint64 int_max
Definition: defines.hpp:82
ccf::protocols::aravis::ArvFrame::bit_depth
uint32_t bit_depth
Definition: defines.hpp:50
ccf::protocols::aravis::ArvAttributeInfo::flags
unsigned long flags
Definition: defines.hpp:81
ccf::protocols::aravis::ArvFrame::ancillary_size
uint32_t ancillary_size
Definition: defines.hpp:49
ccf::protocols::aravis::ArvFrame::frame_id
uint64_t frame_id
Definition: defines.hpp:47
ccf::protocols::aravis::ArvFrame::offset_y
uint32_t offset_y
Definition: defines.hpp:56
ccf::protocols::aravis::ArvFrame::timestamp_secs
uint32_t timestamp_secs
Definition: defines.hpp:60
ccf::protocols::aravis::ArvFrame::frame_count
uint32_t frame_count
Definition: defines.hpp:51
ccf::protocols::aravis::ArvAttributeInfo::float_max
double float_max
Definition: defines.hpp:84
ccf::protocols::aravis::ArvFrame::pixel_format
ArvPixelFormat pixel_format
Definition: defines.hpp:46