39 #ifndef __EIPC_CLIENT_H__
40 #define __EIPC_CLIENT_H__
43 #include "eipc_usersys.h"
50 #define EIPC_CLIENT_IOSERVERSTATE_NONEXIST 0x00
51 #define EIPC_CLIENT_IOSERVERSTATE_IOCONNECTED 0x01
54 #define EIPC_CLIENT_UCMMSERVERSTATE_NONEXIST 0x00
55 #define EIPC_CLIENT_UCMMSERVERSTATE_REGSES 0x01
56 #define EIPC_CLIENT_UCMMSERVERSTATE_READY 0x02
57 #define EIPC_CLIENT_UCMMSERVERSTATE_BUSY 0x03
60 #define EIPC_CLIENT_IOCNXNTYPE_NULL 0x00
61 #define EIPC_CLIENT_IOCNXNTYPE_MULTICAST 0x20
62 #define EIPC_CLIENT_IOCNXNTYPE_POINT2POINT 0x40
63 #define EIPC_CLIENT_IOCNXNTYPE_RESERVED 0x60
64 #define EIPC_CLIENT_IOCNXNTYPE_ANDVAL 0x60
67 #define EIPC_CLIENT_IOPRIORITY_LOW 0x00
68 #define EIPC_CLIENT_IOPRIORITY_HIGH 0x04
69 #define EIPC_CLIENT_IOPRIORITY_SCHED 0x08
70 #define EIPC_CLIENT_IOPRIORITY_URGENT 0x0C
71 #define EIPC_CLIENT_IOPRIORITY_ANDVAL 0x0C
74 #define EIPC_CLIENT_OWNERSHIP_EXCLUSIVE 0x00
75 #define EIPC_CLIENT_OWNERSHIP_INPUTONLY 0x01
76 #define EIPC_CLIENT_OWNERSHIP_LISTENONLY 0x02
77 #define EIPC_CLIENT_OWNERSHIP_REDUNDANT 0x80
78 #define EIPC_CLIENT_OWNERSHIP_ANDVAL 0x80
81 #define EIPC_CLIENT_IOMODE_IDLE 0
82 #define EIPC_CLIENT_IOMODE_RUN 1
85 #define EIPC_USERSYS_CNXNXPORT 1
88 #define EIPC_CLIENT_OPENERR_SERVHAND 0x01
89 #define EIPC_CLIENT_OPENERR_IOEXISTS 0x02
90 #define EIPC_CLIENT_OPENERR_T2ONULL 0x03
91 #define EIPC_CLIENT_OPENERR_CONFIGPTR 0x04
92 #define EIPC_CLIENT_OPENERR_UCMMBUSY 0x05
95 #define EIPC_CLIENT_OPENERR_O2T_RPI 0x11
96 #define EIPC_CLIENT_OPENERR_O2T_DATAPTR 0x12
99 #define EIPC_CLIENT_OPENERR_T2O_RPI 0x21
100 #define EIPC_CLIENT_OPENERR_T2O_DATAPTR 0x22
103 #define EIPC_CLIENT_UCMMERR_SUCCESS 0
104 #define EIPC_CLIENT_UCMMERR_SERVHAND -1
105 #define EIPC_CLIENT_UCMMERR_BUSY -2
106 #define EIPC_CLIENT_UCMMERR_FORMAT -3
107 #define EIPC_CLIENT_UCMMERR_RSPFUNCPTR -4
108 #define EIPC_CLIENT_UCMMERR_TMOINVALID -5
109 #define EIPC_CLIENT_UCMMERR_TAGCNT -6
110 #define EIPC_CLIENT_UCMMERR_TAGPTR -7
111 #define EIPC_CLIENT_UCMMERR_TAGFMT -8
112 #define EIPC_CLIENT_UCMMERR_PLCTYPEINVALID -9
118 #ifdef EUROTHERM_VXWORKS
135 uint8 ProductName[32];
138 }EIPC_LIST_IDENTITY_STRUCT;
152 void (*IOChgFuncPtr) (uint16 server_handle, uint8 cnxnpt_id, uint16 size_written);
158 EIPS_USERSYS_SOCKTYPE SockID;
164 uint32 SequenceNumber;
191 uint16 ext_stat[EIPC_USERSYS_EXT_STAT_SIZE];
192 uint16 rsp_data_size;
193 uint8 rsp_data[EIPC_USERSYS_RSP_DATA_SIZE];
207 bool inst_addressing_16bit;
213 #ifdef EIPC_TAG_CLIENT_USED
217 #define EIPC_USEROBJ_TAGNAME_SIZE EIP_MAX_TAGNAME_SIZE
218 #define EIPC_USEROBJ_TAGDATA_SIZE 256
219 #define EIPC_USEROBJ_MAXTAGS_PER_MSG EIP_MAX_NUMBER_OF_TAGS
220 #define EIPC_USEROBJ_MINTMOVAL 100
228 char tag_name[EIPC_USEROBJ_TAGNAME_SIZE];
233 uint16 tag_num_elements;
240 uint16 tag_data_type;
242 uint8 tag_data_ptr[EIPC_USEROBJ_TAGDATA_SIZE];
256 void (*tagrsp_func_ptr) (uint16 server_handle, uint8 status, uint16 tag_cnt,
EIPC_TAG_STRUCT *);
260 #ifdef EIPC_PCCC_CLIENT_USED
264 #define EIPC_USEROBJ_PCCCDATA_SIZE 256
265 #define EIPC_USEROBJ_MINTMOVAL 100
266 #define EIPC_PCCC_PLC_TYPE_SLC505 0
267 #define EIPC_PCCC_PLC_TYPE_PLC5E 1
281 uint16 pccc_file_num;
282 uint16 pccc_file_offset;
283 uint8 pccc_data_type;
284 char pccc_file_string[10];
285 uint16 pccc_element_size_in_bytes;
286 uint16 pccc_num_elements;
288 uint16 pccc_data_len;
289 uint8 pccc_data_ptr[EIPC_USEROBJ_PCCCDATA_SIZE];
297 EIPC_PCCC_STRUCT pccc_ptr;
300 void (*pcccrsp_func_ptr) (uint16 server_handle, uint8 status, int8 rta_status, uint16 rsp_size, uint8 *rsp_data);
301 }EIPC_PCCC_REQUEST_STRUCT;
314 EIPS_USERSYS_SOCKTYPE SockID;
334 #ifdef EIPC_TAG_CLIENT_USED
336 void (*TagRspFuncPtr) (uint16 server_handle, uint8 status, uint16 tag_cnt,
EIPC_TAG_STRUCT *);
339 #ifdef EIPC_PCCC_CLIENT_USED
342 void (*PcccRspFuncPtr) (uint16 server_handle, uint8 status, int8 rta_status, uint16 rsp_size, uint8 *rsp_data);
350 void eipc_usersys_init (
void);
351 void eipc_usersys_process (
void);
352 void eipc_usersys_newConsumeData (uint16 server_handle, uint8 cnxn_id);
353 void eipc_usersys_IOStateChanged (uint16 server_handle, uint8 io_server_state);
354 void eipc_usersys_UCMMStateChanged (uint16 server_handle, uint8 ucmm_server_state);
359 EIPS_USERSYS_SOCKTYPE eips_usersock_connect(uint32 ipaddr);
360 EIPS_USERSYS_SOCKTYPE eips_usersock_openUDPIOSocket (uint16 port, uint8 type);
361 EIPS_USERSYS_SOCKTYPE eips_usersock_joinMulitcast(EIPS_USERSYS_SOCKTYPE sockid, uint32 ipaddr, uint16 port);
362 void eips_usersock_leaveMulitcast(EIPS_USERSYS_SOCKTYPE sockid, uint32 ipaddr, uint16 port);
368 uint16 eipc_client_connectToServer (uint32 ip_addr);
369 void eipc_client_disconnectFromServer (uint16 server_handle);
371 void eipc_client_closeIOConnection (uint16 server_handle);
372 void eipc_client_newProduceData (uint16 server_handle, uint8 cnxn_id);
374 void eipc_client_changeToRunMode (
void);
375 void eipc_client_changeToIdleMode (
void);
378 void eipc_client_init (
void);
379 void eipc_client_process (
void);
380 void eipc_client_onConnect (EIPS_USERSYS_SOCKTYPE socket_id);
381 void eipc_client_onClose (EIPS_USERSYS_SOCKTYPE socket_id);
382 uint16 eipc_client_onTCPData (EIPS_USERSYS_SOCKTYPE socket_id, uint8 * socket_data, uint16 socket_data_size);
383 void eipc_client_onUDPData (uint32 ipaddr, uint8 * socket_data, uint16 socket_data_size);
385 #ifdef EIPC_TAG_CLIENT_USED
391 #ifdef EIPC_PCCC_CLIENT_USED
393 int16 eipc_client_sendPcccRead (uint16 server_handle, EIPC_PCCC_REQUEST_STRUCT *pccc_ptr);
394 int16 eipc_client_sendPcccWrite (uint16 server_handle, EIPC_PCCC_REQUEST_STRUCT *pccc_ptr);
400 void eips_rtasys_onTCPConnect (EIPS_USERSYS_SOCKTYPE socket_id);
Definition: zlib_deflate.c:118
Definition: eipc_client.h:246
Definition: eipc_client.h:142
Definition: eipc_client.h:225
Definition: eipc_client.h:197
Definition: eipc_client.h:305
Definition: eipc_client.h:156
Definition: eipc_client.h:187
Definition: eipc_client.h:172
Definition: eipc_client.h:180