Commit f52dd161 authored by Yann Garcia's avatar Yann Garcia
Browse files

Continue RLT implementation

parent 10e146e9
......@@ -19,6 +19,7 @@ module LibItsMapemSpatem_Functions {
// LibIts
import from ITS_Container language "ASN.1:1997" all;
import from DSRC language "ASN.1:1997" all;
import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
// LibItsCommon
import from LibItsCommon_TypesAndValues all;
......@@ -26,6 +27,9 @@ module LibItsMapemSpatem_Functions {
import from LibItsCommon_Functions all;
import from LibItsCommon_Pixits all;
// LibItsSecurity
import from LibItsSecurity_Functions all;
// LibItsMapemSpatem
import from LibItsMapemSpatem_TestSystem all;
import from LibItsMapemSpatem_TypesAndValues all;
......@@ -274,10 +278,25 @@ module LibItsMapemSpatem_Functions {
* @desc Brings the IUT into an initial state.
* @return FncRetCode
*/
function f_prInitialState() runs on ItsMapemSpatem return FncRetCode {
function f_prInitialState(
in charstring p_certificate_id := ""
) runs on ItsMapemSpatem return FncRetCode {
var FncRetCode v_ret := e_success;
f_utInitializeIut(m_mapemSpatemInitialize);
// Initialize IUT with given certificate
if (p_certificate_id != "") { // Initialize IUT with given certificate
var HashedId8 v_hashedId8 := '0000000000000000'O;
fx_readCertificateDigest("CERT_SRM_SSP_NONE", v_hashedId8);
if ('0000000000000000'O == v_hashedId8) {
// Certificate not found
log("*** " & testcasename() & ": Required IUT certificate is not found on the test system ***");
return e_timeout;
}
f_utInitializeIut(m_mapemSpatemInitialize(v_hashedId8));
} else {
f_utInitializeIut(m_mapemSpatemInitialize);
}
f_prDefault();
return v_ret;
}
......
......@@ -48,20 +48,26 @@ module LibItsMapemSpatem_Pics {
* @desc Support for MAPEM reception
* @see TODO
*/
modulepar boolean PICS_MAPEM_HAS_LANE_WIDTH := false;
modulepar boolean PICS_MAPEM_TRANSMISSION_RATE := false;
/**
* @desc Support for MAPEM reception
* @desc Support for MAPEM pedestrians manoeuvres
* @see TODO
*/
modulepar boolean PICS_MAPEM_TRANSMISSION_RATE := false;
modulepar boolean PICS_PEDESTRIAN_MANOEUVRES := false;
/**
* @desc Support for MAPEM reception
* @desc Support for MAPEM cars manoeuvres
* @see TODO
*/
modulepar boolean PICS_SPECIALIZED_CARS_MANOEUVRES := false;
/**
* @desc Support for MAPEM width attribut
* @see TODO
*/
modulepar boolean PICS_MAPEM_HAS_LANE_WIDTH := false;
/**
* @desc Support for SPATEM generation
* @see ETSI TS 103 191-1 Table A.2
......
......@@ -21,6 +21,7 @@ module LibItsMapemSpatem_Templates {
import from SPATEM_PDU_Descriptions language "ASN.1:1997" all;
import from DSRC language "ASN.1:1997" all;
import from DSRC_REGION_noCircular language "ASN.1:1997" all;
import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
// LibItsCommon
import from LibItsCommon_Functions all;
......@@ -111,8 +112,8 @@ module LibItsMapemSpatem_Templates {
*/
template (present) MapemInd mw_mapemIndWithSecurityParameters(
template (present) MAPEM p_mapemMsg,
template Bit256 p_ssp := *,
template UInt32 p_its_aid := *
template (present) Bit24 p_ssp := ?,
template (present) UInt32 p_its_aid := ?
) modifies mw_mapemInd := {
ssp := p_ssp,
its_aid := p_its_aid
......@@ -194,8 +195,8 @@ module LibItsMapemSpatem_Templates {
*/
template (present) SpatemInd mw_spatemIndWithSecurityParameters(
template (present) SPATEM p_spatemMsg,
template Bit256 p_ssp := *,
template UInt32 p_its_aid := *
template (present) Bit24 p_ssp := ?,
template (present) UInt32 p_its_aid := ?
) modifies mw_spatemInd := {
ssp := p_ssp,
its_aid := p_its_aid
......@@ -209,8 +210,10 @@ module LibItsMapemSpatem_Templates {
* @desc Send template for Upper Tester event initialization
* @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
*/
template (value) UtMapemSpatemInitialize m_mapemSpatemInitialize := {
hashedId8 := '0000000000000000'O
template (value) UtMapemSpatemInitialize m_mapemSpatemInitialize(
in HashedId8 p_hashedId8 := '0000000000000000'O
) := {
hashedId8 := p_hashedId8
}
/**
......@@ -448,7 +451,7 @@ module LibItsMapemSpatem_Templates {
ingressApproach := p_ingressApproach, // inbound Approach IDs to which this lane belongs
egressApproach := p_egressApproach, // outbound Approach IDs to which this lane belongs
laneAttributes := p_laneAttributes, // All Attribute information about the basic selected lane type
maneuvers := p_allowedManeuvers, // the permitted maneuvers for this lane
maneuvers := omit, // the permitted maneuvers for this lane
nodeList := p_nodeListXY, // Lane spatial path information as well as various Attribute information along the node path
// Attributes found here are more general and may come and go over the length of the lane.
connectsTo := p_connectsToList, // a list of other lanes and their signal group IDs each connecting lane and its signal group ID is given, therefore this element provides the information formerly in "signalGroups" in prior editions.
......@@ -492,11 +495,11 @@ module LibItsMapemSpatem_Templates {
template (present) MapData mw_defaultMapem := {
timeStamp := *,
msgIssueRevision := ?,
layerType := *,
layerID := *,
layerType := omit,
layerID := omit,
intersections := *,
roadSegments := ?,
dataParameters := *,
roadSegments := omit,
dataParameters := omit,
restrictionList := *,
regional := *
}
......@@ -522,18 +525,6 @@ module LibItsMapemSpatem_Templates {
id := p_intersectionID // a unique mapping to the intersection in question within the above region of use
}
/**
* @desc Receive template for MAPEM Message with no LayerType
*/
template (present) MapData mw_mapemLayerType(
template (present) IntersectionGeometryList p_intersections := ?,
template (present) RoadSegmentList p_roadSegments := ?,
template (present) LayerID p_layerID := ?
) modifies mw_mapem := {
layerType := ?,
layerID := p_layerID
}
template (present) IntersectionGeometry mw_intersectionGeometry(
template (present) IntersectionReferenceID p_id := ?,
template (present) MsgCount p_revision := ?,
......@@ -547,7 +538,7 @@ module LibItsMapemSpatem_Templates {
laneWidth := *, // Reference width used by all subsequent lanes unless a new width is given
speedLimits := *,
laneSet := p_laneList, // Data about one or more lanes (all lane data is found here)
preemptPriorityData := *, // data about one or more regional preempt or priority zones
preemptPriorityData := omit, // data about one or more regional preempt or priority zones
regional := *
}
......@@ -590,13 +581,25 @@ module LibItsMapemSpatem_Templates {
ingressApproach := p_ingressApproach,
egressApproach := p_egressApproach,
laneAttributes := p_laneAttributes,
maneuvers := *,
maneuvers := omit,
nodeList := ?,
connectsTo := p_connectsTo,
overlays := *,
overlays := omit,
regional := *
}
/**
* @desc Receive template for MAPEM Message with no LayerType
*/
template (present) MapData mw_mapemLayerType(
template (present) IntersectionGeometryList p_intersections := ?,
template (present) RoadSegmentList p_roadSegments := ?,
template (present) LayerID p_layerID := ?
) modifies mw_mapem := {
layerType := omit,
layerID := p_layerID
}
} // End of group mapemTemplatesRecv
template (present) NodeXY mw_nodeXY(
......
......@@ -111,7 +111,7 @@ module LibItsMapemSpatem_TestSystem {
UInt8 gnTrafficClass optional,
UInt16 btpDestinationPort optional,
UInt16 btpInfo optional,
Bit256 ssp optional,
Bit24 ssp optional,
UInt32 its_aid optional
}
with {
......@@ -127,7 +127,7 @@ module LibItsMapemSpatem_TestSystem {
UInt8 gnTrafficClass optional,
UInt16 btpDestinationPort optional,
UInt16 btpInfo optional,
Bit256 ssp optional,
Bit24 ssp optional,
UInt32 its_aid optional
}
with {
......
......@@ -8,6 +8,7 @@ module LibItsRtcmem_Functions {
// LibIts
import from ITS_Container language "ASN.1:1997" all;
import from RTCMEM_PDU_Descriptions language "ASN.1:1997" all;
import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
// LibItsCommon
import from LibItsCommon_TypesAndValues all;
......@@ -15,6 +16,9 @@ module LibItsRtcmem_Functions {
import from LibItsCommon_Functions all;
import from LibItsCommon_Pixits all;
// LibItsSecurity
import from LibItsSecurity_Functions all;
// LibItsRtcmem
import from LibItsRtcmem_TestSystem all;
import from LibItsRtcmem_TypesAndValues all;
......@@ -317,10 +321,25 @@ module LibItsRtcmem_Functions {
* @desc Brings the IUT into an initial state.
* @return FncRetCode
*/
function f_prInitialState() runs on ItsRtcmem return FncRetCode {
function f_prInitialState(
in charstring p_certificate_id := ""
) runs on ItsRtcmem return FncRetCode {
var FncRetCode v_ret := e_success;
f_utInitializeIut(m_rtcmemInitialize);
// Initialize IUT with given certificate
if (p_certificate_id != "") { // Initialize IUT with given certificate
var HashedId8 v_hashedId8 := '0000000000000000'O;
fx_readCertificateDigest("CERT_SRM_SSP_NONE", v_hashedId8);
if ('0000000000000000'O == v_hashedId8) {
// Certificate not found
log("*** " & testcasename() & ": Required IUT certificate is not found on the test system ***");
return e_timeout;
}
f_utInitializeIut(m_rtcmemInitialize(v_hashedId8));
} else {
f_utInitializeIut(m_rtcmemInitialize);
}
f_prDefault();
return v_ret;
}
......
......@@ -8,6 +8,7 @@ module LibItsRtcmem_Templates {
import from ITS_Container language "ASN.1:1997" all;
import from RTCMEM_PDU_Descriptions language "ASN.1:1997" all;
import from DSRC language "ASN.1:1997" all;
import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
// LibItsCommon
import from LibItsCommon_TypesAndValues all;
......@@ -97,8 +98,8 @@ module LibItsRtcmem_Templates {
*/
template (present) RtcmemInd mw_rtcmemIndWithSecurityParameters(
template (present) RTCMEM p_rtcmemMsg,
template Bit24 p_ssp := *,
template UInt32 p_its_aid := *
template (present) Bit24 p_ssp := ?,
template (present) UInt32 p_its_aid := ?
) modifies mw_rtcmemInd := {
ssp := p_ssp,
its_aid := p_its_aid
......@@ -112,8 +113,10 @@ module LibItsRtcmem_Templates {
* @desc Send template for Upper Tester event initialization
* @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
*/
template (value) UtRtcmemInitialize m_rtcmemInitialize := {
hashedId8 := '0000000000000000'O
template (value) UtRtcmemInitialize m_rtcmemInitialize(
in HashedId8 p_hashedId8 := '0000000000000000'O
) := {
hashedId8 := p_hashedId8
}
/**
......
......@@ -111,8 +111,8 @@ module LibItsSremSsem_Templates {
*/
template (present) SremInd mw_sremIndWithSecurityParameters(
template (present) SREM p_sremMsg,
template Bit24 p_ssp := *,
template UInt32 p_its_aid := *
template (present) Bit24 p_ssp := ?,
template (present) UInt32 p_its_aid := ?
) modifies mw_sremInd := {
ssp := p_ssp,
its_aid := p_its_aid
......@@ -194,8 +194,8 @@ module LibItsSremSsem_Templates {
*/
template (present) SsemInd mw_ssemIndWithSecurityParameters(
template (present) SSEM p_ssemMsg,
template Bit24 p_ssp := *,
template UInt32 p_its_aid := *
template (present) Bit24 p_ssp := ?,
template (present) UInt32 p_its_aid := ?
) modifies mw_ssemInd := {
ssp := p_ssp,
its_aid := p_its_aid
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment