AJA NTV2 SDK  18.1.0.2262
NTV2 SDK 18.1.0.2262
ntv42message.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #ifdef __cplusplus
12 extern "C"
13 {
14 #endif
15 
16 #define NTV42_MESSAGE_VERSION 1
17 #define NTV42_MESSAGE_TAG 0x6e657642
18 #define NTV42_MESSAGE_INIT(MSG, TYPE, FLAGS) \
19  do { \
20  (MSG)->header.tag = NTV42_MESSAGE_TAG; \
21  (MSG)->header.version = NTV42_MESSAGE_VERSION; \
22  (MSG)->header.type = (TYPE); \
23  (MSG)->header.size = sizeof(MSG); \
24  (MSG)->header.flags = (FLAGS); \
25  (MSG)->header.status = 0; \
26  (MSG)->trailer.size = sizeof(MSG); \
27  } while (0);
28 #define NTV42_HEADER_VERIFY(MSG) \
29  (((MSG)->tag == NTV42_MESSAGE_TAG) && \
30  ((MSG)->version == NTV42_MESSAGE_VERSION))
31 #define NTV42_MESSAGE_VERIFY(MSG, TYPE) \
32  (((MSG)->header.tag == NTV42_MESSAGE_TAG) && \
33  ((MSG)->header.version == NTV42_MESSAGE_VERSION) && \
34  ((MSG)->header.type == (TYPE)) && \
35  ((MSG)->header.size == sizeof(MSG)) && \
36  ((MSG)->trailer.size == sizeof(MSG)))
37 
39 #define NTV42_MESSAGE_FLAG_RW 0x00000001
40 
41 typedef struct ntv42_message_header_t {
42  uint32_t tag; // ntv42 message tag
43  uint32_t version; // ntv42 message version
44  uint32_t type; // message type
45  uint32_t size; // message size
46  uint32_t flags; // message action flags
47  uint32_t status; // message return status
49 
51 typedef struct ntv42_message_trailer_t {
52  uint32_t size; // message size
54 
55 #define NTV42_MESSAGE_SUCCESS 0
56 #define NTV42_MESSAGE_FAIL 1
57 
59 #define NTV42_DEVICE_INFO_TYPE 1
60 #define NTV42_DEVICE_INFO_INIT(MSG) NTV42_MESSAGE_INIT((MSG), (NTV42_DEVICE_INFO_TYPE), NTV42_MESSAGE_FLAG_RW)
61 #define NTV42_DEVICE_INFO_VERIFY(MSG) NTV42_MESSAGE_VERIFY((MSG), (NTV42_DEVICE_INFO_TYPE))
62 
63 #define NTV42_DEVICE_INFO_NAME_MAX 16
64 #define NTV42_DEVICE_INFO_DESC_MAX 32
65 
68  char name[NTV42_DEVICE_INFO_NAME_MAX]; // Message oriented device name
69  char desc[NTV42_DEVICE_INFO_DESC_MAX]; // A user oriented description of the device
70  char serial[NTV42_DEVICE_INFO_DESC_MAX]; // Serial number or other way to uniquely identify the device
73 
74 
76 #define NTV42_REGIO_TYPE 2
77 #define NTV42_REGIO_INIT(MSG) NTV42_MESSAGE_INIT((MSG), (NTV42_REGIO_TYPE), NTV42_MESSAGE_FLAG_RW)
78 #define NTV42_REGIO_VERIFY(MSG) NTV42_MESSAGE_VERIFY((MSG), (NTV42_REGIO_TYPE))
79 
80 #define NTV42_REGIO_FLAG_READ 0x00000001
81 #define NTV42_REGIO_FLAG_WRITE 0x00000002
82 #define NTV42_REGIO_FLAG_32BIT 0x00000100
83 
84 typedef struct ntv42_message_regio_t {
86  uint32_t reg; // register byte address
87  uint32_t flags; // control flags
88  uint32_t mask; // data mask
89  uint32_t shift; // data shift
90  uint32_t data; // data
93 
94 
95 #ifdef __cplusplus
96 }
97 #endif
#define NTV42_DEVICE_INFO_NAME_MAX
Definition: ntv42message.h:63
ntv42_message_header_t header
Definition: ntv42message.h:67
struct ntv42_message_regio_t ntv42_message_regio_t
ntv42_message_trailer_t trailer
Definition: ntv42message.h:71
struct ntv42_message_header_t ntv42_message_header_t
ntv42_message_header_t header
Definition: ntv42message.h:85
struct ntv42_message_device_info_t ntv42_message_device_info_t
#define NTV42_DEVICE_INFO_DESC_MAX
Definition: ntv42message.h:64
struct ntv42_message_trailer_t ntv42_message_trailer_t
ntv42_message_trailer_t trailer
Definition: ntv42message.h:91