versadac  1
versadac - Scalable Recorder Firmware
pnio_pdu.h
1 /*---------------------------------------------------------------------------*/
2 /* Copyright (C) 2006 Woodhead Software & Electonics. All rights reserved. */
3 /*---------------------------------------------------------------------------*/
4 /* This program is protected by international copyright. */
5 /* */
6 /* The use of this software including but not limited to its Source Code */
7 /* is subject to restrictions as agreed in the license agreement between */
8 /* you and Woodhead. */
9 /* Copying or distribution is not allowed unless expressly permitted */
10 /* according to your license agreement with Woodhead. */
11 /*---------------------------------------------------------------------------*/
12 /* */
13 /* Project : STACK PROFINET Controller */
14 /* Component : PDU of PNIO acyclic message */
15 /* $Workfile:: pnio_pdu.h $*/
16 /* $Revision:: 9 $*/
17 /* $Date:: 24/02/12 11:59 $*/
18 /* */
19 /*---------------------------------------------------------------------------*/
20 /* */
21 /* D e s c r i p t i o n : */
22 /* */
23 /* */
24 /*---------------------------------------------------------------------------*/
25 
26 
27 #ifndef _PNIO_ACYCLIC_PDU_H_
28 #define _PNIO_ACYCLIC_PDU_H_
29 
30 #define NAMELEN 240
31 
32 /* APPSTATUS define 5.2.12.76*/
33 /* ErrorCode*/
34 #define STS_APP 0x81
35 #define STS_RTAERROR 0xCF
36 #define STS_ALARMACK 0xDA
37 #define STS_IODCONNECTRES 0xDB
38 #define STS_IODRELEASERES 0xDC
39 #define STS_IOXCONNECTRES 0xDD
40 #define STS_IODREADRES 0xDE
41 #define STS_IODWRITERES 0xDF
42 
43 /* ErrorDecode*/
44 #define STS_ED_APPRW 0x80
45 #define STS_ED_APP 0x81
46 
47 
48 
49 /* Block Type ---->To be Continued 6.2.1.2 v2.1*/
50 #define BT_ALARMNOTIFICATIONHIGH 0x001
51 #define BT_ALARMNOTIFICATIONLOW 0x002
52 #define BT_WRITERECORDREQ 0x008
53 #define BT_READRECORDREQ 0x009
54 #define BT_DIAGNOSISDATA 0x010
55 #define BT_MULTICASTCONSUINFO 0x011
56 #define BT_EXPECTEDIDENTIFICATION 0x012
57 #define BT_READIDENTIFICATION 0x013
58 #define BT_SUBSTITUTEVALUE 0x014
59 #define BT_LOGDATA 0x019
60 #define BT_ARBLOCKREQ 0x101
61 #define BT_IOCRBLOCKREQ 0x102
62 #define BT_ALARMCRBLOCKREQ 0x103
63 #define BT_EXPECTEDSUBMODULEBLOCKREQ 0x104
64 #define BT_PRMSERVERBLOCKREQ 0x105
65 #define BT_MCRBLOCKREQ 0x106
66 #define BT_SRINFOBLOCKREQ 0x10A
67 #define BT_IODCONTROLBLOCKREQ 0x110
68 #define BT_DCONTROLBLOCKPLUG 0x111
69 #define BT_IOXCONTROLBLOCKREQ 0x112
70 #define BT_CCONTROLBLOCKPLUG 0x113
71 #define BT_RELEASEBLOCKREQ 0x114
72 #define BT_ARRPCBLOCKREQ 0x115
73 
74 #define BT_IODREADREQ 0x0500
75 
76 #define BT_ALARMACKHIGH 0x8001
77 #define BT_ALARMACKLOW 0x8002
78 
79 
80 #define BT_ARBLOCKRES 0x8101
81 #define BT_IOCRBLOCKRES 0x8102
82 #define BT_ALARMCRBLOCKRES 0x8103
83 #define BT_EXPECTEDSUBMODULEBLOCKRES 0x8104
84 #define BT_PRMSERVERBLOCKRES 0x8105
85 #define BT_MCRBLOCKRES 0x8106
86 #define BT_IODCONTROLBLOCKRES 0x8110
87 #define BT_CONTROLBLOCKPLUGRES 0x8111
88 #define BT_IOXCONTROLBLOCKRES 0x8112
89 #define BT_CCONTROLBLOCKPLUGRES 0x8113
90 #define BT_RELEASEBLOCKRES 0x8114
91 #define BT_ARRPCBLOCKRES 0x8115
92 #define BT_WRITERECORDRES 0x8008
93 #define BT_READRECORDRES 0x8009
94 
95 
96 /*********************************************** INTERFACE Data 4 */
97 #define IF_UUIDDATA4 {0x82, 0x71, 0x00,0xA0, 0x24,0x42,0xDF,0x7D}
98 
99 
100 /*********************************************** ACTIVITY UUI Definition*/
101 /* Data1 : DWORD in little endian*/
102 #define ACT_UUIDDATA1 0x00000003
103 /* Data 2*/
104 #define ACT_UUIDDATA2 0x0000
105 /* Data 3*/
106 #define ACT_UUIDDATA3 0x1010
107 
108 /* Data 4*/
109 #define ACT_UUIDDATA4 {0x81,0x9A, 0x08,0x00,0x06,0x6B,0x92,0xEC}
110 
111 /* Block version*/
112 #define BLOCKVERSIONHIGH 1
113 #define BLOCKVERSIONLOW 0
114 
115 /* IOUser Priority */
116 /* 6 --> 110 */
117 /* mask is 1110 0000 0000 0000*/
118 /* then valu must be 1100 0000 0000 0000 */
119 #define IO_CR_PRIORITY 49152L
120 
121 /* AR TYPE 5.2.12.3*/
122 #define IOCRARSINGLE 0x01
123 #define IOCRARSAR 0x06
124 #define IOCARSR 0x20
125 
126 /*IOCR TYPE */
127 #define IOCR_INPUT_CR 1
128 #define IOCR_OUTPUT_CR 2
129 #define IOCR_MULTICAST_PROV 3
130 #define IOCR_MULTICAST_CONS 4
131 
132 /* Alarm CR Type*/
133 #define IOCR_ALARM_CR 1
134 
135 /* Alarm Frame ID */
136 #define FRAMEID_ALM_LOW 0xFE01
137 #define FRAMEID_ALM_HIGH 0xFC01
138 
139 #define MIN_ALARM_LEN 200
140 #define MAX_ALARM_LEN 1432
141 
142 /* FRAME ID Don't care*/
143 #define FRAMEID_OUTPUT_CR 0xFFFF
144 
145 /* PNIO Status Constants*/
146 /* ErrorCode spec v2.1 table 276*/
147 #define ERR_PNIO 0x81
148 #define ERR_RTA 0xCF
149 #define ERR_ALARM_ACK 0XDA
150 #define ERR_IODCONNECT_RES 0XDB
151 #define ERR_IODRELEASE_RES 0XDC
152 #define ERR_IOXCONTROLRES 0XDD
153 #define ERR_IODREADRES 0XDE
154 #define ERR_IODWRITERES 0XDF
155 
156 /* DCP State machine error class */
157 #define ERR_CTXT 1
158 #define ERR_CPROTOCOL 2
159 #define ERR_CINTERNAL 255
160 
161 /* DCP State machine error codes */
162 #define ERR_INVALID_STATE 0
163 #define ERR_TIME_OUT 1
164 
165 #define UDPRTPORT_MAX 0x03FF /* UDP RT port shall be greater than 0x03FF*/
166 
167 #define CONTROL_COMMAND_PRM_END 0x0001
168 #define CONTROL_COMMAND_APPLICATION_READY 0x0002
169 #define CONTROL_COMMAND_RELEASE 0x0004
170 #define CONTROL_COMMAND_DONE 0x0008
171 
172 /* Module State definition */
173 #define MODULE_STATE_NO 0
174 #define MODULE_STATE_WRONG 1
175 #define MODULE_STATE_PROPER 2
176 #define MODULE_STATE_SUSTITUTE 3
177 
178 /*AlarmCrBlockReq 0x0001*/
179 #define ALARM_CR_TYPE 0x0001
180 
181 /* SubModule State definition */
182 #define SUBMODULE_STATE_FORMAT_INDICATOR 0x8000
183 #define SUBMODULE_STATE_FORMAT_IDENTINFO 0x7000
184 #define SUBMODULE_STATE_FORMAT_ARINFO 0x00780
185 #define SUBMODULE_STATE_DETAIL !SUBMODULE_STATE_FORMAT_INDICATOR
186 
187 #define SUBMODULE_STATE_FORMAT_IDENTINFO_OK 0
188 #define SUBMODULE_STATE_FORMAT_IDENTINFO_SUBSTITUTE 1
189 #define SUBMODULE_STATE_FORMAT_IDENTINFO_WRONG 2
190 #define SUBMODULE_STATE_FORMAT_IDENTINFO_NOSUBMODULE 3
191 
192 #define SUBMODULE_STATE_FORMAT_ARINFO_OWN 0
193 #define SUBMODULE_STATE_FORMAT_ARINFO_ARP 1
194 #define SUBMODULE_STATE_FORMAT_ARINFO_SO 2
195 #define SUBMODULE_STATE_FORMAT_ARINFO_IOC 3
196 #define SUBMODULE_STATE_FORMAT_ARINFO_IOS 4
197 #define SUBMODULE_STATE_FORMAT_NOT_CONNECTED 0xffff /* Internal status*/
198 
199 #define SUBMODULE_STATE_DETAIL_NOSUBMODULE 0
200 #define SUBMODULE_STATE_DETAIL_WRONGSUBMODULE 1
201 #define SUBMODULE_STATE_DETAIL_IOCLOCK 2
202 #define SUBMODULE_STATE_DETAIL_ARR 4
203 #define SUBMODULE_STATE_DETAIL_SUBSTITUTE 7
204 
205 
206 #define GET_SUBMODULE_STATE_IDENTINFO(a) (a&SUBMODULE_STATE_FORMAT_IDENTINFO)>>11
207 #define GET_SUBMODULE_STATE_ARINFO(a) (a&SUBMODULE_STATE_FORMAT_ARINFO)>>7
208 #define GET_SUBMODULE_STATE_DETAIL(a) (a&SUBMODULE_STATE_DETAIL)
209 
210 
211 
212 /* INDEX */
213 /* SubModule */
214 #define INDEX_SUBSLOT_EXPECTEDIDENTIFICATIONDATA 0x8000
215 #define INDEX_SUBSLOT_REALIDENTIFICATIONDATA 0x8001
216 #define INDEX_SUBSLOT_DIAGINCHANNELCODING 0x800A
217 #define INDEX_SUBSLOT_DIAGINALLCODING 0x800B
218 #define INDEX_SUBSLOT_DIAGMAINTENANCE 0x800C
219 #define INDEX_SUBSLOT_MAINTENANCEREQUIREDCHANNELCODING 0x8010
220 #define INDEX_SUBSLOT_MAINTENANCEDEMANDEDCHANNELCODING 0x8011
221 #define INDEX_SUBSLOT_MAINTENANCEREQUIREDALLCODING 0x8012
222 #define INDEX_SUBSLOT_MAINTENANCEDEMANDEDALLCODING 0x8013
223 #define INDEX_SUBSLOT_SUBSTITUTE 0x801E
224 #define INDEX_SUBSLOT_RECORDINPUTDATA 0x8028
225 #define INDEX_SUBSLOT_RECORDOUTPUTDATA 0x8029
226 #define INDEX_SUBSLOT_PORTDATAREAL 0x802A
227 #define INDEX_SUBSLOT_PORTDATACHECK 0x802B
228 #define INDEX_SUBSLOT_PDIRDATA 0x802C
229 #define INDEX_SUBSLOT_PDSYNCDATAOVERRTA 0x802D
230 #define INDEX_SUBSLOT_PDSYNCDATAOVERRTC 0x802E
231 #define INDEX_SUBSLOT_PDPORTDATAADJUST 0x802F
232 #define INDEX_SUBSLOT_ISOCHRONOUSMODE 0x8030
233 
234 #define INDEX_SUBSLOT_PDSYNCDATA1 0x8031
235 #define INDEX_SUBSLOT_PDSYNCDATA2 0x8032
236 #define INDEX_SUBSLOT_PDSYNCDATA3 0x8033
237 #define INDEX_SUBSLOT_PDSYNCDATA4 0x8034
238 #define INDEX_SUBSLOT_PDSYNCDATA5 0x8035
239 #define INDEX_SUBSLOT_PDSYNCDATA6 0x8036
240 #define INDEX_SUBSLOT_PDSYNCDATA7 0x8037
241 #define INDEX_SUBSLOT_PDSYNCDATA8 0x8038
242 #define INDEX_SUBSLOT_PDSYNCDATA9 0x8039
243 #define INDEX_SUBSLOT_PDSYNCDATA10 0x803A
244 #define INDEX_SUBSLOT_PDSYNCDATA11 0x803B
245 #define INDEX_SUBSLOT_PDSYNCDATA12 0x803C
246 #define INDEX_SUBSLOT_PDSYNCDATA13 0x803D
247 #define INDEX_SUBSLOT_PDSYNCDATA14 0x803E
248 #define INDEX_SUBSLOT_PDSYNCDATA15 0x803F
249 #define INDEX_SUBSLOT_PDSYNCDATA16 0x8040
250 #define INDEX_SUBSLOT_PDSYNCDATA17 0x8041
251 #define INDEX_SUBSLOT_PDSYNCDATA18 0x8042
252 #define INDEX_SUBSLOT_PDSYNCDATA19 0x8043
253 #define INDEX_SUBSLOT_PDSYNCDATA20 0x8044
254 #define INDEX_SUBSLOT_PDSYNCDATA21 0x8045
255 #define INDEX_SUBSLOT_PDSYNCDATA22 0x8046
256 #define INDEX_SUBSLOT_PDSYNCDATA23 0x8047
257 #define INDEX_SUBSLOT_PDSYNCDATA24 0x8048
258 #define INDEX_SUBSLOT_PDSYNCDATA25 0x8049
259 #define INDEX_SUBSLOT_PDSYNCDATA26 0x804A
260 #define INDEX_SUBSLOT_PDSYNCDATA27 0x804B
261 #define INDEX_SUBSLOT_PDSYNCDATA28 0x804C
262 #define INDEX_SUBSLOT_PDSYNCDATA29 0x804D
263 #define INDEX_SUBSLOT_PDSYNCDATA30 0x804E
264 #define INDEX_SUBSLOT_PDSYNCDATA31 0x804F
265 
266 #define INDEX_SUBSLOT_PDIFMRPDATAREAL 0x8050
267 #define INDEX_SUBSLOT_PDIFMRPDATACHECK 0x8051
268 #define INDEX_SUBSLOT_PDIFMRPDATAADJUST 0x8052
269 
270 
271 #define INDEX_SUBSLOT_PDPORTMRPDATAADJUST 0x8053
272 #define INDEX_SUBSLOT_PDPORTMRPDATAREAL 0x8054
273 
274 #define INDEX_SUBSLOT_PORTFOMRPDATAREAL 0x8060
275 #define INDEX_SUBSLOT_PORTFODATACHECK 0x8061
276 #define INDEX_SUBSLOT_PORTFODATAADJUST 0x8062
277 
278 #define INDEX_SUBSLOT_PDNCDATACHECK 0x8070
279 #define INDEX_SUBSLOT_PDINTERFACEADJUST 0x8071
280 #define INDEX_SUBSLOT_PDPORTSTATISTIC 0x8072
281 
282 #define INDEX_SUBSLOT_PDITFDATA_REAL 0x8080
283 #define INDEX_ARFSU_DATA_ADJUST 0x8090
284 #define INDEX_SUBSLOT_IM0 0xAFF0
285 #define INDEX_SUBSLOT_IM1 0xAFF1
286 #define INDEX_SUBSLOT_IM2 0xAFF2
287 #define INDEX_SUBSLOT_IM3 0xAFF3
288 #define INDEX_SUBSLOT_IM4 0xAFF4
289 #define INDEX_SUBSLOT_IM5 0xAFF5
290 #define INDEX_SUBSLOT_IM6 0xAFF6
291 #define INDEX_SUBSLOT_IM7 0xAFF7
292 #define INDEX_SUBSLOT_IM8 0xAFF8
293 #define INDEX_SUBSLOT_IM9 0xAFF9
294 #define INDEX_SUBSLOT_IM10 0xAFFA
295 #define INDEX_SUBSLOT_IM11 0xAFFB
296 #define INDEX_SUBSLOT_IM12 0xAFFC
297 #define INDEX_SUBSLOT_IM13 0xAFFD
298 #define INDEX_SUBSLOT_IM14 0xAFFE
299 #define INDEX_SUBSLOT_IM15 0xAFFF
300 
301 /* Slot specific */
302 #define INDEX_SLOTEXPECTEDIDENTIFICATION 0xC000
303 #define INDEX_SLOTREALIDENTIFICATION 0xC001
304 #define INDEX_SLOTCHANNELDIAGNOSIS 0xC00A
305 #define INDEX_SLOTALLDIAGNOSIS 0xC00B
306 #define INDEX_SLOTDIAGNOSISMAINTENANCE 0xC00C
307 #define INDEX_SLOTMAINTENANCEREQCHANNEL 0xC010
308 #define INDEX_SLOTMAINTENANCEDEMCHANNEL 0xC011
309 #define INDEX_SLOTMAINTENANCEREQALL 0xC012
310 #define INDEX_SLOTMAINTENANCEDEMALL 0xC013
311 #define INDEX_SLOT_0XC02A 0xC02A
312 #define INDEX_SLOT_0XC02B 0xC02B
313 #define INDEX_SLOT_0XC02C 0xC02C
314 #define INDEX_SLOT_0XC02D 0xC02D
315 #define INDEX_SLOT_0XC02E 0xC02E
316 #define INDEX_SLOT_0XC02F 0xC02F
317 
318 /* AR Specific */
319 #define INDEX_AREXPECTEDIDENTIFICATION 0xE000
320 #define INDEX_ARREALIDENTIFICATION 0xE001
321 #define INDEX_ARMODDIF 0xE002
322 #define INDEX_ARCHANNELDIAGNOSIS 0xE00A
323 #define INDEX_ARALLDIAGNOSIS 0xE00B
324 #define INDEX_ARDIAGNOSISMAINTENANCE 0xE00C
325 
326 #define INDEX_ARMAINTENANCEREQCHANNEL 0xE010
327 #define INDEX_ARMAINTENANCEDEMCHANNEL 0xE011
328 #define INDEX_ARMAINTENANCEREQALL 0xE012
329 #define INDEX_ARMAINTENANCEDEMALL 0xE013
330 #define INDEX_AR_0XE02A 0xE02A
331 #define INDEX_AR_0XE02B 0xE02B
332 #define INDEX_AR_0XE02C 0xE02C
333 #define INDEX_AR_0XE02D 0xE02D
334 #define INDEX_AR_0XE02E 0xE02E
335 #define INDEX_AR_0XE02F 0xE02F
336 #define INDEX_ARISOCHRONOUS 0xE030
337 #define INDEX_ARMULTIPLE 0xE040
338 #define INDEX_ARFSU 0xE050
339 
340 /* API specific */
341 #define INDEX_APIREALIDENTIFICATION 0xF000
342 #define INDEX_APICHANNELDIAGNOSIS 0xF00A
343 #define INDEX_APIALLDIAGNOSIS 0xF00B
344 #define INDEX_APIDIAGNOSISMAINTENANCE 0xF00C
345 #define INDEX_APIMAINTENANCEREQCHANNEL 0xF010
346 #define INDEX_APIMAINTENANCEDEMCHANNEL 0xF011
347 #define INDEX_APIMAINTENANCEREQALL 0xF012
348 #define INDEX_APIMAINTENANCEDEMALL 0xF013
349 #define INDEX_APIARDATA 0xF020
350 
351 /* device specific */
352 #define INDEX_DEVICE_MAINTENANCEDIAG 0xF80C
353 #define INDEX_DEVICE_ARDATA 0xF820
354 #define INDEX_DEVICE_APIDATA 0xF821
355 #define INDEX_DEVICE_LOGDATA 0xF830
356 #define INDEX_DEVICE_PDEVDATA 0xF831
357 #define INDEX_DEVICE_IMFILTERDATA 0xF840
358 #define INDEX_DEVICE_PDREALDATA 0xF841
359 #define INDEX_DEVICE_PDEXPECTEDDATA 0xF842
360 #define INDEX_AUTO_CONFIGURATION 0xF850
361 
362 /* internal management record */
363 #define MDIFF_BLOC_TYPE 0x8104
364 
365 #define RECORD_WSE_DEBUG_INFO 0x7fff /* WSE specific debug record ((see Table 226 — Index (user specific)) */
366 
367 /* record data response blockType */
368 #define EI_BLOC_TYPE 0x0012
369 #define RI_BLOC_TYPE 0x0013
370 #define RECORD_SUBSTITUE_VALUE_ELEMENT_TYPE 0x0014
371 #define RECORD_INPUT_DATA_OBJECT_ELEMENT_TYPE 0x0015
372 #define RECORD_OUTPUT_DATA_OBJECT_ELEMENT_TYPE 0x0016
373 #define ARDATA_BLOC_TYPE 0x0018
374 #define LOGATA_BLOC_TYPE 0x0019
375 #define IM0_BLOC_TYPE 0x0020
376 #define IM1_BLOC_TYPE 0x0021
377 #define IM2_BLOC_TYPE 0x0022
378 #define IM3_BLOC_TYPE 0x0023
379 #define IM4_BLOC_TYPE 0x0024
380 #define APIDATA_BLOC_TYPE 0x001A
381 #define IM0_FILTERDATA_BLOC_TYPE 0x0030 /* I&M0 filter data bloc type */
382 #define PDPORT_DATA_CHCK_BLOC_TYPE 0x0200
383 #define PDPORT_DATA_ADJT_BLOC_TYPE 0x0202
384 #define PDPORT_DATA_REAL_BLOC_TYPE 0x020F
385 #define MRP_IDA_FOR_SUBS_BLOC_TYPE 0x0211
386 #define MRP_IDC_FOR_SUBS_BLOC_TYPE 0x0213
387 #define MRP_IDR_FOR_SUBS_BLOC_TYPE 0x0212
388 #define MRP_PDA_FOR_SUBS_BLOC_TYPE 0x0214
389 #define MRP_PDR_FOR_SUBS_BLOC_TYPE 0x0215
390 #define MRP_CPARAM_BLOC_TYPE 0x0217
391 #define MRP_MPARAM_BLOC_TYPE 0x0216
392 #define PDTITFDATA_REAL_BLOC_TYPE 0x0240
393 #define PDTITFPORT_STATISTIC_BLOC_TYPE 0x0250
394 #define MULTIPLE_BLOCK_HEADER_BLOC_TYPE 0x0400
395 
396 #define FS_HELLO_BLOCK_TYPE 0x0600
397 #define FS_PARAMETERS_BLOCK_TYPE 0x0601
398 #define AR_PD_ITF_FSU_DATAAJUST_BLOCK_TYPE 0x0608
399 #define AR_FSU_DATAAJUST_BLOCK_TYPE 0x0609
400 
401 
402 #define AUTO_CONF_DATA_HEADER_BLOC_TYPE 0x0700
403 #define AUTO_CONF_COMM_DATAHEADER_BLOC_TYPE 0x0701
404 #define AUTO_CONF_CONF_DATAHEADER_BLOC_TYPE 0x0702
405 
406 
407 /* AR res Block */
408 #define AR_BLOC_RES_LEN 30
409 #define AR_BLOC_MAX_RESPONDER_PORT 0x03FF
410 
411 /* CR res Block*/
412 #define CR_BLOC_RES_LEN 8
413 
414 /* Alarm bloc res */
415 #define ALARM_BLOC_RES_LEN 8
416 
417 /* Prm Server res Block */
418 #define PRMSERVER_BLOC_RES_LEN 26
419 
420 /* Read/Write bloc res */
421 #define READ_WRITE_BLOC_RES_LEN 60
422 #define READ_BLOC_RES_LEN 60
423 
424 /* Control res bloc len*/
425 #define CTRL_BLOC_RES_LEN 28
426 #define CTRL_BLOC_REQ_LEN 54
427 
428 
429 /* Control res bloc len*/
430 #define RELEASE_BLOC_RES_LEN 28
431 
432 /*SR info req bloc len*/
433 #define ST_SRINFO_BLOCK_REQ_LEN (ST_SRINFO_BLOCK_REQ_SIZEOF+2)
434 
435 #define DATA_DESCRITION_INPUT 1
436 #define DATA_DESCRITION_OUTPUT 2
437 
438 #define SUBMODULE_PROPERTIES_TYPE_NO_IO_DATA 0
439 #define SUBMODULE_PROPERTIES_TYPE_INPUT_DATA 1
440 #define SUBMODULE_PROPERTIES_TYPE_OUTPUT_DATA 2
441 #define SUBMODULE_PROPERTIES_TYPE_IO_DATA 3
442 
443 /*device checking contsante */
444 
445 
446 /* if the device can do the max, he can do less too */
447 #ifdef AR_DATA_RATE_10GB
448  #define AR_DATA_RATE_MAX AR_DATA_RATE_10GB
449 #else /*AR_DATA_RATE_10GB*/
450 
451  #ifdef AR_DATA_RATE_1GB
452  #define AR_DATA_RATE_MAX AR_DATA_RATE_1GB
453  #else /*AR_DATA_RATE_1GB*/
454 
455  #ifdef AR_DATA_RATE_100MB
456  #define AR_DATA_RATE_MAX AR_DATA_RATE_100MB
457  #else /*AR_DATA_RATE_100MB*/
458  #define AR_DATA_RATE_MAX AR_DATA_RATE_DEFAULT
459 
460  #endif /*AR_DATA_RATE_100MB*/
461 
462  #endif /*AR_DATA_RATE_1GB*/
463 #endif /*AR_DATA_RATE_10GB*/
464 
465 
466 
467 #define AR_TIME_LOW_VALUE 0xDEA00000L
468 #define AR_TIME_MID_VALUE 0x6c97L
469 #define AR_TIME_HIGH_VERSION_VALUE 0x11D1L
470 #define AR_TIME_CLOCK2_VALUE2 0x82L
471 #define AR_TIME_CLOCK2_VALUE1 0x71L
472 
473 #define AR_PROPERTIES_STATE_BACKUP 0
474 #define AR_PROPERTIES_STATE_PRIMARY 1
475 
476 
477 /* AR properties param server is store in Ar properties
478  param server mask is 0001 0000 then the value 0 keep 0
479  the value 1 became 16
480 */
481 #define AR_PROPERTIES_PARAM_SERVER_PRM 0
482 #define AR_PROPERTIES_PARAM_SERVER_CM 16 /*values is 1 but we use 16 to not have to decale bit*/
483 
484 
485 
486 /* AR properties device accees is store in Ar properties
487  param server mask is 0000 0001 0000 0000 the value 0 keep 0
488  the value 1 became 256
489 */
490 /*Only the submodules from the ExpectedSubmoduleBlock are accessible*/
491 #define AR_DEVICE_ACCESS_ONLY_FROM_EXPECTED_SUBMODULE 0
492 /*Submodule access is controlled by IO device application*/
493 #define AR_DEVICE_ACCESS_CONTROLLE_BY_DEVICE 256
494 
495 
496 /* AR properties companion AR is store in Ar properties
497  param server mask is 0000 0110 0000 0000 the value 3 became 1536
498 */
499 #define AR_COMPANION_AR_RESERVED 1536
500 
501 
502 /* IOCR RTClass is store in IOCR properties
503  RTClass mask is 0000 1111 the value don't change
504 */
505 #define IOCR_RT_CLASS_1_VALUE 1
506 #define IOCR_RT_CLASS_2_VALUE 2
507 #define IOCR_RT_CLASS_3_VALUE 3
508 #define IOCR_RT_CLASS_UDP_VALUE 4
509 
510 /* LT (Length/Type)*/
511 #define LT_IP_UDP_RPC_SNMP_ICMP 0x0800
512 #define LT_ARP 0x0806
513 #define LT_TAG_CONTROL_INFORMATION 0x8100
514 #define LT_RTC_RTA_DCP_PTCP_MRRT 0x8892
515 #define LT_MRP 0x88E3
516 #define LT_LLDP 0x88CC
517 
518 
519 /* No media redundant frame transfer */
520 #define NO_MEDIA_REDUNDANT_FRAME 0
521 /* media redundant frame transfer */
522 #define MEDIA_REDUNDANT_FRAME 2048
523 
524 
525 /*reduction ratio */
526 #define REDUCTION_RATIO_32 32
527 #define REDUCTION_RATIO_64 64
528 #define REDUCTION_RATIO_256 256
529 #define REDUCTION_RATIO_512 512
530 #define REDUCTION_RATIO_8192 8192
531 #define REDUCTION_RATIO_16384 16384
532 
533 /* WatchDog Factor */
534 #define WATCHDOG_FACTOR_0_0001 0x0001
535 #define WATCHDOG_FACTOR_0_1e00 0x1e00
536 
537 
538 #define WATCHDOG_FACTOR_0_03125 (FSO_SEND_CLOCK_FACTOR_MULTIPLCATEUR) / (1000000L)
539 #define WATCHDOG_FACTOR_61440 61440L
540 #define WATCHDOG_FACTOR_1920 1920L
541 
542 /* DataHoldFactor */
543 #define DATA_OLD_FACTOR_0_0001 0x0001
544 #define DATA_OLD_FACTOR_0_1e00 0x1e00
545 #define DATA_OLD_FACTOR_0_03125 (FSO_SEND_CLOCK_FACTOR_MULTIPLCATEUR) / (1000000L)
546 #define DATA_OLD_FACTOR_61440 61440L
547 #define DATA_OLD_FACTOR_1920 1920
548 
549 /* frame send offset constante */
550 #define FSO_SEND_CLOCK_FACTOR_MULTIPLCATEUR 31250L /*ns*/
551 #define FSO_FORMAT_MULTIPLCATEUR 1000L
552 #define FSO_MIN_VALUE 0x003d0900L
553 #define FSO_MAX_VALUE 0xfffffffeL
554 
555 /*frame ID */
556 #define FRAME_ID_LOW_RANGE_RT_CLASS_3 0x0100 /* dedicated to RT_CLASS_3 unicast and multicast table 17*/
557 #define FRAME_ID_HIGTH_RANGE_RT_CLASS_3 0x7fff
558 
559 #define FRAME_ID_LOW_RANGE_5_UNICAST 0xc000 /*table 19 */
560 #define FRAME_ID_HIGTH_RANGE_5_UNICAST 0xf7ff
561 
562 #define FRAME_ID_LOW_RANGE_5_MULTICAST 0xf800 /*table 19 */
563 #define FRAME_ID_HIGTH_RANGE_5_MULTICAST 0xfbff
564 
565 #define FRAME_ID_LOW_RANGE_4_UNICAST 0x8000 /*table 18 */
566 #define FRAME_ID_HIGTH_RANGE_4_UNICAST 0xbbff
567 
568 #define FRAME_ID_LOW_RANGE_4_MULTICAST 0xbc00 /*table 18 */
569 #define FRAME_ID_HIGTH_RANGE_4_MULTICAST 0xbfff
570 
571 #define FRAME_ID_OUT_OF_RANGE 0xffff
572 
573 /*Alarm constante */
574 #define ALARM_TRANSPORT_RTA_CLASS_1 0
575 #define ALARM_TRANSPORT_RTA_CLASS_UDP 2
576 
577 /*Max Alarm data length */
578 #define MAX_ALARM_LENGTH_MIN_VALUE 200
579 #define MAX_ALARM_LENGTH_MAX_VALUE 1432
580 
581 /* Ar timeout factor*/
582 #define MAX_ARBLOCK_CM_INITIATOR_TIMEOUT_FACTOR 1000
583 
584 
585 /*Alarm User Priority */
586 #define ALARM_USER_PRIORITY_LOW 0xa000
587 #define ALARM_USER_PRIORITY_HIGTH 0xc000
588 #define ALARM_CR_VLAN_IX_MAX_VALUE 0xfff
589 
590 /* AddressResolutionProperties.Protocol*/
591 /* 0x01 Multicast consumer uses DNS to resolve the multicast provider source MAC address.*/
592 #define ADD_RESOLUTION_PROP_PROTOCOLE_DNS 0x01
593 
594 /* 0x02 Multicast consumer uses DCP to resolve the multicast provider source MAC address*/
595 #define ADD_RESOLUTION_PROP_PROTOCOLE_DCP 0x02
596 
597 
598 /*MCR Block Request */
599 #define MCR_ADD_RESOLUTION_PROP_FACTOR_MIN_VALUE 0x0001
600 #define MCR_ADD_RESOLUTION_PROP_FACTOR_MAX_VALUE 0x0064
601 
602 #define MCR_MCI_TIMEOUT_FACTOR_MAX_VALUR 100
603 
604 #define MCR_STATION_NAME_MIN_LENGTH 1
605 #define MCR_STATION_NAME_MAX_LENGTH 240
606 
607 #define MCR_BLOCK_REQ_FIELD_LENTGH 12
608 
609 
610 /* PullModuleAlarmAllow 1000 0000 */
611 #define AR_BLOCK_ALARM_ALLOW_MASK 0x80
612 
613 
614 /*AP PRC Block request */
615 #define BT_ARRPCBLOCK_REQ_LEN 4
616 #define BT_ALARMCRBLOCK_REQ_LEN 22
617 
618 /* Checking define */
619 
620 #define SUB_SLOT_NUMBER_MAX_ALLOWED 0x7fff
621 
622 /* parametrization server mask: 0000 0011 */
623 #define SUB_MODULE_PROPERTIES_TYPE_CHECKING 0x2
624 #define SUB_MODULE_PROPERTIES_TYPE_MASK 3
625 
626 #define SUB_MODULE_PROPERTIES_TYPE_LAG 3
627 
628 #define SUB_MODULE_PROPERTIES_RESERVED_LAG 3
629 
630 /* parametrization server mask: 0000 0011 */
631 #define SUB_MODULE_PROPERTIES_SHARED_INPUT_CHECKING 0x4 /* 0x04 --> bit 2 set to 1*/
632 #define SUB_MODULE_PROPERTIES_SHARED_INPUT_MASK 4
633 
634 #define AR_BLOC_MULTICAST_MAC_MASK 0x01
635 
636 #define SRINFO_BLOC_PROP_RESERVED_1_MASK 0x7FFC
637 
638 /*AR PrRoperties chcking */
639 /* we want the three first bit mask: 0000 0111 */
640 /* it correspond of a 7 */
641 #define AR_PROPERTIES_STATE_CHECKING 7
642 
643 /* Check of Takeover */
644 #define AR_PROPERTIES_TAKEOVERALLOWED 8
645 
646 /* parametrization server mask: 0001 0000 */
647 #define AR_PROPERTIES_PARAM_SERVER_CHECKING 16
648 
649 /* data rate mask: 0110 0000 */
650 #define AR_PROPERTIES_DATA_RATE_CHECKING 96
651 
652 /* device access mask 0000 0001 0000 0000 */
653 #define AR_DEVICE_ACCESS_CHECKING 256
654 
655 /*companion AR mask 0000 0110 0000 0000*/
656 #define AR_COMPANION_AR_CHECKING 1536
657 
658 /* RTClass AR mask 0000 1111 */
659 #define IOCRBLOCKREQ_RTCLASS_CHECKING 15
660 
661 /*IOUser Priority 1110 0000 0000 0000 */
662 #define IOUSER_PRIORITY_CHECKING 57344L
663 
664 /*AlarmCRProperties priority 10 */
665 #define ALARMCR_TRANSPORT_CHECKING 2
666 
667 /*AlarmCRProperties priority 1111 1111 1111 1111 1111 1111 1111 1100 */
668 #define ALARMCR_RESERVED_CHECKING 0xfffffffcL
669 
670 /* IOCrBlockReq IOCRProperties.reserved1 mask 0111 1111 0000*/
671 #define IOCRBLOCKREQ_IOCRPROPERTIES_RESERVED1_CHECKING 2032
672 
673 /* IOCrBlockReq IOCRProperties.reserved2 mask 1111 1111 1111 1111 1111 0000 0000 0000 */
674 #define IOCRBLOCKREQ_IOCRPROPERTIES_RESERVED2_CHECKING 0xfffff000L
675 
676 /*IOCrBlockReq IOCRProperties.media redundancy mask 0000 1000 0000 0000*/
677 #define IOCRBLOCKREQ_MEDIA_REDUNDANCY_CHECKING 2048
678 
679 #define FRAME_SEND_OFFSET_BEST_AS_POSSIBLE 0xffffffffL
680 
681 #define RTA_TIMEOUT_FACTOR_MIN 0x0001
682 #define RTA_TIMEOUT_FACTOR_MAX 0x0064
683 
684 #define RTA_RETRY_MIN 3
685 #define RTA_RETRY_MAX 15
686 
687 #define AR_RPC_INITIATOR_RPC_SERVER_PORT_MIN 0x0400
688 #define AR_RPC_INITIATOR_RPC_SERVER_PORT_MAX 0xffff
689 
690 #define REDUNDANCY_DHF_MIN 0x00C9
691 #define REDUNDANCY_DHF_MAX 0xEA60
692 
693 #define SUBMODULE_PROPERTIES_TYPE_MASK 3
694 
695 
696 /* CRVLANID higth*/
697 /* mask : 0000 1111 1111 1111*/
698 #define ALARM_CRVLANID_CHECKIN 4095L
699 /* mask : 1110 0000 0000 0000*/
700 #define ALARM_USER_PRIORITY_CHECKIN 57344L
701 
702 /*MC Block requestu checking */
703 /*mask :0000 0000 0000 0111*/
704 #define MCR_ADD_RESOLUTION_PROP_PROTOCOLE_CHECKIN 7L
705 
706 /*mask :0000 0000 0000 0000 1111 1111 1111 1000*/
707 #define MCR_ADD_RESOLUTION_PROP_RESERVED_CHECKIN 65528L
708 
709 /* mask :1111 1111 1111 1111 0000 0000 0000 0000*/
710 #define MCR_ADD_RESOLUTION_PROP_FACTOR_CHECKIN 0xffff0000L
711 
712 
713 #define DIFF_BLOCK_ARINFO_DECALLAGE (128)
714 #define DIFF_BLOCK_IDENT_INFO_DECALLAGE (2048L)
715 #define DIFF_BLOCK_FORMAT_IND_DECALLAGE (32768L)
716 
717 #define INITIATOR_TIMEOUT_FACTOR_BASE 100
718 /* DCP checking rules */
719 
720 #define DCP_NAME_PORT_FORMAT "port-"
721 #define DCP_NAME_PORT_FORMAT_LEN 5
722 #define DCP_NAME_LABEL_MAX_LEN 63
723 #define DCP_NAME_LABEL_MIN_LEN 1
724 
725 #define DCP_NAME_IP_MAX_NUMBER 3
726 #define DCP_NAME_IP_MIN_NUMBER 0
727 #define DCP_NAME_IP_LABEL_NUMBER 4
728 
729 
730 /*---------------------------------------------------------------------------*/
731 /* STRUCTURE DEFINITION */
732 /*---------------------------------------------------------------------------*/
733 
734 #include "os_pck.h"
735 
737 {
738  APP_BYTE ErrorCode;
739  APP_BYTE ErrorDecode;
740  APP_BYTE ErrorCode1;
741  APP_BYTE ErrorCode2;
742 }STRUCT_ALIGNEMENT;
743 typedef struct _ST_PNIO_STATUS PACK_ALIGNEMENT(ST_PNIO_STATUS), APP_FAR * LPST_PNIO_STATUS;
744 #define ST_PNIO_STATUS_SIZEOF 4
745 STRUCT_SIZE_CHECK(ST_PNIO_STATUS, ST_PNIO_STATUS_SIZEOF)
746 
748 { /* 5.2.7*/
749  APP_WORD BlocType; /* 0 - 1 */
750  APP_WORD BLockLength; /* 2 - 3 */
751  APP_BYTE BlockVersionHigh; /* 4 - 4 */
752  APP_BYTE BlockVersionLow; /* 5 - 5 */
753 }STRUCT_ALIGNEMENT;
754 typedef struct _ST_BLOCK_HEADER PACK_ALIGNEMENT(ST_BLOCK_HEADER), APP_FAR * LPST_BLOCK_HEADER;
755 #define ST_BLOCK_HEADER_SIZEOF 6
756 STRUCT_SIZE_CHECK(ST_BLOCK_HEADER, ST_BLOCK_HEADER_SIZEOF)
757 
758 
759 /*
760  PROFINETIOServiceReqPDU
761 
762 */
763 
765 {
766  APP_WORD ARType; /* 5.2.12.3 Define to write*/
767  ST_CLR_RPC_UUID ARUUID;
768  APP_WORD SessionKey;/*5.2.12.4*/
769  APP_BYTE CMInitiatorMacAdd[6];/*5.2.12.5*/
770  ST_CLR_RPC_UUID CMInitiatorObjectUUID;
771  ALIGNED_DWORD_DECL(ARProperties);/*5.2.12.8 Define to write*/
772  APP_WORD CMInitiatorActivityTimeoutFactor;/*5.2.12.15*/
773  APP_WORD InitiatorUDPRTPort;
774  APP_WORD StationNameLength;
775  APP_BYTE CMInitiatorStationName[NAMELEN];
776 }STRUCT_ALIGNEMENT;
777 typedef struct _ST_AR_BLOCK_REQ PACK_ALIGNEMENT(ST_AR_BLOCK_REQ), APP_FAR *LPST_AR_BLOCK_REQ;
778 #define ST_AR_BLOCK_REQ_SIZEOF 292
779 STRUCT_SIZE_CHECK(ST_AR_BLOCK_REQ, ST_AR_BLOCK_REQ_SIZEOF)
780 
782 {
783  APP_WORD IOCRType; /*5.2.12.14*/
784  APP_WORD IOCRReference;/* 5.2.12.12 */
785  APP_WORD LT; /*5.2.2.2*/
786  ALIGNED_DWORD_DECL(IOCRProperties);/*5.2.12.9*/
787  APP_WORD DataLength;/*5.2.12.63*/
788  APP_WORD FrameId;/*5.2.2.4*/
789  APP_WORD SendClockFactor;/*5.2.12.70*/
790  APP_WORD ReductionRatio;/*5.2.12.71*/
791  APP_WORD Phase; /* 5.2.12.72*/
792  APP_WORD Sequence; /*5.2.12.73*/
793  ALIGNED_DWORD_DECL(FrameSendOffset);/*5.2.12.75*/
794  APP_WORD WatchdogFactor; /*5.2.12.74*/
795  APP_WORD DataHoldFactor; /*5.2.12.74*/
796  APP_WORD IOCRTagHeader;/*5.2.12.13*/
797  APP_BYTE IOCRMulticastMACAdd[6];/*5.2.21.5*/
798  APP_WORD NumberOfAPIs;/*5.2.12.30*/
799  /* followed by an IOCRBlockReqAPI structure*/
800 }STRUCT_ALIGNEMENT;
801 typedef struct _ST_IOCR_BLOCK_REQ PACK_ALIGNEMENT(ST_IOCR_BLOCK_REQ), APP_FAR *LPST_IOCR_BLOCK_REQ;
802 #define ST_IOCR_BLOCK_REQ_SIZEOF 40
803 STRUCT_SIZE_CHECK(ST_IOCR_BLOCK_REQ, ST_IOCR_BLOCK_REQ_SIZEOF)
804 
806 {
807  ALIGNED_DWORD_DECL(API); /*5.2.8.2*/
808  APP_WORD NumberOfIODataObjects;/*5.2.12.10*/
809  /* followed NumberOfIODataObjects by IOCRBlockReqIODataObjects structures*/
810 }STRUCT_ALIGNEMENT;
811 typedef struct _ST_IOCR_BLOCK_REQ_API PACK_ALIGNEMENT(ST_IOCR_BLOCK_REQ_API),ST_IOCR_BLOCK_RES_API, APP_FAR * LPST_IOCR_BLOCK_REQ_API;
812 #define ST_IOCR_BLOCK_REQ_API_SIZEOF 6
813 STRUCT_SIZE_CHECK(ST_IOCR_BLOCK_REQ_API, ST_IOCR_BLOCK_REQ_API_SIZEOF)
814 
815 
817 {
818  APP_WORD SlotNumber; /*5.2.8.3*/
819  APP_WORD SubSlotNumber; /*5.2.8.4*/
820  APP_WORD IODataObjectFrameOffset; /*5.2.12.24*/
821 }STRUCT_ALIGNEMENT;
822 typedef struct _ST_IOCR_BLOCK_REQ_IODATA_OBJECTS PACK_ALIGNEMENT(ST_IOCR_BLOCK_REQ_IODATA_OBJECTS), APP_FAR * LPST_IOCR_BLOCK_REQ_IODATA_OBJECTS;
823 #define ST_IOCR_BLOCK_REQ_IODATA_OBJECTS_SIZEOF 6
824 STRUCT_SIZE_CHECK(ST_IOCR_BLOCK_REQ_IODATA_OBJECTS, ST_IOCR_BLOCK_REQ_IODATA_OBJECTS_SIZEOF)
825 
826 
828 {
829  APP_WORD NumberofIOCS; /*5.2.12.11*/
830 }STRUCT_ALIGNEMENT;
831 typedef struct _ST_IOCR_BLOCK_REQ_IOCS PACK_ALIGNEMENT(ST_IOCR_BLOCK_REQ_IOCS);
832 #define ST_IOCR_BLOCK_REQ_IOCS_SIZEOF 2
833 STRUCT_SIZE_CHECK(ST_IOCR_BLOCK_REQ_IOCS, ST_IOCR_BLOCK_REQ_IOCS_SIZEOF)
834 
835 
837 {
838  APP_WORD SlotNumber; /*5.2.8.3*/
839  APP_WORD SubSlotNumber; /*5.2.8.4*/
840  APP_WORD IOCSDataObjectFrameOffset;/*5.2.12.25*/
841 }STRUCT_ALIGNEMENT;
842 typedef struct _ST_IOCR_BLOCK_REQ_IOCS_DATA_OBJECTS PACK_ALIGNEMENT(ST_IOCR_BLOCK_REQ_IOCS_DATA_OBJECTS), APP_FAR * LPST_IOCR_BLOCK_REQ_IOCS_DATA_OBJECTS;
843 #define ST_IOCR_BLOCK_REQ_IOCS_DATA_OBJECTS_SIZEOF 6
844 STRUCT_SIZE_CHECK(ST_IOCR_BLOCK_REQ_IOCS_DATA_OBJECTS, ST_IOCR_BLOCK_REQ_IOCS_DATA_OBJECTS_SIZEOF)
845 
847 {
848  APP_WORD NumberOfAPIs;/*5.2.12.30*/
849  /* followed by NumberOfAPIs of ModuleBlockReq*/
850 }STRUCT_ALIGNEMENT;
851 typedef struct _ST_EXPETED_SUBMODULE_BLOCK_REQ PACK_ALIGNEMENT(ST_EXPETED_SUBMODULE_BLOCK_REQ), APP_FAR * LPST_EXPETED_SUBMODULE_BLOCK_REQ;
852 #define ST_EXPETED_SUBMODULE_BLOCK_REQ_SIZEOF 2
853 STRUCT_SIZE_CHECK(ST_EXPETED_SUBMODULE_BLOCK_REQ, ST_EXPETED_SUBMODULE_BLOCK_REQ_SIZEOF)
854 
855 
857 {
858  ALIGNED_DWORD_DECL(API); /*5.2.8.2*/
859  APP_WORD SlotNumber; /*5.2.8.3 SlotNumber;*/
860  ALIGNED_DWORD_DECL(ModuleIdentNumber);/*5.2.12.42*/
861  APP_WORD ModuleProperties; /*5.2.12.80*/
862  APP_WORD NumberOfSubModules; /*5.2.12.49*/
863  /* followed by NumberOfSubModules of SubModuleBlockReq*/
864 }STRUCT_ALIGNEMENT;
865 typedef struct _ST_MODULE_BLOCK_REQ PACK_ALIGNEMENT(ST_MODULE_BLOCK_REQ), APP_FAR * LPST_MODULE_BLOCK_REQ;
866 #define ST_MODULE_BLOCK_REQ_SIZEOF 14
867 STRUCT_SIZE_CHECK(ST_MODULE_BLOCK_REQ, ST_MODULE_BLOCK_REQ_SIZEOF)
868 
869 
871 {
872  APP_WORD SubSlotNumber; /* 5.2.8.4*/
873  ALIGNED_DWORD_DECL(SubModuleIdentNumber); /*5.2.12.43*/
874  APP_WORD SubModuleProperties; /*5.2.12.79*/
875 }STRUCT_ALIGNEMENT;
876 typedef struct _ST_SUBMODULE_BLOCK_REQ PACK_ALIGNEMENT(ST_SUBMODULE_BLOCK_REQ), APP_FAR * LPST_SUBMODULE_BLOCK_REQ;
877 #define ST_SUBMODULE_BLOCK_REQ_SIZEOF 8
878 STRUCT_SIZE_CHECK(ST_SUBMODULE_BLOCK_REQ, ST_SUBMODULE_BLOCK_REQ_SIZEOF)
879 
880 
882 {
883  APP_WORD DataDescription;/*5.2.12.62*/
884  APP_WORD SubModuleDataLength; /*5.2.12.46*/
885  APP_BYTE LengthIOPS; /*5.2.12.27*/
886  APP_BYTE LengthIOCS; /* 5.2.12.26*/
887 }STRUCT_ALIGNEMENT;
888 typedef struct _ST_DATADESCRIPTION_BLOCK_REQ PACK_ALIGNEMENT(ST_DATADESCRIPTION_BLOCK_REQ), APP_FAR * LPST_DATADESCRIPTION_BLOCK_REQ;
889 #define ST_DATADESCRIPTION_BLOCK_REQ_SIZEOF 6
890 STRUCT_SIZE_CHECK(ST_DATADESCRIPTION_BLOCK_REQ, ST_DATADESCRIPTION_BLOCK_REQ_SIZEOF)
891 
892 
894 {
895  APP_WORD AlarmCRType;/*5.2.5.1*/
896  APP_WORD LT;/*5.2.2.2*/
897  ALIGNED_DWORD_DECL(AlarmCRProperties);/*5.2.12.31*/
898  APP_WORD RTATimeoutFactor;/*5.2.12.36*/
899  APP_WORD RTARetries;/*5.2.12.37*/
900  APP_WORD LocalAlarmReference;/*5.2.12.87*/
901  APP_WORD MaxAlarmDataLength;/*5.2.12.89*/
902  APP_WORD AlarmCRTagHeaderHigh;/*5.2.12.32*/
903  APP_WORD AlarmCRTagHeaderLow;/*5.2.12.33*/
904 }STRUCT_ALIGNEMENT;
905 typedef struct _ST_ALARM_CR_BLOCK_REQ PACK_ALIGNEMENT(ST_ALARM_CR_BLOCK_REQ), APP_FAR *LPST_ALARM_CR_BLOCK_REQ, APP_FAR *LPST_ALARM_CR_BLOCK_RES;
906 #define ST_ALARM_CR_BLOCK_REQ_SIZEOF 20
907 STRUCT_SIZE_CHECK(ST_ALARM_CR_BLOCK_REQ, ST_ALARM_CR_BLOCK_REQ_SIZEOF)
908 
909 
911 {
912  ST_CLR_RPC_UUID ParameterServerObjectUUID;
913  ALIGNED_DWORD_DECL(ParameterServerProperties);
914  APP_WORD CMInitiatorActivityTimeoutFactor;
915  APP_WORD StationNameLength;
916  APP_BYTE ParameterServerStationName[NAMELEN];
917 }STRUCT_ALIGNEMENT;
918 typedef struct _ST_PRMSERVER_CR_BLOCK_REQ PACK_ALIGNEMENT(ST_PRMSERVER_CR_BLOCK_REQ), APP_FAR *LPST_PRMSERVER_CR_BLOCK_REQ;
919 #define ST_PRMSERVER_CR_BLOCK_REQ_SIZEOF 264
920 STRUCT_SIZE_CHECK(ST_PRMSERVER_CR_BLOCK_REQ, ST_PRMSERVER_CR_BLOCK_REQ_SIZEOF)
921 
923 {
924  APP_WORD IOCRReference;
925  ALIGNED_DWORD_DECL(AddressResolutionProperties);
926  APP_WORD MCTimeOutFactor;
927  APP_WORD StationNameLength;
928  APP_BYTE ProviderStationName[NAMELEN];
929 }STRUCT_ALIGNEMENT;
930 typedef struct _ST_MCR_CR_BLOCK_REQ PACK_ALIGNEMENT(ST_MCR_CR_BLOCK_REQ), APP_FAR *LPST_MCR_CR_BLOCK_REQ;
931 #define ST_MCR_CR_BLOCK_REQ_SIZEOF 250
932 STRUCT_SIZE_CHECK(ST_MCR_CR_BLOCK_REQ, ST_MCR_CR_BLOCK_REQ_SIZEOF)
933 
934 
936 {
937  APP_WORD InitiatorRPCServerPort;
938 }STRUCT_ALIGNEMENT;
939 typedef struct _ST_ARRPC_CR_BLOCK_REQ PACK_ALIGNEMENT(ST_ARRPC_CR_BLOCK_REQ), APP_FAR *LPST_ARRPC_CR_BLOCK_REQ;
940 #define ST_ARRPC_CR_BLOCK_REQ_SIZEOF 2
941 STRUCT_SIZE_CHECK(ST_ARRPC_CR_BLOCK_REQ, ST_ARRPC_CR_BLOCK_REQ_SIZEOF)
942 
943 
945 {
946  ST_AR_BLOCK_REQ ArBlockReq;
947  /* et d'autres optionnel...*/
948 }STRUCT_ALIGNEMENT;
949 typedef struct _ST_IODCONNECT_REQ PACK_ALIGNEMENT(ST_IODCONNECT_REQ);
950 #define ST_IODCONNECT_REQ_SIZEOF 0
951 STRUCT_SIZE_CHECK(ST_IODCONNECT_REQ, ST_IODCONNECT_REQ_SIZEOF)
952 
954 {
955  APP_WORD ARType;
956  ST_CLR_RPC_UUID ARUIUID;
957  APP_WORD wSession;
958  APP_BYTE CMResponderMac[6];
959  APP_WORD wCMResponderUdpPort;
960 }STRUCT_ALIGNEMENT;
961 typedef struct _ST_ARBLOCK_RES PACK_ALIGNEMENT(ST_ARBLOCK_RES), APP_FAR * LPST_ARBLOCK_RES;
962 #define ST_ARBLOCK_RES_SIZEOF sizeof(ST_ARBLOCK_RES)
963 STRUCT_SIZE_CHECK(ST_ARBLOCK_RES, ST_ARBLOCK_RES_SIZEOF)
964 
965 
967 {
968  APP_WORD wIOCRType;
969  APP_WORD wIOCRReference;
970  APP_WORD wFrameId;
971 }STRUCT_ALIGNEMENT;
972 typedef struct _ST_IOCR_BLOCK_RES PACK_ALIGNEMENT(ST_IOCR_BLOCK_RES), APP_FAR * LPST_IOCR_BLOCK_RES;
973 #define ST_IOCR_BLOCK_RES_SIZEOF 6
974 STRUCT_SIZE_CHECK(ST_IOCR_BLOCK_RES, ST_IOCR_BLOCK_RES_SIZEOF)
975 
976 
978 {
979  APP_WORD wALARMCRType;
980  APP_WORD wLocalAlarmReference;
981  APP_WORD wMaxAlarmDataLen;
982 }STRUCT_ALIGNEMENT;
983 typedef struct _ST_ALARM_BLOCK_RES PACK_ALIGNEMENT(ST_ALARM_BLOCK_RES), APP_FAR * LPST_ALARM_BLOCK_RES;
984 #define ST_ALARM_BLOCK_RES_SIZEOF 6
985 STRUCT_SIZE_CHECK(ST_ALARM_BLOCK_RES, ST_ALARM_BLOCK_RES_SIZEOF)
986 
987 
989 {
990  APP_WORD wNumberOfAPI;
991 }STRUCT_ALIGNEMENT;
992 typedef struct _ST_EXPECTED_MODULE_BLOCK_RES PACK_ALIGNEMENT(ST_EXPECTED_MODULE_BLOCK_RES), APP_FAR * LPST_EXPECTED_MODULE_BLOCK_RES;
993 #define ST_EXPECTED_MODULE_BLOCK_RES_SIZEOF 2
994 STRUCT_SIZE_CHECK(ST_EXPECTED_MODULE_BLOCK_RES, ST_EXPECTED_MODULE_BLOCK_RES_SIZEOF)
995 
996 
998 {
999  ALIGNED_DWORD_DECL(dwAPI);
1000  APP_WORD wNumberOfModules;
1001 }STRUCT_ALIGNEMENT;
1002 typedef struct _ST_EXPECTED_API_MODULE_BLOCK_RES PACK_ALIGNEMENT(ST_EXPECTED_API_MODULE_BLOCK_RES), APP_FAR * LPST_EXPECTED_API_MODULE_BLOCK_RES;
1003 #define ST_EXPECTED_API_MODULE_BLOCK_RES_SIZEOF 6
1004 STRUCT_SIZE_CHECK(ST_EXPECTED_API_MODULE_BLOCK_RES, ST_EXPECTED_API_MODULE_BLOCK_RES_SIZEOF)
1005 
1006 
1008 {
1009  APP_WORD SlotNumber; /*5.2.8.3 SlotNumber;*/
1010  ALIGNED_DWORD_DECL(ModuleIdentNumber);/*5.2.12.42*/
1011  APP_WORD ModuleState; /*5.2.12.80*/
1012  APP_WORD NumberOfSubModules; /*5.2.12.49*/
1013  /* followed by NumberOfSubModules of SubModuleBlockReq*/
1014 }STRUCT_ALIGNEMENT;
1015 typedef struct _ST_EXPECTED_MODULE_STATE_BLOCK_REQ PACK_ALIGNEMENT(ST_EXPECTED_MODULE_STATE_BLOCK_REQ), APP_FAR * LPST_EXPECTED_MODULE_STATE_BLOCK_REQ;
1016 #define ST_EXPECTED_MODULE_STATE_BLOCK_REQ_SIZEOF 10
1017 STRUCT_SIZE_CHECK(ST_EXPECTED_MODULE_STATE_BLOCK_REQ, ST_EXPECTED_MODULE_STATE_BLOCK_REQ_SIZEOF)
1018 
1019 
1021 {
1022  APP_WORD SubSlotNumber;
1023  ALIGNED_DWORD_DECL(SubModuleIdentNumber);
1024  APP_WORD SubModuleState;
1025 }STRUCT_ALIGNEMENT;
1026 typedef struct _ST_EXPECTED_SUBMODULE_STATE_RES PACK_ALIGNEMENT(ST_EXPECTED_SUBMODULE_STATE_RES),APP_FAR * LPST_EXPECTED_SUBMODULE_STATE_RES;
1027 #define ST_EXPECTED_SUBMODULE_STATE_RES_SIZEOF 8
1028 STRUCT_SIZE_CHECK(ST_EXPECTED_SUBMODULE_STATE_RES, ST_EXPECTED_SUBMODULE_STATE_RES_SIZEOF)
1029 
1030 
1031 #define RW_PADDING_LEN 24
1032 #define RW_PADDING_LEN_IMPLICIT 8
1033 
1034 #define RW_PADDING_RES_LEN 20
1035 
1037 {
1038  APP_WORD Seq_Number;
1039  ST_CLR_RPC_UUID ARUUID;
1040  ALIGNED_DWORD_DECL(API);
1041  APP_WORD Slot_Number;
1042  APP_WORD Subslot_Number;
1043  APP_WORD Padding;
1044  APP_WORD Index;
1045  ALIGNED_DWORD_DECL(Record_Data_Length);
1046  union {
1047  struct {
1048  APP_BYTE RWPAdding[RW_PADDING_LEN];
1049  }Wr_Req;
1050 
1051  struct {
1052  APP_BYTE AddData1;
1053  APP_BYTE AddData2;
1054  }Wr_Res;
1055 
1056  }RdWr_u;
1057  /* Record data[] here*/
1058 }STRUCT_ALIGNEMENT;
1059 typedef struct _ST_IOD_READ_WRITE PACK_ALIGNEMENT(ST_IOD_READ_WRITE), APP_FAR * LPST_IOD_READ_WRITE;
1060 #define ST_IOD_READ_WRITE_SIZEOF 58
1061 STRUCT_SIZE_CHECK(ST_IOD_READ_WRITE, ST_IOD_READ_WRITE_SIZEOF)
1062 
1063 
1065 {
1066  ST_BLOCK_HEADER stBlockHeader;
1067  APP_WORD Reserved1; /*Padding*/
1068  ST_CLR_RPC_UUID ARUUID;
1069  APP_WORD wSession;
1070  APP_WORD Reserved2;/*AlarmSequenceNumber*/
1071  APP_WORD Control_Command;
1072  APP_WORD Control_Properties;
1073 }STRUCT_ALIGNEMENT;
1074 typedef struct _ST_CONTROL_BLOCK PACK_ALIGNEMENT(ST_CONTROL_BLOCK), APP_FAR * LPST_CONTROL_BLOCK;
1075 #define ST_CONTROL_BLOCK_SIZEOF (26 + ST_BLOCK_HEADER_SIZEOF)
1076 
1077 
1079 {
1080  APP_WORD Reserved1; /*Padding*/
1081  ST_CLR_RPC_UUID ARUUID;
1082  APP_WORD wSession;
1083  APP_WORD Reserved2;/*AlarmSequenceNumber*/
1084  APP_WORD Control_Command;
1085  APP_WORD Control_Properties;
1086 }STRUCT_ALIGNEMENT;
1087 typedef struct _ST_CONTROL_REQ_BLOCK PACK_ALIGNEMENT(ST_CONTROL_REQ_BLOCK), APP_FAR * LPST_CONTROL_REQ_BLOCK;
1088 #define ST_CONTROL_REQ_BLOCK_SIZEOF (sizeof(ST_CONTROL_REQ_BLOCK))
1089 
1090 
1092 {
1093  APP_WORD wNbIOCR;
1094  LPST_IOCR_BLOCK_REQ pListIOCR; /* Max of 4 IOCR in a list of CR ??*/
1095 }STRUCT_ALIGNEMENT;
1096 typedef struct _ST_LISTOF_IOCR PACK_ALIGNEMENT(ST_LISTOF_IOCR), APP_FAR * LPST_LISTOF_IOCR;
1097 
1098 
1100 {
1101  APP_WORD wAlarmDstEndpoint; /* 0 - 2 */
1102  APP_WORD wAlarmSrcEndpoint; /* 2 - 2 */
1103  APP_BYTE PDUType; /* 4 - 1 */
1104  APP_BYTE AddFlags; /* 5 - 1 */
1105  APP_WORD wSendSeqNum; /* 6 - 2 */
1106  APP_WORD wAckSeqNum; /* 8 - 2 */
1107  APP_WORD wVarParLen; /* 10 - 2 */
1108 }STRUCT_ALIGNEMENT;
1109 typedef struct _ST_FRAME_PROFINET_ALARM PACK_ALIGNEMENT(ST_FRAME_PROFINET_ALARM), APP_FAR * LPST_FRAME_PROFINET_ALARM;
1110 #define ST_FRAME_PROFINET_ALARM_SIZEOF 12
1111 STRUCT_SIZE_CHECK(ST_FRAME_PROFINET_ALARM, ST_FRAME_PROFINET_ALARM_SIZEOF)
1112 
1113 
1114 #include "os_unpck.h"
1115 
1116 #endif
Definition: pnio_pdu.h:764
Definition: pnio_pdu.h:881
Definition: pnio_pdu.h:805
Definition: pnio_pdu.h:988
Definition: pnio_pdu.h:1036
Definition: pnio_pdu.h:736
Definition: pnio_pdu.h:944
Definition: pnio_pdu.h:966
Definition: pnio_pdu.h:953
Definition: pnio_pdu.h:1064
Definition: pnio_pdu.h:870
Definition: pnio_pdu.h:1091
Definition: pnio_pdu.h:836
Definition: pnio_pdu.h:893
Definition: pnio_pdu.h:935
Definition: pnio_pdu.h:747
Definition: pnio_pdu.h:922
Definition: pnio_pdu.h:910
Definition: pnio_pdu.h:827
Definition: pnio_pdu.h:1078
Definition: pnio_pdu.h:1007
Definition: pnio_pdu.h:856
Definition: pnio_pdu.h:997
Definition: pnio_pdu.h:1020
Definition: pnio_pdu.h:781
Definition: pnio_pdu.h:846
Definition: pnio_pdu.h:816
Definition: pnio_pdu.h:1099
Definition: pnio_pdu.h:977