versadac
1
versadac - Scalable Recorder Firmware
Main Page
Classes
Files
File List
File Members
core
ethernetip
eips_system.h
1
/*
2
* Copyright (c) 2002-2013 by Real Time Automation, Inc.
3
*
4
* This software is copyrighted by and is the sole property of
5
* Real Time Automation, Inc. (RTA). All rights, title, ownership,
6
* or other interests in the software remain the property of RTA.
7
* This software may only be used in accordance with the corresponding
8
* license agreement. Any unauthorized use, duplication, transmission,
9
* distribution, or disclosure of this software is expressly forbidden.
10
*
11
* This Copyright notice MAY NOT be removed or modified without prior
12
* written consent of RTA.
13
*
14
* RTA reserves the right to modify this software without notice.
15
*
16
* Real Time Automation
17
* 150 S. Sunny Slope Road USA 262.439.4999
18
* Suite 130 www.rtaautomation.com
19
* Brookfield, WI 53005 software@rtaautomation.com
20
*
21
*************************************************************************
22
*
23
* Version Date: 18APR2013
24
* Version: 2.33
25
* Conformed To: EtherNet/IP Protocol Conformance Test A-9 (16-NOV-2011)
26
* Module Name: eips_system.h
27
* Author: Jamin D. Wendorf (jwendorf@rtaautomation.com)
28
* Language: Ansi C
29
* Compile Options: N/A
30
* Compile defines: N/A
31
* Libraries: N/A
32
* Link Options: N/A
33
*
34
* Description.
35
* =======================================================================
36
* This file contains EtherNet/IP Server specific definitions.
37
*
38
*/
39
40
#ifndef __EIPS_SYSTEM_H__
41
#define __EIPS_SYSTEM_H__
42
43
/*#define EUROTHERM_VXWORKS 1 */
44
45
#define EIPS_UDP_BIDIR 0
46
#define EIPS_UDP_RXONLY 1
47
#define EIPS_UDP_TXONLY 2
48
49
#define EIP_CIP_PORT 44818
50
#define EIPS_UDPIO_PORT 2222
51
52
/* NOTE: There are only 5 service codes available to the user, the rest are
53
handled by the standard code. If Set_Attribute_Single is supported, then
54
Get_Attribute_Single MUST be supported. The same is NOT true with
55
Set_Attribute_All and Get_Attribute_All. Each entry in the table can only
56
have one mask value. This makes processing easier. */
57
#define EIPS_SCMASK_GETALL 0x01
58
#define EIPS_SCMASK_SETALL 0x02
59
#define EIPS_SCMASK_GETSNG 0x04
60
#define EIPS_SCMASK_SETSNG 0x08
61
#define EIPS_SCMASK_RESET 0x10
62
63
/* DeviceNet Data Type */
64
#define EIPS_TYPE_UINT8 0
65
#define EIPS_TYPE_UINT16 1
66
#define EIPS_TYPE_UINT32 2
67
#define EIPS_TYPE_INT8 3
68
#define EIPS_TYPE_INT16 4
69
#define EIPS_TYPE_INT32 5
70
#define EIPS_TYPE_FLOAT 6
71
#define EIPS_TYPE_UNUSED 7
72
73
#define EIPS_CPF_ADDR_ITEM 0
74
#define EIPS_CPF_DATA_ITEM 1
75
#define EIPS_CPF_OPT_ITEM 2
/* CIP doesn't use these (always 2) */
76
#define EIPS_CPF_SOCKO2T_ITEM 2
77
#define EIPS_CPF_SOCKT2O_ITEM 3
78
#define EIPS_CPF_MAX_ITEM_CNT 4
79
80
/* List Services Capability Flags (Encap 0x0004)
81
---------------------------------------------
82
bits 0 - 4 : reserved
83
bit 5 : 1 = CIP over TCP supported, else 0
84
bits 6 - 7 : reserved
85
bit 8 : 1 = Supports CIP Class 0/1 UDP (I/O)
86
bits 9 - 15 : reserved
87
*/
88
#define EIP_LIST_SERVICES_CAP_FLAGS 0x0120
89
90
#define SOCKTYPE_TCP 0
91
#define SOCKTYPE_UDP 1
92
93
#define EIP_SESSION_STATE_UNUSED 0
94
#define EIP_SESSION_STATE_USED 1
95
96
/*
97
-------------------------------------------------------------------
98
NORMAL INITIALIZATION (0)
99
-------------------------------------------------------------------
100
Emulate as closely as possible cycling power on the item the Object
101
represents. This value is the default if this parameter is omitted.
102
103
-------------------------------------------------------------------
104
OUT OF BOX INITIALIZATION (1)
105
-------------------------------------------------------------------
106
Return as closely as possible to the out–of–box configuration, then
107
emulate cycling power as closely as possible.
108
*/
109
#define EIPSINIT_NORMAL 0x00
110
#define EIPSINIT_OUTOFBOX 0x01
111
#define EIPSINIT_OUTOFBOX_NOCOMM 0x02
112
#define EIPCINIT_NORMAL EIPSINIT_NORMAL
113
#define EIPCINIT_OUTOFBOX EIPSINIT_OUTOFBOX
114
115
/* Valid EIP Server States */
116
#define EIPS_STATE_RESETNORMAL 0
117
#define EIPS_STATE_RESETOUTOFBOX 1
118
/* #define EIPS_STATE_RESETOUTOFBOX_NOCOMM 2 */
119
#define EIPS_STATE_RUNNING 255
120
121
#define EIPS_TIMER_NULL 0xFFFF
122
123
/* RTA DEFINED MACROS */
124
#define RTA_MIN(a,b) (a<b?a:b)
125
#define RTA_CIP_INST_TO_IX(a) (a>0?(a-1):a)
126
#include "EthernetIP_interface.h"
127
#include "EthernetIP_enums.h"
128
129
/* --------------------------------------------------------------- */
130
/* EIPS STANDARD INCLUDE FILES */
131
/* --------------------------------------------------------------- */
132
#include "eips_usersys.h"
133
#include "eips_userobj.h"
134
#include "eips_usersock.h"
135
#include "eips_encap.h"
136
#include "eips_cpf.h"
137
#include "eips_struct.h"
138
#include "eips_cnxn.h"
139
#include "eips_proto.h"
140
#include "eips_revision.h"
141
#include "eips_iomsg.h"
142
143
#ifdef EIPC_CLIENT_USED
144
#include "eipc_client.h"
145
146
#ifdef EIPC_CCO_CLIENT_USED
147
#include "eipc_cco.h"
148
#endif
149
#endif
150
151
#if defined (EIPS_CIP_READ_WRITE_DATA_LOGIX) && defined (EIPS_CIP_READ_WRITE_DATA_LOGIX_ADVANCED)
152
#error "Can't support EIPS_CIP_READ_WRITE_DATA_LOGIX and EIPS_CIP_READ_WRITE_DATA_LOGIX_ADVANCED"
153
#endif
154
155
#if defined (EIPS_CIP_READ_WRITE_DATA_LOGIX) || defined (EIPS_CIP_READ_WRITE_DATA_LOGIX_ADVANCED)
156
#include "eips_tag.h"
157
#endif
158
159
extern
bool
eips_is_server_mode (
void
);
160
extern
bool
eips_get_mode (
void
);
161
/* --------------------------------------------------------------- */
162
/* BEGIN: EIP TIMER DEFINITIONS (DON'T DEFINE MORE THAN WE NEED) */
163
/* --------------------------------------------------------------- */
164
165
//EIPS_USER_MAX_NUM_TIMERS - User defined, default is 0
166
//EIPS_CNXN_MAXTOTALCNXNS - 1 per for Class 3 EM as a server/adapter
167
//EIPS_USER_MAX_NUM_IO_CNXNS - 2 per for Class 1 IO as a server/adapter
168
//EIPC_USERSYS_MAX_NUM_SERVERS - 1 per for general use as a client/scanner
169
//EIPC_USERSYS_MAX_NUM_SERVERS - 1 per for class 3 EM use as a client/scanner
170
#ifdef EUROTHERM_VXWORKS
171
#define EIPC_IO_MAX_NUM_IO_SERVERS 2 //2 per client/scanner for I/O
172
#endif
173
174
/* conditionally add timers for optional client functionality */
175
#ifdef EIPC_CLIENT_USED
176
#define RTA_MAX_NUM_CLIENT_TIMERS EIPC_USERSYS_MAX_NUM_SERVERS
177
#else
178
#define RTA_MAX_NUM_CLIENT_TIMERS 0
179
#endif
180
181
/* conditionally add timers for optional client explicit connection functionality */
182
#ifdef EIPC_EM_CLASS3_CNXN_USED
183
#define RTA_MAX_NUM_EM_CLIENT_TIMERS EIPC_USERSYS_MAX_NUM_SERVERS
184
#else
185
#define RTA_MAX_NUM_EM_CLIENT_TIMERS 0
186
#endif
187
188
/* conditionally add timers for optional client I/O functionality */
189
#define RTA_MAX_NUM_IO_CLIENT_TIMERS (EIPC_IO_MAX_NUM_IO_SERVERS * 2)
190
191
/* make sure we have enough timers (add one since we are 1 based (0 is invalid)) */
192
#define RTA_MAX_NUM_TIMERS ( 1 + (EIPS_CNXN_MAXTOTALCNXNS) \
193
+ (EIPS_USER_MAX_NUM_IO_CNXNS*2) \
194
+ EIPS_USER_MAX_NUM_TIMERS \
195
+ RTA_MAX_NUM_CLIENT_TIMERS \
196
+ RTA_MAX_NUM_EM_CLIENT_TIMERS \
197
+ RTA_MAX_NUM_IO_CLIENT_TIMERS )
198
199
/* --------------------------------------------------------------- */
200
/* END: EIP TIMER DEFINITIONS */
201
/* --------------------------------------------------------------- */
202
203
#endif
/* __EIPS_SYSTEM_H__ */
Generated on Wed Aug 19 2020 10:33:41 for versadac by
1.8.9.1