versadac  1
versadac - Scalable Recorder Firmware
alm.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 : Alarm */
15 /* $Workfile:: alm.h $*/
16 /* $Revision:: 4 $*/
17 /* $Date:: 10/06/10 14:44 $*/
18 /* */
19 /*---------------------------------------------------------------------------*/
20 /* */
21 /* D e s c r i p t i o n : */
22 /* - Main user alarm thread */
23 /*---------------------------------------------------------------------------*/
24 
25 #ifndef _ALM_H
26 #define _ALM_H
27 
28 
29 /* #### STATE MACHINE #### */
30 #define STATE_ALPMR_POWER_ON 0
31 #define STATE_ALPMR_W_START 1
32 #define STATE_ALPMR_W_START_APMS 2
33 #define STATE_ALPMR_W_START_APMR 3
34 #define STATE_ALPMR_W_NOTIFY 4
35 #define STATE_ALPMR_W_AACK 5
36 #define STATE_ALPMR_W_USER_ACK 6
37 #define STATE_ALPMR_W_CLOSE_APMR 7
38 #define STATE_ALPMR_W_CLOSE_APMS 8
39 
40 
41 
42 
43 #define STATE_ALPMI_POWER_ON 0
44 #define STATE_ALPMI_W_START 1
45 #define STATE_ALPMI_W_START_APMS 2
46 #define STATE_ALPMI_W_START_APMR 3
47 #define STATE_ALPMI_W_ALARM 4
48 #define STATE_ALPMI_W_ACK 5
49 #define STATE_ALPMI_W_AACK 6
50 #define STATE_ALPMI_W_CLOSE_APMR 7
51 #define STATE_ALPMI_W_CLOSE_APMS 8
52 
53 
54 
55 #define STATE_APMR_CLOSED 1
56 #define STATE_APMR_OPEN 2
57 #define STATE_APMR_WACK 3
58 
59 #define STATE_APMS_CLOSED 1
60 #define STATE_APMS_OPEN 2
61 #define STATE_APMS_WACK 3
62 
63 #define ALPMI_SET_STATE(a, b) a->wStateALPMI = b
64 #define ALPMR_SET_STATE(a, b) a->wStateALPMR = b
65 #define APMR_SET_STATE(a, b) a->wStateAPMR = b
66 #define APMS_SET_STATE(a, b) a->wStateAPMS = b
67 
68 #define ALPMI_GET_STATE(a) a->wStateALPMI
69 #define ALPMR_GET_STATE(a) a->wStateALPMR
70 #define APMR_GET_STATE(a) a->wStateAPMR
71 #define APMS_GET_STATE(a) a->wStateAPMS
72 
73 
74 typedef enum _type_alarme
75 {
76  eDATA = 1,
77  eNAK = 2,
78  eACK = 3,
79  eERR = 4
80 }EN_PDUType;
81 
82 #define PDUType_Type 0x0F
83 #define PDUType_Version 0xF0
84 
85 
86 #define AddFlags_WindowsSize 0x0F
87 #define AddFlags_TACK 0x10
88 #define AddFlags_reserved 0xE0
89 #define MAX_ALARM_SPECIFIER 2047
90 #define MAX_ALARM_SPECIFIER_MASK 0xF800
91 
92 typedef enum _prio_alarme
93 {
94  eAlmPrioLow = 5,
95  eAlmPrioHigh = 6
96 }EN_PRIO_ALARM;
97 
98 typedef enum {
99  eADiagnosis = 1,
100  eAProcess = 2,
101  eAPull = 3,
102  eAPlug = 4,
103  eAStatus = 5,
104  eAUpdate = 6,
105  eARed = 7,
106  eACtrSV = 8,
107  eARelSV = 9,
108  eAPlugWrong = 10,
109  eAReturnSubM = 11,
110  eANullDiagn = 12,
111  eASubscr = 13,
112  eAPortInfo = 15,
113  eASync = 16,
114  eAIsochr = 17
115 } ALARM_TYPE;
116 
117 #include "os_pck.h"
118 
120 APP_DWORD dwAPI; /*0 - 4*/
121 APP_DWORD dwModuleIdentnumber; /*4 - 4*/
122 APP_DWORD dwSubModuleIdentNumber; /*8 - 4*/
123 APP_WORD wAlarmPrio; /*12 - 2*/
124 APP_WORD wAlarmType; /*14 - 2*/
125 APP_WORD wSlotNumber; /*16 - 2*/
126 APP_WORD wSubSlotNumber; /*18 - 2*/
127 APP_WORD wAlarmSpecifier; /*20 - 2*/
128 APP_WORD User_Structure_Identifier; /*22 - 2*/
129 APP_WORD User_Data; /*24 - 2*/
130 APP_WORD wAlarmItem; /*26 - 2*/
131 }PACK_ALIGNEMENT(ST_DATA_ALARM_NOTIFICATION), APP_FAR * LPST_DATA_ALARM_NOTIFICATION;
132 #define ST_DATA_ALARM_NOTIFICATION_SIZEOF sizeof(ST_DATA_ALARM_NOTIFICATION)
133 
135 {
136 ST_BLOCK_HEADER stBlockHeader; /*0 - 6*/
137 APP_WORD wAlarmType; /*6 - 2*/
138 APP_DWORD dwAPI; /*8 - 4*/
139 APP_WORD wSlotNumber; /*12 - 2*/
140 APP_WORD wSubSlotNumber; /*14 - 2*/
141 APP_DWORD dwModuleIdentnumber; /*16 - 4*/
142 APP_DWORD dwSubModuleIdentNumber;/*20 - 4*/
143 APP_WORD wAlarmSpecifier; /*24 - 2*/
144 /*APP_WORD wAlarmItem;*/ /*26 - 2*/
145 }STRUCT_ALIGNEMENT;
146 typedef struct _ST_FRAME_ALARM_NOTIFICATION PACK_ALIGNEMENT(ST_FRAME_ALARM_NOTIFICATION), APP_FAR * LPST_FRAME_ALARM_NOTIFICATION;
147 #define ST_FRAME_ALARM_NOTIFICATION_SIZEOF sizeof(ST_FRAME_ALARM_NOTIFICATION)
148 
150 {
151 ST_BLOCK_HEADER stBlockHeader; /*0 - 6*/
152 APP_WORD wAlarmType; /*6 - 2*/
153 APP_DWORD dwApi; /*8 - 4*/
154 APP_WORD wSlotNumber; /*12 - 2*/
155 APP_WORD wSubSlotNumber; /*14 - 2*/
156 APP_WORD wAlarmSpecifier; /*16 - 2*/
157 ST_PNIO_STATUS stPnioStatus; /*18 - 4*/
158 }STRUCT_ALIGNEMENT;
159 typedef struct _ST_FRAME_ALARM_ACK_ PACK_ALIGNEMENT(ST_FRAME_ALARM_ACK), APP_FAR * LPST_FRAME_ALARM_ACK;
160 #define ST_FRAME_ALARM_ACK_SIZEOF sizeof(ST_FRAME_ALARM_ACK)
161 
162 typedef struct {
163  APP_DWORD dwVersion;
164  APP_BYTE gbyEtherFrame [ETHERNET_MAX_FRAME_LENGTH];
165  APP_DWORD dwDummy;
166  APP_BYTE gbyFrameSender [ETHERNET_MAX_FRAME_LENGTH];
168 
169 #include "os_unpck.h"
170 
171 APP_WORD alarm_task(APP_LPVOID pStart);
172 
173 APP_DWORD APP_FAR alm_start (LPST_MSG* ppMsg);
174 APP_DWORD APP_FAR alm_stop (LPST_MSG* ppMsg);
175 
176 /*ALPMI*/
177 APP_DWORD APP_FAR alpmi_active_req (LPST_MSG* ppMsg);
178 APP_DWORD APP_FAR alpmi_close_req (LPST_MSG* ppMsg);
179 APP_DWORD APP_FAR alpmi_alarm_notification_req(LPST_MSG* ppMsg);
180 
181 /*ALPMR*/
182 APP_DWORD APP_FAR alpmr_active_req (LPST_MSG* ppMsg);
183 APP_DWORD APP_FAR apmr_active_cnf_pos (LPST_MSG* ppMsg);
184 APP_DWORD APP_FAR apmr_active_cnf_neg (LPST_MSG* ppMsg);
185 
186 APP_DWORD APP_FAR alpmr_close_req (LPST_MSG* ppMsg);
187 APP_DWORD APP_FAR apmr_close_cnf_neg (LPST_MSG* ppMsg);
188 APP_DWORD APP_FAR apmr_close_cnf_pos (LPST_MSG* ppMsg);
189 APP_DWORD APP_FAR apms_close_cnf_pos (LPST_MSG* ppMsg);
190 APP_DWORD APP_FAR apms_close_cnf_neg (LPST_MSG* ppMsg);
191 
192 APP_DWORD APP_FAR alpmr_ack_req (LPST_MSG* ppMsg);
193 APP_DWORD APP_FAR apmr_data_ind (LPST_MSG* ppMsg);
194 APP_DWORD APP_FAR apmr_error_ind (LPST_MSG* ppMsg);
195 
196 /*RECEIVER*/
197 APP_DWORD APP_FAR apmr_active_req (LPST_MSG* ppMsg);
198 APP_DWORD APP_FAR apmr_close_req (LPST_MSG* ppMsg);
199 APP_DWORD APP_FAR apmr_ack_req (LPST_MSG* ppMsg);
200 APP_DWORD APP_FAR apmr_a_data_ind (LPST_MSG* ppMsg);
201 APP_DWORD APP_FAR apmr_ack_cnf_pos (LPST_MSG* ppMsg);
202 APP_DWORD APP_FAR apmr_ack_cnf_neg (LPST_MSG* ppMsg);
203 
204 /*SENDER*/
205 APP_DWORD APP_FAR apms_a_data_ind (LPST_MSG* ppMsg);
206 APP_DWORD APP_FAR apms_a_data_req (LPST_MSG* ppMsg);
207 APP_DWORD APP_FAR apms_active_req (LPST_MSG* ppMsg);
208 APP_DWORD APP_FAR apms_close_req (LPST_MSG* ppMsg);
209 APP_DWORD APP_FAR apms_active_cnf_pos (LPST_MSG* ppMsg);
210 APP_DWORD APP_FAR apms_active_cnf_neg (LPST_MSG* ppMsg);
211 APP_DWORD APP_FAR apms_a_data_cnf_pos (LPST_MSG* ppMsg);
212 APP_DWORD APP_FAR apms_error_ind (LPST_MSG* ppMsg);
213 APP_DWORD APP_FAR apms_a_data_cnf_neg (LPST_MSG* ppMsg);
214 APP_DWORD APP_FAR apms_a_data_cnf (LPST_MSG* ppMsg);
215 APP_DWORD APP_FAR apms_a_timer_event_ind (LPST_MSG* ppMsg);
216 
217 /*FSPM*/
218 APP_VOID ALPMR_Alarm_Notification_ind (LPST_CREP_ALM lpCREP , APP_LPVOID lpData , APP_WORD wLen );
219 
220 APP_DWORD APP_FAR alpmi_apmr_a_data_ind (LPST_MSG* ppMsg);
221 
222 #define ALARM_START OS_SEND_MESSAGE_ALM (ID_ALARM_START)
223 
224 /*from alpmr to CMCTL*/
225 
226 #define A_DATA_ALPMR_IND OS_SEND_MESSAGE_ALM (ID_APMR_DATA_IND)
227 #define ERROR_APMR_IND OS_SEND_MESSAGE_ALM (ID_APMR_ERROR_IND)
228 #define ERROR_APMS_IND OS_SEND_MESSAGE_ALM (ID_APMS_ERROR_IND)
229 #define ACTIVATE_ALPMR_REQ OS_SEND_MESSAGE_ALM (ID_ALPMR_ACTIVE_REQ)
230 #define CLOSE_ALPMR_REQ OS_SEND_MESSAGE_ALM (ID_ALPMR_CLOSE_REQ)
231 #define RETURN_CLOSE_ALPMR_REQ (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_ALPMR_CLOSE_REQ; return SEND_MESSAGE
232 #define ACK_ALPMR_REQ OS_SEND_MESSAGE_ALM (ID_ALPMR_ALARM_ACK_REQ)
233 #define RETURN_ACK_ALPMR_REQ (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_ALPMR_ALARM_ACK_REQ; return SEND_MESSAGE
234 
235 
236 #ifndef IODEVICE
237 #define RETURN_CMCTL_ID_ALM_ACTIVE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_CMCTL; (*ppMsg)->wCodeFnct = ID_ALMPMR_ACTIVE_CNF_POS; return SEND_MESSAGE
238 #define RETURN_CMCTL_ID_ALM_ACTIVE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_CMCTL; (*ppMsg)->wCodeFnct = ID_ALMPMR_ACTIVE_CNF_NEG; return SEND_MESSAGE
239 #define RETURN_CMCTL_ID_ALM_CLOSE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_CMCTL; (*ppMsg)->wCodeFnct = ID_ALMPMR_CLOSE_CNF_POS; return SEND_MESSAGE
240 #define RETURN_CMCTL_ID_ALM_CLOSE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_CMCTL; (*ppMsg)->wCodeFnct = ID_ALMPMR_CLOSE_CNF_NEG; return SEND_MESSAGE
241 #endif
242 
243 #ifdef IODEVICE
244 #define RETURN_CM_ID_ALM_ACTIVE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMI_ACTIVATE_CNF_POS; return SEND_MESSAGE
245 #define RETURN_CM_ID_ALM_ACTIVE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMI_ACTIVATE_CNF_NEG; return SEND_MESSAGE
246 
247 #define RETURN_CM_ID_ALPMR_ACTIVE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMR_ACTIVATE_CNF_POS; return SEND_MESSAGE
248 #define RETURN_CM_ID_ALPMR_ACTIVE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMR_ACTIVATE_CNF_NEG; return SEND_MESSAGE
249 
250 
251 #define RETURN_CM_ID_ALPMI_CLOSE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMI_CLOSE_CNF_POS; return SEND_MESSAGE
252 #define RETURN_CM_ID_ALPMR_CLOSE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMR_CLOSE_CNF_POS; return SEND_MESSAGE
253 
254 
255 #define RETURN_CM_ID_ALPMI_ERROR_IND (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMI_ERROR_IND; return SEND_MESSAGE
256 #define CLOSE_ALMPI_CNF_POS OS_SEND_MESSAGE_CMDEV(ID_ALPMI_CLOSE_CNF_POS)
257 #define CLOSE_ALMPR_CNF_POS OS_SEND_MESSAGE_CMDEV(ID_ALPMR_CLOSE_CNF_POS)
258 
259 #define RETURN_CM_ID_ALPMR_ERROR_IND (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMR_ERROR_IND; return SEND_MESSAGE
260 
261 #define RETURN_FSPM_ID_ALM_NOTIFICATION_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_FSPMDEV; (*ppMsg)->wCodeFnct = ID_ALPMI_IND_CNF_POS; return SEND_MESSAGE
262 #define RETURN_FSPM_ID_ALM_NOTIFICATION_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_FSPMDEV; (*ppMsg)->wCodeFnct = ID_ALPMI_IND_CNF_NEG; return SEND_MESSAGE
263 
264 #define RETURN_ALARM_ACK_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_FSPMDEV; (*ppMsg)->wCodeFnct = ID_ALPMR_ACK_CNF_NEG; return SEND_MESSAGE
265 #define SEND_FSPM_ALARM_ACK_CNF_POS OS_SEND_MESSAGE_FSPMDEV(ID_ALPMR_ACK_CNF_POS)
266 
267 
268 
269 #define RETURN_FSPM_CTRL_ALARM_NOTIFICATION (*ppMsg)->dwQueue = ID_QUEUE_FSPMDEV; (*ppMsg)->wCodeFnct = ID_FSPMDEV_ALARM_CTRL_IND; return SEND_MESSAGE
270 #define ALM_ACK_IND OS_SEND_MESSAGE_FSPMDEV(ID_ALPMI_ACK)
271 
272 
273 
274 #endif
275 
276 
277 
278 /*from alpmX to apmr */
279 #define APMR_ACK_REQ OS_SEND_MESSAGE_ALM (ID_APMR_ACK_REQ)
280 #define ACTIVATE_APMR_REQ OS_SEND_MESSAGE_ALM (ID_APMR_ACTIVE_REQ)
281 #define CLOSE_APMR_REQ OS_SEND_MESSAGE_ALM (ID_APMR_CLOSE_REQ)
282 #define RETURN_APMR_CLOSE_REQ (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_CLOSE_REQ; return SEND_MESSAGE
283 #define RETURN_APMR_ACTIVATE_REQ (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_ACTIVE_REQ; return SEND_MESSAGE
284 
285 /*from apms to alpmr */
286 #define ACTIVATE_APMS_REQ OS_SEND_MESSAGE_ALM (ID_APMS_ACTIVE_REQ)
287 #define CLOSE_APMS_REQ OS_SEND_MESSAGE_ALM (ID_APMS_CLOSE_REQ)
288 #define A_DATA_APMS_REQ OS_SEND_MESSAGE_ALM (ID_APMS_A_DATA_REQ)
289 
290 #define RETURN_A_DATA_APMS_REQ (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_A_DATA_REQ; return SEND_MESSAGE
291 /*
292 #define RETURN_ALPMR_ID_APMS_A_DATA (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_A_DATA_REQ; return SEND_MESSAGE
293 
294  #define RETURN_ALPMR_ID_APMS_ACTIVE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_ACTIVE_CNF_NEG; return SEND_MESSAGE
295 */
296 
297 
298 
299 
300 
301 #define RETURN_ALPMR_ID_APMS_ACTIVE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_ACTIVE_CNF_POS; return SEND_MESSAGE
302 #define RETURN_ALPMR_ID_APMS_ACTIVE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_ACTIVE_CNF_NEG; return SEND_MESSAGE
303 #define RETURN_ALPMR_ID_APMS_CLOSE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_CLOSE_CNF_POS; return SEND_MESSAGE
304 #define RETURN_ALPMR_ID_APMS_CLOSE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_CLOSE_CNF_NEG; return SEND_MESSAGE
305 #define RETURN_ALPMR_ID_APMS_A_DATA_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_DATA_CNF_POS; return SEND_MESSAGE
306 #define RETURN_ALPMR_ID_APMS_A_DATA_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_DATA_CNF_NEG; return SEND_MESSAGE
307 
308 #define RETURN_ALPMR_ID_APMR_ACTIVE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_ACTIVE_CNF_POS; return SEND_MESSAGE
309 #define RETURN_ALPMR_ID_APMR_ACTIVE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_ACTIVE_CNF_NEG; return SEND_MESSAGE
310 #define RETURN_ALPMX_ID_APMR_CLOSE_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_CLOSE_CNF_POS; return SEND_MESSAGE
311 #define RETURN_ALPMX_ID_APMR_CLOSE_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_CLOSE_CNF_NEG; return SEND_MESSAGE
312 #define RETURN_ALPMR_ID_APMR_ACK_CNF_POS (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_ACK_CNF_POS; return SEND_MESSAGE
313 #define RETURN_ALPMR_ID_APMR_ACK_CNF_NEG (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMR_ACK_CNF_NEG; return SEND_MESSAGE
314 
315 
316 #define APMS_A_DATA_IND OS_SEND_MESSAGE_ALM (ID_APMS_A_DATA_IND)
317 #define APMR_A_DATA_IND OS_SEND_MESSAGE_ALM (ID_APMR_A_DATA_IND)
318 
319 LPST_CREP_ALM alm_alloc (LPST_MSG ppMsg, APP_BOOL bAlpmCrep);
320 APP_WORD alm_free (LPST_CREP_ALM lpstCrep);
321 LPST_CREP_ALM GetCrep (APP_WORD wPrio , APP_LPBYTE MacAdrSrc, APP_LPBYTE MacAdrDst, APP_BOOL bCtrlAlarm);
322 LPST_CREP_ALM ArepIsPresentInListAlm(APP_WORD wPrio , LPST_AREP lpArep_search, APP_BOOL bAlpmr);
323 APP_WORD IsValidCrAlm (APP_WORD wPrio , LPST_CREP_ALM Cr_search);
324 
325 APP_BOOL PrepareRTFrameAlm(APP_LPBYTE pBuf, APP_LPBYTE bDestMac, APP_WORD wFrameId,APP_LPBYTE pbyMacAddress);
326 
327 #endif
Definition: alm.h:162
Definition: message.h:1163
Definition: alm.h:119
Definition: alm.h:149
Definition: alm.h:134