Newer
Older
/**
* @author ETSI / STF422_EETS
* @version $URL:$
* $Id:$
* @desc Inter-ITS-SCU communications (ISO 24102-4) functions
*/
module LibItsMgt_Functions {
// LibCommon
import from LibCommon_BasicTypesAndValues {
const
c_uInt8Max;
};
import from LibCommon_Sync {
function
f_selfOrClientSyncAndVerdict, f_selfOrClientSyncAndVerdictPreamble
};
import from LibCommon_VerdictControl all;
// LibIts
import from CALMllsap language "ASN.1:1997" {
type
MedType, CIaClass, CIclass
};
import from CALMmanagement language "ASN.1:1997" {
type
ITS_scuId
};
import from CALMiitsscu language "ASN.1:1997" {
type
IIC_Request,
ITS_SCUtype,
PduCounter
};
import from CALMmsap language "ASN.1:1997" {
type
CommandRef,
MN_Request_request, FWTupdate,
MF_Request_request
};
import from CALMfsap language "ASN.1:1997" {
type
GCregServer, GCregClient, GCderegClient, GCctxTxCmd, CTXrxNot
};
import from LibItsMgt_Templates all;
import from LibItsMgt_Pixits all;
import from LibIts_Interface {
type
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
ItsMgt,
MgtMNSapCommandReqInd
};
// FIXME To be removed
group mfSAP {
// /**
// * @desc Application annouce to its communication needs to the CI selection manager
// * @param p_itsAppReg the Request to be processed (ITS_S_Appl_Reg)
// * @return 'true' on success, 'false' otherwise
// * @verdict Unchanged
// *
// * See ISO/CD 24102-3 Clause C.2.2
// */
// function f_mgtItsApplReg(in template (value) ITS_S_Appl_Reg p_itsAppReg) runs on ItsMgt
// return boolean {
// var CommandRef v_commandRef := f_getNextCommandRef();
// var MgtMFSapRequestConfirmInd v_result;
//
// // Send ITS-S-Appl-Reg MF-REQUEST.request
// mgtMFSapPort.send(m_mgtMFSapRequestReq(m_itsApplReg(v_commandRef, p_itsAppReg)));
// tc_ac.start;
// // Wait for ITS-S-Appl-Reg MF-REQUEST.confirm
// alt {
// [] mgtMFSapPort.receive(mw_mgtMFSapRequestConfirmInd(mw_itsApplReg(v_commandRef))) -> value v_result {
// tc_ac.stop;
// // Return ITS_scuId value
// vc_scuId := v_result.msgIn.reqConfirm.lDMregister;
// return true;
// }
// [] tc_ac.timeout {
// log("*** f_mgtItsApplReg: FAIL: Expected MF-REQUEST.confirm service primitive not received ***");
// f_selfOrClientSyncAndVerdict("error", e_error);
// }
// } // End of 'alt' statement
//
// return false;
// } // End of function f_mgtItsApplReg
// /**
// * @desc Allows an ITS-S application to announce its communication needs to the CI selection manager
// * @param p_gCregClient Groupcast registration message
// * @return 'true' on success, 'false' otherwise
// * @verdict Unchanged on success, set to fail on error (e_timeout)
// *
// * See ISO/CD 24102-3 Clause C.2.2
// */
// function f_mgtItsApplRegToGroupcasting(in template (value)GCregClient p_gCregClient) runs on ItsMgt
// return boolean {
// var CommandRef v_commandRef := f_getNextCommandRef();
//
// // Send GCregClient MF-REQUEST.request
// mgtMFSapPort.send(m_mgtMFSapRequestReq(m_gCregClientReqReq(v_commandRef, p_gCregClient)));
// tc_ac.start;
// // Wait for GCregClient MF-REQUEST.confirm
// alt {
// [] mgtMFSapPort.receive(mw_mgtMFSapRequestConfirmInd(mdw_gCregClientReqConf(v_commandRef))) {
// tc_ac.stop;
// return true;
// }
// [] tc_ac.timeout {
// log("*** f_mgtItsApplRegToGroupcasting: FAIL: Expected MF-REQUEST.confirm service primitive not received ***");
// f_selfOrClientSyncAndVerdict("error", e_error);
// }
// } // End of 'alt' statement
//
// return false;
// } // End of function f_mgtItsApplRegToGroupcasting
// /**
// * @desc Allows an ITS-S application to deregister its registration information at the groupcasting manager using the services of the groupcasting registration handler
// * @param p_gCderegClient Groupcast deregistration message
// * @return 'true' on success, 'false' otherwise
// * @verdict Unchanged on success, set to fail on error (e_timeout)
// *
// * See ISO/CD 24102-3 Clause C.2.8
// */
// function f_mgtItsApplDeregToGroupcasting(in template (value)GCderegClient p_gCderegClient) runs on ItsMgt
// return boolean {
// var CommandRef v_commandRef := f_getNextCommandRef();
//
// // Send GCderegClient MF-REQUEST.request
// mgtMFSapPort.send(m_mgtMFSapRequestReq(m_gCderegClientReqReq(v_commandRef, p_gCderegClient)));
// tc_ac.start;
// // Wait for GCderegClient MF-REQUEST.confirm
// alt {
// [] mgtMFSapPort.receive(mw_mgtMFSapRequestConfirmInd(mdw_gCderegClientReqConf(v_commandRef))) {
// tc_ac.stop;
// return true;
// }
// [] tc_ac.timeout {
// log("*** f_mgtItsApplDeregToGroupcasting: FAIL: Expected MF-REQUEST.confirm service primitive not received ***");
// f_selfOrClientSyncAndVerdict("error", e_error);
// }
// } // End of 'alt' statement
//
// return false;
// } // End of function f_mgtItsApplDeregToGroupcasting
// /**
// * @desc
// * @param p_commandRef
// * @param p_gCregServer
// * @verdict Unchanged
// */
// function f_mgtGenerateGCregServer(in CommandRef p_commandRef, in template (value) GCregServer p_gCregServer) runs on ItsMgt {
// // Send GCregServer MF-COMMAND.request
// mgtMFSapPort.send(m_mgtMFSapRequestReq(m_gCregServerRequestReq(p_commandRef, p_gCregServer)));
// } // End of function f_mgtGenerateGCregServer
} // End of group mfSAP
// FIXME To be removed
group mnSap {
/**
* @desc Generate COMMAND.request/GCctxTxCmd message on MN-SAP
* @param p_commandRef Unique cyclic reference number of command. Same value as in related MN-REQUEST.request
* @param p_gCctxTxCmd "Service Context Message" (CTX)
* @verdict Unchanged
*/
// FIXME To be removed - Moved on NF-SAP
// function f_mgtGenerateGCctxTxCmd(in CommandRef p_commandRef, in template (value) GCctxTxCmd p_gCctxTxCmd) runs on ItsMgt {
//
// // Send GCctxTxCmd MF-COMMAND.request
// mgtMNSapPort.send(m_mgtMNSapCommandReq(m_gCctxTxCmdComReq(p_commandRef, p_gCctxTxCmd)));
// } // End of function f_mgtGenerateGCctxTxCmd
/**
* @desc Generate REQUEST.request/CTXrxNot message on MN-SAP
* @param p_commandRef Unique cyclic reference number of command. Same value as in related MN-REQUEST.request
* @param p_cTXrxNot TODO
* @verdict Unchanged
*/
// FIXME To be removed - Moved on NF-SAP
// function f_mgtGenerateCTXrxNot(in CommandRef p_commandRef, in template (value) CTXrxNot p_cTXrxNot) runs on ItsMgt {
// // Send CTXrxNot MF-REQUEST.request
// mgtMNSapPort.send(m_mgtMNSapRequestReq(m_cTXrxNotRequestReq(p_commandRef, p_cTXrxNot)));
// } // End of function f_mgtGenerateCTXrxNot
} // end of group mnSap
group functions {
/**
* @desc Triggers a request command event in the test system adaptation.
* @param p_requestRequest The remote commad to trigger
* @return FncRetCode
*/
function f_mgtMFTriggerRequest(
in template (value) MF_Request_request p_requestRequest
) runs on ItsMgt return FncRetCode {
var FncRetCode v_ret := e_success;
mgtMFSapPort.send(m_mgtMFSapRequestReq(p_requestRequest));
return v_ret;
}
} // End of group functions
group mgtAltsteps {
group mfSap {
/**
* @desc The base default.
* See ISO/CD 24102-3 Clause 8.2
*/
altstep a_mgtMFSapPortDefault() runs on ItsMgt {
[] mgtMFSapPort.receive(mw_mgtMFSapCommandReq(mw_mfCommandRequest_any)) { // Receive any MF-COMMAND.request message
log("*** a_mgtMFSapPortDefault: INFO: MF-SAP service primitive received in default ***");
repeat;
}
[] mgtMFSapPort.receive(mw_mgtMFSapRequestReq(mw_mfRequestRequest_any)) { // Receive any MF-COMMAND.request message
log("*** a_mgtMFSapPortDefault: INFO: MF-SAP service primitive received in default ***");
repeat;
}
// FIXME Add support of response to CommandRequest & RequestRequest
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
// [] mgtMFSapPort.receive(mw_mgtMFSapCommandInd(mw_mfCommandRequest_any)) { // Receive any MF-COMMAND.request message
// log("*** a_mgtMFSapPortDefault: INFO: MF-SAP service primitive received in default ***");
// repeat;
// }
// [] mgtMFSapPort.receive(mw_mgtMFSapRequestConfirmInd(mw_mfRequestConfirm_any)) { // Receive any MF-REQUEST.confirm message
// log("*** a_mgtMFSapPortDefault: INFO: MF-SAP service primitive received in default ***");
// repeat;
// }
[] mgtMFSapPort.receive { // Receive unknown message
log("*** a_mgtMFSapPortDefault: ERROR: event received on MgtMFSapPort port in default ***");
f_selfOrClientSyncAndVerdict("error", e_error);
}
} // End of altstep a_mgtMFSapPortDefault
// /**
// * @desc Wait for REQUEST.confirm/GCregServer MF-REQUEST.confirm
// * @param p_commandRef Unique cyclic reference number of command. Same value as in related MN-REQUEST.request
// * @verdict Unchanged
// */
// altstep a_mgtAwaitGCregServerReqConf(in CommandRef p_commandRef) runs on ItsMgt {
//
// [] mgtMFSapPort.receive(mw_mgtMFSapRequestConfirmInd(mdw_gCregServerRequestConf(p_commandRef))) {
// log("*** a_mgtAwaitGCregServerReqConf: INFO: MF-SAP GCregServer service primitive received ***");
// repeat;
// }
// } // End of altstep a_mgtAwaitGCregServerReqConf
} // End of group mfSap
group mnSap {
/**
* @desc The base default.
* See ISO/CD 24102-3 Clause 8.2
*/
altstep a_mgtMNSapPortDefault() runs on ItsMgt {
[] mgtMNSapPort.receive(mw_mgtMNSapCommandInd(mw_mnCommandConfirm_any)) { // Receive any MF-COMMAND.confirm message
log("*** a_mgtMNSapPortDefault: INFO: MN-SAP service primitive MF-COMMAND.confirm received in default ***");
repeat;
}
[] mgtMNSapPort.receive(mw_mgtMNSapRequestConfirmInd(mw_mnRequestConfirm_any)) { // Receive any MF-REQUEST.confirm message
log("*** a_mgtMNSapPortDefault: INFO: MN-SAP service primitive MF-REQUEST.confirm received in default ***");
repeat;
}
[] mgtMNSapPort.receive(mw_mgtMNSapRequestReqInd(mw_mnRequestRequest_any)) { // Receive any MF-REQUEST.requesy message
log("*** a_mgtMNSapPortDefault: INFO: MN-SAP service primitive MF-REQUEST.request received in default ***");
repeat;
}
[] mgtMNSapPort.receive { // Receive unknown message
log("*** a_mgtMNSapPortDefault: ERROR: event received on MgtMNSapPort port in default ***");
f_selfOrClientSyncAndVerdict("error", e_error);
}
} // End of altstep a_mgtMNSapPortDefault
/**
* @desc Wait for MN_COMMAND/FWTupdate message
* @verdict Unchanged
* @see ISO/WD 24102-4 - Clause 7.2.2
*/
altstep a_mgtSapAwaitFWTupdate() runs on ItsMgt {
var MgtMNSapCommandReqInd v_fWTupdate;
[] mgtMNSapPort.receive(mw_mgtMNSapCommandReqInd(mw_fWTUpdateCommandReq)) -> value v_fWTupdate {
// TODO Check if vc_noFNTPfwtEntry is used
//vc_noFNTPfwtEntry := v_fWTupdate.msgIn.command_param.mnCmd.fWTupdate.update.fntp.delete.fntp.reference;
log("*** a_mgtSapAwaitFWTupdate: INFO: MN-SAP FWTupdate service primitive received: vc_noFNTPfwtEntry=" & int2str(vc_noFNTPfwtEntry) & " ***");
}
} // End of altstep a_mgtSapAwaitFWTupdate
/**
* @desc Wait for a notification of creation of an entry in a forwarding table.
* @see ISO/WD 24102-4 Clause E.2.2 FWTsetNot
* @verdict Unchanged
*/
altstep a_mgtAwaitFWTsetNot() runs on ItsMgt {
[] mgtMNSapPort.receive(mw_mgtMNSapRequestReqInd(mdw_fWTSetNotRequestReq)) {
log("*** a_mgtAwaitFWTupdateNot: INFO: MN-SAP FWTupdateNot service primitive received ***");
}
} // End of altstep a_mgtAwaitFWTupdateNot
// /**
// * @desc Wait for a notification of an update of an entry in a forwarding table.
// * @see ISO/WD 24102-4 Clause E.2.3 FWTupdateNot
// * @verdict Unchanged
// */
// altstep a_mgtAwaitFWTupdateNot() runs on ItsMgt {
//
// [] mgtMNSapPort.receive(mw_mgtMNSapRequestReqInd(mdw_fWTupdateNotRequestReq)) {
// log("*** a_mgtAwaitFWTupdateNot: INFO: MN-SAP FWTupdateNot service primitive received ***");
// }
// } // End of altstep a_mgtAwaitFWTupdateNot
//
/**
* @desc Wait for a notification of deletion of an entry in a forwarding table.
* @see ISO/WD 24102-4 Clause E.2.4 FWTdeleteNot
* @verdict Unchanged
*/
// FIXME To be removed - Moved on NF-SAP
// altstep a_mgtAwaitFWTdeleteNot() runs on ItsMgt {
//
// [] mgtMNSapPort.receive(mw_mgtMNSapRequestReqInd(mdw_fWTdeleteNotRequestReq)) {
// log("*** a_mgtAwaitFWTdeleteNot: INFO: MN-SAP FWDdelateNot service primitive received ***");
// }
// } // End of altstep a_mgtAwaitFWTdeleteNot
// /**
// * @desc Wait for REQUEST.confirm/CTXrxNot MF-REQUEST.confirm
// * @param p_commandRef Unique cyclic reference number of command. Same value as in related MN-REQUEST.request
// * @verdict Unchanged
// */
// altstep a_mgtAwaitCTXrxNotReqConf(in CommandRef p_commandRef) runs on ItsMgt {
//
// [] mgtMNSapPort.receive(mw_mgtMNSapRequestConfirmInd(mdw_cTXrxNotRequestConf(p_commandRef))) {
// tc_ac.stop;
// log("*** a_mgtAwaitCTXrxNotReqConf: INFO: MN-SAP service primitive received ***");
// }
// } // End of altstep a_mgtAwaitCTXrxNotReqConf
//
} // End of group mnSap
} // End of group mgtAltsteps
group iiscFunctions {
/**
* @desc Triggers a request command event in the test system adaptation.
* @param p_rCmd The remote commad to trigger
* @return FncRetCode
*/
function f_iiscTriggerRequest(
in template (value) IIC_Request p_rCmd
) runs on ItsMgt return FncRetCode {
var FncRetCode v_ret := e_success;
iiscPort.send(m_iiscReq(p_rCmd));
return v_ret;
}
} // End of group iiscFunctions
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
group iiscAltsteps {
// /**
// * @desc Trap for not processed IICP message
// * @verdict Unchanged
// */
// altstep a_iiscAwaitFWTupdateNot(
// in template (value) ITS_scuId p_sourceITS_scuId,
// in template (value) ITS_scuId p_destinationITS_scuId,
// in template (value) PduCounter p_pduCounter
// ) runs on ItsMgt {
// [] iiscPort.receive(//mw_iiscResp(mdw_fWTupdateNotRequestReq)) {
// mw_iiscResp(
// mw_iiscMnRequestReq(
// p_sourceITS_scuId,
// p_destinationITS_scuId,
// p_pduCounter,
// mdw_fWTupdateNotRequestReq))) {
// log("*** a_iiscAwaitFWTupdateNot: INFO: IISC FWTupdateNot service primitive received ***");
// repeat;
// }
// } // End of function a_iiscAwaitFWTupdateNot
/**
* @desc Inter-ITS-SCU communications MN-rreq (see ISO/CD 24102-5) with payload MN-Request "SAMrxNot" (see ISO/CD 24102-3 & ISO/CD 24102-5)
* @param p_sourceITS-scuId ITS-SCU-ID of the source ITS-SCU which produces the request
* @param p_destinationITS-scuId ITS-SCU-ID of the destination ITS-SCU which shall evaluate the request
* @param p_pduCounter Even number generated fro a cyclic counter at the ITS-SCU
* @param p_mn_rreq The MN-REQUEST.request/SAMrxNot to be forwarded
* @verdict Unchanged
*/
// altstep a_iiscAwaitSAMrxNotRequestReq(
// in template (value) ITS_scuId p_sourceITS_scuId,
// in template (value) ITS_scuId p_destinationITS_scuId,
// in template (value) PduCounter p_pduCounter,
// in template (value) MN_Request_request p_mn_rreq // FIXME Replace MN_Request_request by SAMrxNot template
// ) runs on ItsMgt {
// [] iiscPort.receive(
// mw_iiscResp(
// mw_iiscMnRequestReq(
// p_sourceITS_scuId,
// p_destinationITS_scuId,
// p_pduCounter,
// p_mn_rreq))) { // Receive MN-REQUEST.request/SAMrxNot message
// log("*** a_iiscAwaitSAMrxNotRequestReq: INFO: Remote command service primitive received in default ***");
// repeat;
// }
// } // End of altstep a_iiscAwaitSAMrxNotRequestReq
/**
* @desc Inter-ITS-SCU communications MN-rreq (see ISO/WD 24102-4) with payload MN-Request "CTXrxNot" (see ISO/CD 24102-3 & ISO/CD 24102-5)
* @param p_sourceITS-scuId ITS-SCU-ID of the source ITS-SCU which produces the request
* @param p_destinationITS-scuId ITS-SCU-ID of the destination ITS-SCU which shall evaluate the request
* @param p_pduCounter Even number generated fro a cyclic counter at the ITS-SCU
* @param p_mn_rcmd The MN-REQUEST.request/SAMrxNot to be forwarded
* @verdict Unchanged
*/
// altstep a_iiscAwaitCTXrxNotRequestReq(
// in template (value) ITS_scuId p_sourceITS_scuId,
// in template (value) ITS_scuId p_destinationITS_scuId,
// in template (value) PduCounter p_pduCounter,
// in template (value) MN_Request_request p_mn_rreq // FIXME Replace MN_Request_request by CTXrxNot template
// ) runs on ItsMgt {
// [] iiscPort.receive(mw_iiscResp(mw_iiscMnRequestReq(
// p_sourceITS_scuId,
// p_destinationITS_scuId,
// p_pduCounter,
// p_mn_rreq))) { // Receive MN-REQUEST.request/CTXrxNot message
// log("*** a_iiscAwaitCTXrxNotRequestReq: INFO: Remote command service primitive received in default ***");
// repeat;
// }
// } // End of altstep a_iiscAwaitCTXrxNotRequestReq
/**
* @desc Trap for not processed IICP message.
* @verdict Set to fail on unknown message
*/
altstep a_iiscDefault() runs on ItsMgt {
// FIXME To be removed if we have not to check remote command request
// [] iiscPort.receive(mw_iiscReq(mw_iiscRequest_any)) { // Receive any IIC-Request message
// log("*** a_iiscDefault: INFO: Remote IIC-Request command service primitive received in default ***");
// repeat;
// }
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
[] iiscPort.receive(mw_iiscResp(mw_iiscResponse_any)) { // Receive any IIC-Response message
log("*** a_iiscDefault: INFO: Remote IIC-Response command service primitive received in default ***");
repeat;
}
[] iiscPort.receive { // Receive unknown message
log("*** a_iiscDefault: ERROR: event received on IISC port in default ***");
f_selfOrClientSyncAndVerdict("error", e_error);
}
} // End of altstep a_iiscDefault
} // End of group iiscAltsteps
group preambule {
// /**
// * @desc TODO
// *
// * See ISO/CD 29281-2 Clause 7.8.1
// */
// function f_fntpForwardingTableRegisterEntry() runs on ItsMgt {
// var PduCounter v_pduCounter;
// var CommandRef v_commandRef;
//
// // Get a pdu counter value
// v_pduCounter := f_getNextPduCounter();
// v_commandRef := f_getNextCommandRef();
//
// // Send FWSet MN-COMMAND
// iiscPort.send(m_iiscReq(
// m_remoteMnCommandRequest(
// PX_SRC_ITS_SCU_ID,
// PX_DST_ITS_SCU_ID,
// v_pduCounter,
// m_mnCommandRequest(
// v_commandRef,
// m_mnFWTSet(
// PX_HOST_CIID,
// PX_HOST_SCU_ID,
// PX_REMOTE_PORT,
// PX_HOST_SCU_ID,
// PX_USER_PRIORITY)))));
// tc_ac.start;
// alt {
// [] iiscPort.receive(mw_iiscResp(
// mw_mnCommandConfirm(
// PX_DST_ITS_SCU_ID,
// PX_SRC_ITS_SCU_ID,
// v_pduCounter + 1, // ISO/WD 24102-4 - Clause 6.2.1
// mw_mnCommandConfirmAny // FIXME Use a more restrictive template
// ))) {
// tc_ac.stop;
// }
// [] tc_ac.timeout {
// log("*** f_fntpForwardingTableRegisterEntry: INCONC: Pre-conditions: Failed to initialize FNTP Forwarding Table ***");
// f_selfOrClientSyncAndVerdictPreamble("error", e_timeout);
// }
// } // End of 'alt' statement
//
// } // End of function f_fntpForwardingTableRegisterEntry
} // End of group preambule
group testerFunctions {
/**
* @desc Increments the pdu counter and returns the new value
* @return The new pdu counter value
*
* See ISO/WD 24102-4 - Clause 6.2.1
*/
function f_getNextPduCounter() runs on ItsMgt return PduCounter {
vc_pduCounter := (vc_pduCounter + 2) mod (c_uInt8Max - 1); // ISO/WD 24102-4 - Clause 6.2.1: modulus 254
return vc_pduCounter;
} // End of function f_getNextPduCounter
/**
* @desc Increments the commandRef value and returns it
* @return The new commandRef value
*/
function f_getNextCommandRef() runs on ItsMgt return CommandRef {
vc_commandRef := (vc_commandRef + 1) mod (c_uInt8Max + 1);
return vc_commandRef;
} // End of function f_getNextCommandRef
} // End of group testerFunctions
group iutFunctions {
/**
* @desc TODO
* @return TODO
* @verdict Unchanged
* @see PX_SRC_ITS_SCU_ID
*/
function f_getIutSourceITS_scuId() return ITS_scuId {
return PX_SRC_ITS_SCU_ID;
}
/**
* @desc TODO
* @return TODO
* @verdict Unchanged
* @see PX_DST_ITS_SCU_ID
*/
function f_getIutDestITS_scuId() return ITS_scuId {
return PX_DST_ITS_SCU_ID;
}
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
/**
* @desc TODO
* @return TODO
* @verdict Unchanged
* @see PX_SRC_ITS_SCU_TYPE
*/
function f_getIutSourceITS_scuType() return ITS_SCUtype {
return PX_SRC_ITS_SCU_TYPE;
}
/**
* @desc TODO
* @return TODO
* @verdict Unchanged
* @see PX_MED_TYPE
*/
function f_getIutMedType() return MedType {
return PX_MED_TYPE;
}
/**
* @desc TODO
* @return TODO
* @verdict Unchanged
* @see PX_CIACLASS
*/
function f_getIutCIaClass() return CIaClass {
return PX_CIACLASS;
}
/**
* @desc TODO
* @return TODO
* @verdict Unchanged
* @see PX_CICLASS
*/
function f_getIutCIClass() return CIclass {
return PX_CICLASS;
}
} // End of group iutFunctions
} // End of module LibItsMgt_Functions