versadac  1
versadac - Scalable Recorder Firmware
rdwr.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 device */
14 /* Component : sttup header */
15 /* $Workfile:: rdwr.h $*/
16 /* $Revision:: 11 $*/
17 /* $Date:: 24/02/12 13:36 $*/
18 /* */
19 /*---------------------------------------------------------------------------*/
20 /* */
21 /* D e s c r i p t i o n : */
22 /* start up state machine header */
23 /* */
24 /*---------------------------------------------------------------------------*/
25 
26 #ifndef _RDWR_H
27 #define _RDWR_H
28 #include "os_pck.h"
29 
31  APP_WORD wBlocType;
32  APP_WORD wBlocLen;
33  APP_BYTE byVersionHigh;
34  APP_BYTE byVersionLow;
35 }STRUCT_ALIGNEMENT;
36 typedef struct _ST_PND_BLOCHEADER PACK_ALIGNEMENT(ST_PND_BLOCHEADER), APP_FAR * LPST_PND_BLOCHEADER;
37 
38 
40  ST_PND_BLOCHEADER stBlockHeader;
41  APP_BYTE byPad1;
42  APP_BYTE byPad2;
43 
44  APP_DWORD dwApi;
45  APP_WORD wSlot;
46  APP_WORD wSubSlot;
47 }STRUCT_ALIGNEMENT;
48 typedef struct _ST_PND_MULTIPLE_BLOCHEADER PACK_ALIGNEMENT(ST_PND_MULTIPLE_BLOCHEADER), APP_FAR * LPST_PND_MULTIPLE_BLOCHEADER;
49 
50 #include "os_unpck.h"
51 
52 #ifdef RECORD_INTERNAL
53 
54  #define RETURN_IF_READ_WRITE_LENTGH_INVALID(wActualLength, dwSizeMax) if( wActualLength > dwSizeMax){ \
55  /* No enougth place */ \
56  lpStatus->ErrorCode1 = MAKE_PNIORW_ERR_CODE1(ERR_CLASS_RESSOURCE, ERR_CODE_READ_CONSTRAINT);\
57  return OS_NOT_OK; \
58  }
59 
60 
61 
62 
63  APP_DWORD BuildAPiData(LPST_DREP lpstDrep,
64  APP_LPBYTE APP_FAR * lplpbyResponse,
65  APP_LPDWORD lpdwSize,
66  APP_BYTE bBlockVersionHigh, APP_BYTE bBlockVersionLow, APP_WORD wBlocRspType,
67  LPST_PNIO_STATUS lpStatus);
68 
69  APP_BOOL api_use_in_ar(APP_DWORD dwApi, LPST_AREP lpstArep);
70 
71  APP_DWORD ParseConfAndBuildTrame( LPST_DREP lpstDrep,
72  APP_LPBYTE APP_FAR * lplpbyResponse,
73  APP_DWORD dwAPI, APP_BOOL bCheckApi, APP_BOOL bAddApi,
74  APP_WORD wSlot, APP_BOOL bCheckSlot,
75  APP_WORD wSubSlot,APP_BOOL bCheckSubSlot,
76  LPST_AREP lpstArep,
77  APP_BOOL bAddEc,
78  APP_BOOL bAddModuleDiff,
79  APP_LPDWORD lpdwSize,
80  APP_BYTE bBlockVersionHigh, APP_BYTE bBlockVersionLow, APP_WORD wBlocRspType,
81  LPST_PNIO_STATUS lpStatus);
82 
83 
84  APP_WORD buildLogData(APP_LPBYTE APP_FAR * lplpbyResponse,
85  APP_LPDWORD lpdwSize,
86  APP_BYTE bBlockVersionHigh, APP_BYTE bBlockVersionLow, APP_WORD wBlocRspType,
87  LPST_PNIO_STATUS lpStatus);
88 
89  APP_DWORD BuildArData( LPST_DREP lpstDrep,
90  APP_LPBYTE APP_FAR * lplpbyResponse,
91  APP_DWORD dwAPI, APP_BOOL bCheckApi,
92  APP_LPDWORD lpdwSize,
93  APP_BYTE bBlockVersionHigh, APP_BYTE bBlockVersionLow, APP_WORD wBlocRspType,
94  LPST_PNIO_STATUS lpStatus);
95 
96  #ifdef MRP_SUPPORTED
97 
98  APP_DWORD buildMrpRsp( APP_LPBYTE lpbyResponse,
99  APP_LPDWORD lpdwSize,
100  APP_BYTE bBlockVersionHigh,
101  APP_BYTE bBlockVersionLow,
102  APP_WORD wIndex,
103  LPST_PNIO_RW_STATUS lpStatus);
104 
105  #endif /* MRP_SUPPORTED */
106 
107  #ifdef RECORD_INTERNAL_PORT_STATISTIC
108 
109  APP_WORD PDPortStatisticBlock(LPST_AREP lpstArep,
110  LPST_DREP lpstDrep,
111  APP_DWORD dwApi,
112  APP_WORD wSlot,
113  APP_WORD wSubSlot,
114  APP_LPDWORD lpdwSizeOfData,
115  APP_LPBYTE lpbyData,
116  LPST_PNIO_RW_STATUS lpStatus,
117  APP_LPBYTE lpbyAddData1,
118  APP_LPBYTE lpbyAddData2);
119 
120  #endif
121  #ifdef LLDP_SUPPORTED
122 
123  APP_WORD APP_FAR lldpReadInternal_getChassiId(APP_LPBYTE lpbyChassiId, APP_LPBYTE lpbyChassidIdLen);
124  APP_WORD APP_FAR lldpReadInternal_getPortData(APP_BYTE byPort, APP_LPBYTE lpbyLengthOwnPortId, APP_LPBYTE lpbyOwnPortId);
125 
126  #ifdef LLDP_RECEIVER
127 
128  APP_WORD APP_FAR lldpReadInternal_getPortNbPeers(APP_BYTE byPort, APP_LPBYTE lpbyNumberOfPeers, APP_LPBYTE lpbyFirstPeers);
129 
130  #endif /* LLDP_RECEIVER */
131 
132 
133  #endif /* LLDP_SUPPORTED */
134 
135  #ifdef RECORD_INTERNAL_IM
136 
137  /*stack*/
138  #define IM_ORDER_ID_MAX_LEN 20
139  #define IM_SERIAL_NUMBER_MAX_LEN 16
140 
141  #include "os_pck.h"
142  /*
143  Declaration of IM0 structure is as described in Profinet IO specification V2.1
144  Visible string elements shall be filled with blanks if shorter than defined length
145  */
146  struct _ST_IMZERO{
147  APP_WORD wBlocType;
148  APP_WORD wBlocLen;
149  APP_BYTE byVersionHigh;
150  APP_BYTE byVersionLow;
151  APP_BYTE VendorIdHigh;
152  APP_BYTE VendorIdLow;
153  APP_BYTE OrderID[IM_ORDER_ID_MAX_LEN]; /* Visible String */
154  APP_BYTE IM_Serial_Number[IM_SERIAL_NUMBER_MAX_LEN]; /* Visible String */
155  APP_WORD IM_Hardware_Revision;
156  APP_BYTE IM_Software_Revision_Prefix; /* V, R, P, U, T */
157  APP_BYTE IM_SW_Revision_Functional_Enhancement;
158  APP_BYTE IM_SW_Revision_Bug_Fix;
159  APP_BYTE IM_SW_Revision_Internal_Change;
160  APP_WORD IM_Revision_Counter;
161  APP_WORD IM_Profile_ID;
162  APP_WORD IM_Profile_Specific_Type;
163  APP_BYTE IM_Version_Major;
164  APP_BYTE IM_Version_Minor;
165  APP_WORD IM_Suported;
166  }STRUCT_ALIGNEMENT;
167  typedef struct _ST_IMZERO PACK_ALIGNEMENT(ST_IMZERO), APP_FAR * LPST_IMZERO;
168 
169 
170  #include "os_unpck.h"
171 
172  APP_WORD BuildIMData(LPST_AREP lpstArep,
173  APP_LPDWORD lpdwSizeOfData,
174  APP_LPBYTE lpbyData,
175  LPST_PNIO_RW_STATUS lpStatus,
176  APP_LPBYTE lpbyAddData1,
177  APP_LPBYTE lpbyAddData2);
178 
179 
180  #endif /* RECORD_INTERNAL_IM */
181 
182 
183  #ifdef RECORD_INTERNAL_INTERFACE
184 
185  #define PN_MAX_CHASSI_ID_LEN 255
186  #define PN_MAX_PEER_ID_LEN 255
187  #define PN_MAX_OWN_PORT_ID 8
188 
189  #include "os_pck.h"
190  struct _ST_PDPORTDATA_ADJ{
191  APP_BYTE byPadding;
192  APP_BYTE byPadding2;
193  APP_WORD wSlot;
194  APP_WORD wSubSlot;
195  }STRUCT_ALIGNEMENT;
196  typedef struct _ST_PDPORTDATA_ADJ PACK_ALIGNEMENT(ST_PDPORTDATA_ADJ), APP_FAR * LPST_PDPORTDATA_ADJ;
197 
198 
199 
200  struct _ST_PDPORTDATA_PART1{
201 
202  APP_BYTE byPadding;
203  APP_BYTE byPadding2;
204  APP_WORD wSlot;
205  APP_WORD wSubSlot;
206  APP_BYTE byLengthOwnPortId; /* = 8 */
207  APP_BYTE byOwnPortId[PN_MAX_OWN_PORT_ID];
208  APP_BYTE byNumberOfPeers; /* = 0 for us */
209  APP_BYTE byPadding3[2];
210 
211  }STRUCT_ALIGNEMENT;
212  typedef struct _ST_PDPORTDATA_PART1 PACK_ALIGNEMENT(ST_PDPORTDATA_PART1), APP_FAR * LPST_PDPORTDATA_PART1;
213 
214 
215  /* Variable part : depend on number of peers.
216  ------32 Align ------
217  [LengthPeerPortID, APP_BYTE
218  PeerPortID, ???????? (Max 255)
219  LengthPeerChassisID, APP_BYTE
220  PeerChassisID, ???????? (Max 255)
221  [Padding*] a, ???????? from 1 up to 3
222  ------32 Align ------
223  LineDelay, APP_DWORD
224  PeerMACAddress b]*, OctetString[6]
225  [Padding*] a, APP_BYTE[2]
226  */
227 
228  struct _ST_PDPORTDATA_PART2{
229 
230  APP_WORD wMAUType;
231  APP_BYTE byPadding4[2];
232  APP_BYTE byReserved[4];
233  APP_DWORD dwMulticastBoundary;
234  APP_WORD wLinkState;
235  APP_BYTE byPadding5[2];
236  APP_DWORD dwMediaType;
237 
238  }STRUCT_ALIGNEMENT;
239  typedef struct _ST_PDPORTDATA_PART2 PACK_ALIGNEMENT(ST_PDPORTDATA_PART2), APP_FAR * LPST_PDPORTDATA_PART2;
240 
241  #include "os_unpck.h"
242 
243  APP_WORD pdItfDataReal(LPST_AREP lpstArep,
244  LPST_DREP lpstDrep,
245  APP_LPDWORD lpdwSizeOfData,
246  APP_LPBYTE lpbyData,
247  LPST_PNIO_RW_STATUS lpStatus,
248  APP_LPBYTE lpbyAddData1,
249  APP_LPBYTE lpbyAddData2);
250 
251 
252  APP_WORD portDataReal (LPST_AREP lpstArep,
253  LPST_DREP lpstDrep,
254  APP_DWORD dwApi,
255  APP_WORD wSlot,
256  APP_WORD wSubSlot,
257  APP_LPDWORD lpdwSizeOfData,
258  APP_LPBYTE lpbyData,
259  LPST_PNIO_RW_STATUS lpStatus,
260  APP_LPBYTE lpbyAddData1,
261  APP_LPBYTE lpbyAddData2);
262 
263 
264  APP_WORD portDataAdjust(LPST_DREP lpstDrep,
265  APP_DWORD dwApi,
266  APP_WORD wSlot,
267  APP_WORD wSubSlot,
268  APP_LPDWORD lpdwSizeOfData,
269  APP_WORD wBlockType,
270  APP_LPBYTE lpbyData,
271  LPST_PNIO_RW_STATUS lpStatus,
272  APP_LPBYTE lpbyAddData1,
273  APP_LPBYTE lpbyAddData2);
274 
275  APP_WORD pdExpectedData (LPST_DREP lpstDrep,
276  APP_LPDWORD lpdwSizeOfData,
277  APP_LPBYTE lpbyData,
278  LPST_PNIO_RW_STATUS lpStatus,
279  APP_LPBYTE lpbyAddData1,
280  APP_LPBYTE lpbyAddData2);
281 
282 
283  APP_WORD pdRealData (LPST_AREP lpstArep,
284  LPST_DREP lpstDrep,
285  APP_DWORD dwApi,
286  APP_WORD wSlot,
287  APP_WORD wSubSlot,
288  APP_LPDWORD lpdwSizeOfData,
289  APP_LPBYTE lpbyData,
290  LPST_PNIO_RW_STATUS lpStatus,
291  APP_LPBYTE lpbyAddData1,
292  APP_LPBYTE lpbyAddData2);
293 
294  #endif /* RECORD_INTERNAL_INTERFACE */
295 
296  #ifdef RECORD_INTERNAL_IO
297 
298  APP_WORD recordInputData(LPST_AREP lpstArep,
299  LPST_DREP lpstDrep,
300  APP_DWORD dwApi,
301  APP_WORD wSlot,
302  APP_WORD wSubSlot,
303  APP_LPDWORD lpdwSizeOfData,
304  APP_LPBYTE lpbyData,
305  LPST_PNIO_RW_STATUS lpStatus,
306  APP_LPBYTE lpbyAddData1,
307  APP_LPBYTE lpbyAddData2);
308 
309 
310 
311 
312  APP_WORD recordOutputData(LPST_AREP lpstArep,
313  LPST_DREP lpstDrep,
314  APP_DWORD dwApi,
315  APP_WORD wSlot,
316  APP_WORD wSubSlot,
317  APP_LPDWORD lpdwSizeOfData,
318  APP_LPBYTE lpbyData,
319  LPST_PNIO_RW_STATUS lpStatus,
320  APP_LPBYTE lpbyAddData1,
321  APP_LPBYTE lpbyAddData2);
322 
323 
324  APP_WORD recordOutputSubstitue(LPST_AREP lpstArep,
325  LPST_DREP lpstDrep,
326  APP_DWORD dwApi,
327  APP_WORD wSlot,
328  APP_WORD wSubSlot,
329  APP_LPDWORD lpdwSizeOfData,
330  APP_LPBYTE lpbyData,
331  LPST_PNIO_RW_STATUS lpStatus,
332  APP_LPBYTE lpbyAddData1,
333  APP_LPBYTE lpbyAddData2);
334 
335  #endif /* RECORD_INTERNAL_IO */
336 
337 
338  APP_WORD AutoConfigurationBlock(LPST_DREP lpstDrep,
339  APP_LPDWORD lpdwSizeOfData,
340  APP_LPBYTE lpbyData,
341  LPST_PNIO_RW_STATUS lpStatus);
342 
343  APP_WORD Ar_FSUBlock(LPST_DREP lpstDrep,
344  LPST_AREP lpstArep,
345  APP_LPDWORD lpdwSizeOfData,
346  APP_LPBYTE lpbyData,
347  LPST_PNIO_RW_STATUS lpStatus);
348 
349 
350  APP_WORD Ar_FSUDataAdjustBlock(LPST_DREP lpstDrep,
351  LPST_AREP lpstArep,
352  APP_LPDWORD lpdwSizeOfData,
353  APP_LPBYTE lpbyData,
354  LPST_PNIO_RW_STATUS lpStatus);
355 
356 
357 
358 
359 
360 #endif /* RECORD_INTERNAL */
361 
362 #endif
Definition: pncbdev.h:35
Definition: rdwr.h:30
Definition: rdwr.h:39