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
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
55 #define STATE_APMR_CLOSED 1
56 #define STATE_APMR_OPEN 2
57 #define STATE_APMR_WACK 3
59 #define STATE_APMS_CLOSED 1
60 #define STATE_APMS_OPEN 2
61 #define STATE_APMS_WACK 3
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
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
74 typedef enum _type_alarme
82 #define PDUType_Type 0x0F
83 #define PDUType_Version 0xF0
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
92 typedef enum _prio_alarme
121 APP_DWORD dwModuleIdentnumber;
122 APP_DWORD dwSubModuleIdentNumber;
125 APP_WORD wSlotNumber;
126 APP_WORD wSubSlotNumber;
127 APP_WORD wAlarmSpecifier;
128 APP_WORD User_Structure_Identifier;
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)
136 ST_BLOCK_HEADER stBlockHeader;
139 APP_WORD wSlotNumber;
140 APP_WORD wSubSlotNumber;
141 APP_DWORD dwModuleIdentnumber;
142 APP_DWORD dwSubModuleIdentNumber;
143 APP_WORD wAlarmSpecifier;
147 #define ST_FRAME_ALARM_NOTIFICATION_SIZEOF sizeof(ST_FRAME_ALARM_NOTIFICATION)
151 ST_BLOCK_HEADER stBlockHeader;
154 APP_WORD wSlotNumber;
155 APP_WORD wSubSlotNumber;
156 APP_WORD wAlarmSpecifier;
157 ST_PNIO_STATUS stPnioStatus;
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)
164 APP_BYTE gbyEtherFrame [ETHERNET_MAX_FRAME_LENGTH];
166 APP_BYTE gbyFrameSender [ETHERNET_MAX_FRAME_LENGTH];
169 #include "os_unpck.h"
171 APP_WORD alarm_task(APP_LPVOID pStart);
173 APP_DWORD APP_FAR alm_start (
LPST_MSG* ppMsg);
174 APP_DWORD APP_FAR alm_stop (
LPST_MSG* ppMsg);
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);
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);
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);
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);
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);
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);
218 APP_VOID ALPMR_Alarm_Notification_ind (LPST_CREP_ALM lpCREP , APP_LPVOID lpData , APP_WORD wLen );
220 APP_DWORD APP_FAR alpmi_apmr_a_data_ind (
LPST_MSG* ppMsg);
222 #define ALARM_START OS_SEND_MESSAGE_ALM (ID_ALARM_START)
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
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
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
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
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
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)
259 #define RETURN_CM_ID_ALPMR_ERROR_IND (*ppMsg)->dwQueue = ID_QUEUE_CMDEV; (*ppMsg)->wCodeFnct = ID_ALPMR_ERROR_IND; return SEND_MESSAGE
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
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)
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)
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
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)
290 #define RETURN_A_DATA_APMS_REQ (*ppMsg)->dwQueue = ID_QUEUE_ALM; (*ppMsg)->wCodeFnct = ID_APMS_A_DATA_REQ; return SEND_MESSAGE
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
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
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)
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);
325 APP_BOOL PrepareRTFrameAlm(APP_LPBYTE pBuf, APP_LPBYTE bDestMac, APP_WORD wFrameId,APP_LPBYTE pbyMacAddress);
Definition: message.h:1163