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

RLT implementation

parent f5cd20fc
...@@ -16,6 +16,7 @@ module LibItsMapemSpatem_Pixits { ...@@ -16,6 +16,7 @@ module LibItsMapemSpatem_Pixits {
import from LibCommon_BasicTypesAndValues all; import from LibCommon_BasicTypesAndValues all;
// LibIts // LibIts
import from ITS_Container language "ASN.1:1997" all;
import from DSRC 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 DSRC_REGION_noCircular language "ASN.1:1997" all;
...@@ -38,7 +39,7 @@ module LibItsMapemSpatem_Pixits { ...@@ -38,7 +39,7 @@ module LibItsMapemSpatem_Pixits {
* @desc Id for IntersectionReferenceID DF sending * @desc Id for IntersectionReferenceID DF sending
* @see ETSI TS 103 191-3 Table B.7 * @see ETSI TS 103 191-3 Table B.7
*/ */
modulepar IntersectionID PX_INTERSECTION_ID := 1500; modulepar IntersectionID PX_INTERSECTION_ID := 7;
/** /**
* @desc SignalGroup for MovementState DF sending * @desc SignalGroup for MovementState DF sending
...@@ -46,4 +47,10 @@ module LibItsMapemSpatem_Pixits { ...@@ -46,4 +47,10 @@ module LibItsMapemSpatem_Pixits {
*/ */
modulepar SignalGroupID PX_SIGNAL_GROUP_ID := 128; modulepar SignalGroupID PX_SIGNAL_GROUP_ID := 128;
/**
* @desc 3D Reference point latitude
* @see ETSI TS 103 191-3 Table B.7
*/
modulepar Latitude PX_3D_REF_POINT_LATITUDE := 0;
} // end LibItsMapemSpatem_Pixits } // end LibItsMapemSpatem_Pixits
...@@ -214,10 +214,18 @@ module LibItsMapemSpatem_Templates { ...@@ -214,10 +214,18 @@ module LibItsMapemSpatem_Templates {
} }
/** /**
* @desc Send template for Upper Tester Trigger event * @desc Send template for Upper Tester Trigger event
*/ */
template (value) UtMapemSpatemTrigger m_utTriggerEvent ( Event p_event ) := { template (omit) UtMapemSpatemTrigger m_utTriggerEvent(
event := p_event in Event p_event,
in template (omit) IntersectionID p_intersectionID := omit,
in template (omit) RegulatorySpeedLimit p_regulatorySpeedLimit := omit,
in template (omit) Latitude p_latitude := omit
) := {
event := p_event,
intersectionID := p_intersectionID,
regulatorySpeedLimit := p_regulatorySpeedLimit,
latitude := p_latitude
} }
} }
...@@ -310,9 +318,9 @@ module LibItsMapemSpatem_Templates { ...@@ -310,9 +318,9 @@ module LibItsMapemSpatem_Templates {
* @param p_messageID The expected message id (Default: MAPEM id) * @param p_messageID The expected message id (Default: MAPEM id)
*/ */
template (present) ItsPduHeader mw_itsPduHeaderMapem( template (present) ItsPduHeader mw_itsPduHeaderMapem(
template (present) StationID p_stationID := ?, template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_mapem_ template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_mapem_
) := { ) := {
protocolVersion := p_protocolVersion, protocolVersion := p_protocolVersion,
messageID := p_messageID, messageID := p_messageID,
...@@ -326,9 +334,9 @@ module LibItsMapemSpatem_Templates { ...@@ -326,9 +334,9 @@ module LibItsMapemSpatem_Templates {
* @param p_messageID The expected message id (Default: SPATEM id) * @param p_messageID The expected message id (Default: SPATEM id)
*/ */
template (present) ItsPduHeader mw_itsPduHeaderSpatem( template (present) ItsPduHeader mw_itsPduHeaderSpatem(
template (present) StationID p_stationID := ?, template (present) StationID p_stationID := ?,
template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_spatem_ template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_spatem_
) := { ) := {
protocolVersion := p_protocolVersion, protocolVersion := p_protocolVersion,
messageID := p_messageID, messageID := p_messageID,
...@@ -487,7 +495,7 @@ module LibItsMapemSpatem_Templates { ...@@ -487,7 +495,7 @@ module LibItsMapemSpatem_Templates {
layerType := *, layerType := *,
layerID := *, layerID := *,
intersections := *, intersections := *,
roadSegments := *, roadSegments := ?,
dataParameters := *, dataParameters := *,
restrictionList := *, restrictionList := *,
regional := * regional := *
...@@ -496,17 +504,32 @@ module LibItsMapemSpatem_Templates { ...@@ -496,17 +504,32 @@ module LibItsMapemSpatem_Templates {
/** /**
* @desc Receive template for MAPEM Message with no LayerType * @desc Receive template for MAPEM Message with no LayerType
*/ */
template (present) MapData mw_mapemWellFormatted modifies mw_defaultMapem := { template (present) MapData mw_mapem(
template (present) IntersectionGeometryList p_intersections := ?,
template (present) RoadSegmentList p_roadSegments := ?
) modifies mw_defaultMapem := {
layerType := omit, layerType := omit,
layerID := omit layerID := omit,
intersections := p_intersections,
roadSegments := p_roadSegments
}
template (present) IntersectionReferenceID mw_intersectionReferenceID(
template (present) IntersectionID p_intersectionID := ?,
template RoadRegulatorID p_roadRegulatorID := *
) := {
region := p_roadRegulatorID, // a globally unique regional assignment value typical assigned to a regional DOT authority the value zero shall be used for testing needs
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 * @desc Receive template for MAPEM Message with no LayerType
*/ */
template (present) MapData mw_mapemLayerType( template (present) MapData mw_mapemLayerType(
in template (present) LayerID p_layerID := ? template (present) IntersectionGeometryList p_intersections := ?,
) modifies mw_mapemWellFormatted := { template (present) RoadSegmentList p_roadSegments := ?,
template (present) LayerID p_layerID := ?
) modifies mw_mapem := {
layerType := ?, layerType := ?,
layerID := p_layerID layerID := p_layerID
} }
...@@ -528,6 +551,17 @@ module LibItsMapemSpatem_Templates { ...@@ -528,6 +551,17 @@ module LibItsMapemSpatem_Templates {
regional := * regional := *
} }
template (present) Position3D mw_position3D(
template (present) Latitude p_latitude := ?,
template (present) Longitude p_longitude := ?,
template Position3D.regional p_regional := *
) := {
lat := p_latitude, // in 1/10th micro degrees
long := p_longitude, // in 1/10th micro degrees
elevation := omit, // in 10 cm units
regional := p_regional
}
template (present) RoadSegment mw_roadSegment( template (present) RoadSegment mw_roadSegment(
template (present) RoadSegmentReferenceID p_id := ?, template (present) RoadSegmentReferenceID p_id := ?,
template (present) MsgCount p_revision := ?, template (present) MsgCount p_revision := ?,
...@@ -544,8 +578,45 @@ module LibItsMapemSpatem_Templates { ...@@ -544,8 +578,45 @@ module LibItsMapemSpatem_Templates {
regional := * regional := *
} }
template (present) GenericLane mw_roadLane(
template (present) LaneID p_laneID := ?,
template (present) LaneAttributes p_laneAttributes := ?,
template ApproachID p_ingressApproach := *,
template ApproachID p_egressApproach := *,
template ConnectsToList p_connectsTo := *
) := {
laneID := p_laneID,
name := *,
ingressApproach := p_ingressApproach,
egressApproach := p_egressApproach,
laneAttributes := p_laneAttributes,
maneuvers := *,
nodeList := ?,
connectsTo := p_connectsTo,
overlays := *,
regional := *
}
} // End of group mapemTemplatesRecv } // End of group mapemTemplatesRecv
template (present) NodeXY mw_nodeXY(
template (present) NodeOffsetPointXY p_delta := ?,
template (present) NodeAttributeSetXY p_attributes := ?
) := {
delta := p_delta,
attributes := p_attributes
}
template (present) NodeAttributeSetXY mw_nodeAttributeSetXY_default := {
localNode := *,
disabled := *,
enabled := *,
data := *,
dWidth := ?,
dElevation := *,
regional := *
}
} // End of group mapemTemplates } // End of group mapemTemplates
group spatemTemplates { group spatemTemplates {
......
...@@ -19,6 +19,8 @@ module LibItsMapemSpatem_TypesAndValues { ...@@ -19,6 +19,8 @@ module LibItsMapemSpatem_TypesAndValues {
import from ITS_Container language "ASN.1:1997" all; import from ITS_Container language "ASN.1:1997" all;
import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from MAPEM_PDU_Descriptions language "ASN.1:1997" all;
import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; 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 EfcDsrcGeneric language "ASN.1:1997" all; import from EfcDsrcGeneric language "ASN.1:1997" all;
// LibItsCommon // LibItsCommon
...@@ -30,35 +32,39 @@ module LibItsMapemSpatem_TypesAndValues { ...@@ -30,35 +32,39 @@ module LibItsMapemSpatem_TypesAndValues {
group utPrimitives { group utPrimitives {
/** /**
* @desc Upper Tester message to initialize IUT * @desc Upper Tester message to initialize IUT
* @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use * @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
*/ */
type record UtMapemSpatemInitialize { type record UtMapemSpatemInitialize {
Oct8 hashedId8 Oct8 hashedId8
} with { } with {
variant "FIELDORDER(msb)" variant "FIELDORDER(msb)"
} }
/** /**
* @desc Upper Tester results message of the MAPEM/SPATEM IUT * @desc Upper Tester results message of the MAPEM/SPATEM IUT
* @member utMapemSpatemInitialize - * @member utMapemSpatemInitialize -
* @member utMapemSpatemTriggerResult - * @member utMapemSpatemTriggerResult -
*/ */
type union UtMapemSpatemResults { type union UtMapemSpatemResults {
boolean utMapemSpatemInitializeResult, boolean utMapemSpatemInitializeResult,
boolean utMapemSpatemTriggerResult boolean utMapemSpatemTriggerResult
} with { } with {
variant "" variant ""
} // End of type UtMapemSpatemResults } // End of type UtMapemSpatemResults
/** /**
* @desc Upper Tester message to request triggering of an event at IUT * @desc Upper Tester message to request triggering of an event at IUT
*/ */
type record UtMapemSpatemTrigger { type record UtMapemSpatemTrigger {
Event event Event event,
} with { IntersectionID intersectionID,
variant "FIELDORDER(msb)" RegulatorySpeedLimit regulatorySpeedLimit,
Latitude latitude
} with {
variant "FIELDORDER(msb)"
} }
type enumerated Event { type enumerated Event {
......
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