23 #define capStrOf(A) #A
24 #define capStrOfX(A) capStrOf ( A )
30 #define CA_MAJOR_PROTOCOL_REVISION 4
31 #define CA_VERSION_STRING( MINOR_REVISION ) \
32 ( capStrOfX ( CA_MAJOR_PROTOCOL_REVISION ) "." capStrOfX ( MINOR_REVISION ) )
33 #define CA_UKN_MINOR_VERSION 0u
34 #define CA_MINIMUM_SUPPORTED_VERSION 4u
35 # define CA_VSUPPORTED(MINOR) ((MINOR)>=CA_MINIMUM_SUPPORTED_VERSION)
36 # define CA_V41(MINOR) ((MINOR)>=1u)
37 # define CA_V42(MINOR) ((MINOR)>=2u)
38 # define CA_V43(MINOR) ((MINOR)>=3u)
39 # define CA_V44(MINOR) ((MINOR)>=4u)
40 # define CA_V45(MINOR) ((MINOR)>=5u)
41 # define CA_V46(MINOR) ((MINOR)>=6u)
42 # define CA_V47(MINOR) ((MINOR)>=7u)
43 # define CA_V48(MINOR) ((MINOR)>=8u)
44 # define CA_V49(MINOR) ((MINOR)>=9u)
45 # define CA_V410(MINOR) ((MINOR)>=10u)
46 # define CA_V411(MINOR) ((MINOR)>=11u)
47 # define CA_V412(MINOR) ((MINOR)>=12u)
48 # define CA_V413(MINOR) ((MINOR)>=13u)
56 #define CA_PORT_BASE IPPORT_USERRESERVED + 56U
57 #define CA_SERVER_PORT (CA_PORT_BASE+CA_MAJOR_PROTOCOL_REVISION*2u)
58 #define CA_REPEATER_PORT (CA_PORT_BASE+CA_MAJOR_PROTOCOL_REVISION*2u+1u)
64 #define ETHERNET_MAX_UDP ( 1500u - 20u - 8u )
65 #define MAX_UDP_RECV ( 0xffff + 16u )
66 #define MAX_UDP_SEND 1024u
67 #define MAX_TCP ( 1024 * 16u )
68 #define MAX_MSG_SIZE ( MAX_TCP )
70 #define CA_PROTO_PRIORITY_MIN 0u
71 #define CA_PROTO_PRIORITY_MAX 99u
78 typedef unsigned char ca_uint8_t;
79 typedef unsigned short ca_uint16_t;
80 typedef unsigned int ca_uint32_t;
81 typedef float ca_float32_t;
82 typedef ca_uint32_t caResId;
84 #define ca_uint32_max 0xffffffff
87 #define CA_PROTO_VERSION 0u
88 #define CA_PROTO_EVENT_ADD 1u
89 #define CA_PROTO_EVENT_CANCEL 2u
90 #define CA_PROTO_READ 3u
91 #define CA_PROTO_WRITE 4u
92 #define CA_PROTO_SNAPSHOT 5u
93 #define CA_PROTO_SEARCH 6u
94 #define CA_PROTO_BUILD 7u
95 #define CA_PROTO_EVENTS_OFF 8u
96 #define CA_PROTO_EVENTS_ON 9u
97 #define CA_PROTO_READ_SYNC 10u
98 #define CA_PROTO_ERROR 11u
99 #define CA_PROTO_CLEAR_CHANNEL 12u
100 #define CA_PROTO_RSRV_IS_UP 13u
101 #define CA_PROTO_NOT_FOUND 14u
102 #define CA_PROTO_READ_NOTIFY 15u
103 #define CA_PROTO_READ_BUILD 16u
104 #define REPEATER_CONFIRM 17u
105 #define CA_PROTO_CREATE_CHAN 18u
106 #define CA_PROTO_WRITE_NOTIFY 19u
107 #define CA_PROTO_CLIENT_NAME 20u
108 #define CA_PROTO_HOST_NAME 21u
109 #define CA_PROTO_ACCESS_RIGHTS 22u
110 #define CA_PROTO_ECHO 23u
111 #define REPEATER_REGISTER 24u
112 #define CA_PROTO_SIGNAL 25u
113 #define CA_PROTO_CREATE_CH_FAIL 26u
114 #define CA_PROTO_SERVER_DISCONN 27u
116 #define CA_PROTO_LAST_CMMD CA_PROTO_SERVER_DISCONN
128 #define sequenceNoIsValid 1
131 #define OCT_ROUND(A) (((A)+7)/8)
132 #define OCT_SIZEOF(A) (OCT_ROUND(sizeof(A)))
135 #define QUAD_ROUND(A) ((A)+3)/4)
136 #define QUAD_SIZEOF(A) (QUAD_ROUND(sizeof(A)))
139 #define BI_ROUND(A) (((A)+1)/2)
140 #define BI_SIZEOF(A) (BI_ROUND(sizeof(A)))
147 #define CA_PROTO_ACCESS_RIGHT_READ (1u<<0u)
148 #define CA_PROTO_ACCESS_RIGHT_WRITE (1u<<1u)
158 #define CA_MESSAGE_ALIGN(A) (OCT_ROUND(A)<<3u)
164 typedef struct ca_hdr {
166 ca_uint16_t m_postsize;
167 ca_uint16_t m_dataType;
170 ca_uint32_t m_available;
179 ca_float32_t m_toval;
187 #define unreasonablePVNameSize 500u