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