Loading ttcn/AtsMapemSpatem/ItsSpatem_TpFunctions.ttcn +1 −1 Changes for ttcn/AtsMapemSpatem/ItsSpatem_TpFunctions.ttcn: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -595,7 +595,7 @@ module ItsSpatem_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body v_spatemReq := valueof(m_spatemReq(m_spatemPdu(m_spat))); v_spatemReq := valueof(m_spatemReq(m_spatemPdu(m_defaultSpatem))); mapemSpatemPort.send(v_spatemReq) ; f_sleep(PX_TAC); Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +88 −6 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn: 88 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -31,6 +31,12 @@ module ItsRSUsSimulator_Functions { // LibItsMapemSpatemm import from LibItsMapemSpatem_Templates all; // LibItsMapemSpatemm import from LibItsIvim_Templates all; // LibItsMapemSpatemm import from LibItsSremSsem_Templates all; // LibItsGeoNetworking import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_Functions all; Loading Loading @@ -101,7 +107,21 @@ module ItsRSUsSimulator_Functions { } // SPATEM if (PICS_GENERATE_SPATEM) { // TODO // Build the list of the DENM events for (v_counter := 0; v_counter < lengthof(PICS_SPATEM_PARMS_RSUs[PX_RSU_ID - 1]); v_counter := v_counter + 1) { v_spatems[v_counter] := m_spatemParm( PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, m_spatem( PICS_SPATEM_PARMS_RSUs[PX_RSU_ID - 1][v_counter].intersections, "SignalGroupID #" & int2str(PICS_SPATEM_PARMS_RSUs[PX_RSU_ID - 1][v_counter].signalGroupID) )); for (var integer v_intersection := 0; v_intersection < lengthof(v_spatems[v_counter].spat.intersections); v_intersection := v_intersection + 1) { vc_states[v_counter][v_intersection] := v_spatems[v_counter].spat.intersections[v_intersection].states; } // End of 'for' statement // TODO Build SPATEM with dynamic values } // End of 'for' statement // TODO Build SPATEM with dynamic values } // IVIM if (PICS_GENERATE_IVIM) { Loading Loading @@ -130,12 +150,12 @@ module ItsRSUsSimulator_Functions { if (ispresent(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].roadWorksContainerExtended)) { v_denms[v_counter].denm.alacarte := m_alacarte(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].roadWorksContainerExtended); } } // End of 'for' loop } // End of 'for' statement } // CAM if (PICS_GENERATE_CAM) { // Build the list of the CAM events v_cam := valueof( v_cam := m_camParm( PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, m_rsuPosition( Loading @@ -143,7 +163,6 @@ module ItsRSUsSimulator_Functions { vc_longPosVectorRsu.longitude ), PICS_RSU_PARAMS[PX_RSU_ID - 1].pathHistory ) ); } // Build the messages value list for this RSU Loading Loading @@ -206,6 +225,7 @@ module ItsRSUsSimulator_Functions { out template (value) Payload p_payload ) runs on ItsRSUsSimulator { // Update dynamic parms vc_rsuMessagesValueList[PX_RSU_ID - 1].denms[vc_denmEventCounter].denm.management.referenceTime := f_getCurrentTime(); p_payload := valueof( f_adaptPayload( Loading Loading @@ -238,10 +258,47 @@ module ItsRSUsSimulator_Functions { } function f_prepare_spatem( in template (value) SPATEM p_spatem, out template (value) Payload p_payload ) runs on ItsRSUsSimulator { var template (value) SPATEM v_spatem := p_spatem; // Make a copy // Rebuild SPATEM message for (var integer v_intersection := 0; v_intersection < lengthof(v_spatem.spat.intersections); v_intersection := v_intersection + 1) { var template (value) MovementList v_states := vc_states[PX_RSU_ID - 1][v_intersection]; select (vc_spatemStatesId) { case (0) { v_spatem.spat.intersections[v_intersection].states[0] := v_states[0]; v_spatem.spat.intersections[v_intersection].states[1] := v_states[1]; v_spatem.spat.intersections[v_intersection].states[2] := v_states[2]; } case (1) { v_spatem.spat.intersections[v_intersection].states[0] := v_states[1]; v_spatem.spat.intersections[v_intersection].states[1] := v_states[2]; v_spatem.spat.intersections[v_intersection].states[2] := v_states[0]; } case (2) { v_spatem.spat.intersections[v_intersection].states[0] := v_states[2]; v_spatem.spat.intersections[v_intersection].states[1] := v_states[0]; v_spatem.spat.intersections[v_intersection].states[2] := v_states[1]; } case else { } } // End of 'select' statement } // End of 'for' statement vc_spatemStatesId := (vc_spatemStatesId + 1) mod 4; // TODO To be refined p_payload := {}; // FIXME To be developped p_payload := valueof( f_adaptPayload( bit2oct( encvalue( valueof( v_spatem ))), PICS_MAPEM_BTP_DESTINATION_PORT, PICS_MAPEM_BTP_SOURCE_PORT ) ); } Loading Loading @@ -331,7 +388,32 @@ module ItsRSUsSimulator_Functions { function f_processSrem( in GeoNetworkingPdu p_geoNetworkingPdu ) runs on ItsRSUsSimulator { log("SREM=", p_geoNetworkingPdu) log("SREM=", p_geoNetworkingPdu); if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload)) { if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload)) { if (ischosen(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload.sremPacket)) { var SignalRequestMessage v_signalRequestMessage := p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload.sremPacket.srm; var template (value) SSEM v_ssem := vc_rsuMessagesValueList[PX_RSU_ID - 1].ssem; var template (value) Payload v_payload; log(v_signalRequestMessage); // Build response // TODO v_ssem.ssm.status v_payload := valueof( f_adaptPayload( bit2oct( encvalue( valueof( v_ssem ))), PICS_SSEM_BTP_DESTINATION_PORT, PICS_SSEM_BTP_SOURCE_PORT ) ); } // else, ignore message } // else, ignore message } // else, ignore message // TODO Process message, and send SSEM } Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +261 −6 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn: 261 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -294,10 +294,6 @@ module ItsRSUsSimulator_Pics { modulepar BtpPortId PICS_MAPEM_BTP_SOURCE_PORT := 0; modulepar BtpPortId PICS_SPATEM_BTP_DESTINATION_PORT := 2004; modulepar BtpPortId PICS_SPATEM_BTP_SOURCE_PORT := 0; } // End of group mapemCommonParams group mapemZone1 { Loading Loading @@ -417,24 +413,271 @@ module ItsRSUsSimulator_Pics { } // End of intersection #0 }, // End of field intersections roadSegments := omit } } // End of PICS_MAPEM_PARMS_RSU_1 } // End of group mapemZone1 group mapemZone2 { modulepar MapemParm PICS_MAPEM_PARMS_RSU_2 := { intersections := { { // Start of intersection #0 name := "PICS_MAPEM_PARMS_RSU_1", id := { region := 0, id := 0 }, revision := 0, refPoint := { lat := 435517392, long := 103018217, elevation := omit, regional := omit }, laneWidth := omit, speedLimits := omit, laneSet := { { // Start of Lane #1 laneID := 1, name := omit, ingressApproach := 1, egressApproach := 1, laneAttributes := { directionalUse := '10'B, sharedWith := '0000000000'B, laneType := { vehicle := '00000000'B }, regional := omit }, maneuvers := omit, nodeList := { nodes := { { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit }, { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit } } }, connectsTo := { { connectingLane := { lane := 1, maneuver := omit }, remoteIntersection := omit, signalGroup := 1, userClass := omit, connectionID := omit } }, overlays := omit, regional := omit }, // End of Lane #1 { // Start of Lane #2 laneID := 1, name := omit, ingressApproach := 1, egressApproach := 2, laneAttributes := { directionalUse := '01'B, sharedWith := '0000000000'B, laneType := { vehicle := '00000000'B }, regional := omit }, maneuvers := omit, nodeList := { nodes := { { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit }, { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit } } }, connectsTo := omit, overlays := omit, regional := omit } // End of Lane #1 }, // End of LaneSet preemptPriorityData := omit, regional := omit } // End of intersection #0 }, // End of field intersections roadSegments := omit } // End of PICS_MAPEM_PARMS_RSU_2 } // End of group mapemZone2 modulepar MapemParmList PICS_MAPEM_PARMS_RSUs := { modulepar MapemParmListRsu PICS_MAPEM_PARMS_RSUs := { PICS_MAPEM_PARMS_RSU_1, PICS_MAPEM_PARMS_RSU_2 } // End of PICS_MAPEM_PARMS_RSU } // End of group mapemEvents group spatemEvents { group spatemCommonParams { modulepar BtpPortId PICS_SPATEM_BTP_DESTINATION_PORT := 2004; modulepar BtpPortId PICS_SPATEM_BTP_SOURCE_PORT := 0; } // End of group spatemCommonParams group spatemZone1 { modulepar SignalGroupParm PICS_SPATEM_PARMS_SG_1_RS_1 := { signalGroupID := 1, intersections := { { name := "PICS_SPATEM_PARMS_SG_1_RS_1", id := { region := 0, id := 0 }, revision := 0, status := int2bit(0, 16), moy := omit, timeStamp := omit, enabledLanes := omit, states := { { movementName := "protected-Movement-Allowed", signalGroup := 1, state_time_speed:= { { eventState := protected_Movement_Allowed, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit }, { movementName := "protected-clearance", signalGroup := 1, state_time_speed:= { { eventState := protected_clearance, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit }, { movementName := "stop_Then_Proceed", signalGroup := 1, state_time_speed:= { { eventState := stop_Then_Proceed, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } } // End of field states } // End of type PICS_SPATEM_PARMS_SG_1_RS_1 modulepar SignalGroupParmList PICS_SPATEM_PARMS_RSU_1 := { PICS_SPATEM_PARMS_SG_1_RS_1 } // End of type PICS_SPATEM_PARMS_RSU_1 } group spatemZone2 { modulepar SignalGroupParm PICS_SPATEM_PARMS_SG_1_RS_2 := { signalGroupID := 1, intersections := { { name := "PICS_SPATEM_PARMS_SG_1_RS_2", id := { region := 0, id := 0 }, revision := 0, status := int2bit(0, 16), moy := omit, timeStamp := omit, enabledLanes := omit, states := { { movementName := "stop_Then_Proceed", signalGroup := 1, state_time_speed:= { { eventState := stop_Then_Proceed, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } } // End of field states } // End of type PICS_SPATEM_PARMS_SG_1_RS_2 modulepar SignalGroupParmList PICS_SPATEM_PARMS_RSU_2 := { PICS_SPATEM_PARMS_SG_1_RS_2 } // End of type PICS_SPATEM_PARMS_RSU_1_RS_2 } modulepar SpatemParmRsu PICS_SPATEM_PARMS_RSUs := { PICS_SPATEM_PARMS_RSU_1, PICS_SPATEM_PARMS_RSU_2 } // End of PICS_SPATEM_PARMS_RSUs } // End of group spatemEvents group ivimEvents { group ivimCommonParams { Loading Loading @@ -463,6 +706,18 @@ module ItsRSUsSimulator_Pics { } // End of group ivimEvents group ssemEvents { group ssemCommonParams { modulepar BtpPortId PICS_SSEM_BTP_DESTINATION_PORT := 2005; modulepar BtpPortId PICS_SSEM_BTP_SOURCE_PORT := 0; } // End of group ssemCommonParams } // End of group ssemEvents group generationFrequencies { modulepar boolean PICS_GENERATE_CAM := true; Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn +16 −0 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -176,6 +176,22 @@ module ItsRSUsSimulator_Templates { } // End of group mapemTemplates group spatemTemplates { template (value) SPATEM m_spatemParm( in template (value) StationID p_stationID, in template (value) SPAT p_spat ) := { header := { protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, messageID := ItsPduHeader_messageID_spatem_, stationID := p_stationID }, spat := p_spat } } // End of group spatemTemplates group ivimTemplates { } // End of group ivimTemplates Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn +3 −1 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -93,8 +93,10 @@ module ItsRSUsSimulator_TestCases { } [PICS_GENERATE_SPATEM] tc_spatem.timeout { log("*** " & testcasename() & ": DEBUG: Processing SPATEM ***"); f_prepare_spatem(v_payload); for (var integer v_counter := 0; v_counter < lengthof(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems); v_counter := v_counter + 1) { f_prepare_spatem(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems[v_counter], v_payload); f_send(v_payload); } tc_spatem.start; repeat; } Loading Loading
ttcn/AtsMapemSpatem/ItsSpatem_TpFunctions.ttcn +1 −1 Changes for ttcn/AtsMapemSpatem/ItsSpatem_TpFunctions.ttcn: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -595,7 +595,7 @@ module ItsSpatem_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body v_spatemReq := valueof(m_spatemReq(m_spatemPdu(m_spat))); v_spatemReq := valueof(m_spatemReq(m_spatemPdu(m_defaultSpatem))); mapemSpatemPort.send(v_spatemReq) ; f_sleep(PX_TAC); Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +88 −6 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn: 88 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -31,6 +31,12 @@ module ItsRSUsSimulator_Functions { // LibItsMapemSpatemm import from LibItsMapemSpatem_Templates all; // LibItsMapemSpatemm import from LibItsIvim_Templates all; // LibItsMapemSpatemm import from LibItsSremSsem_Templates all; // LibItsGeoNetworking import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_Functions all; Loading Loading @@ -101,7 +107,21 @@ module ItsRSUsSimulator_Functions { } // SPATEM if (PICS_GENERATE_SPATEM) { // TODO // Build the list of the DENM events for (v_counter := 0; v_counter < lengthof(PICS_SPATEM_PARMS_RSUs[PX_RSU_ID - 1]); v_counter := v_counter + 1) { v_spatems[v_counter] := m_spatemParm( PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, m_spatem( PICS_SPATEM_PARMS_RSUs[PX_RSU_ID - 1][v_counter].intersections, "SignalGroupID #" & int2str(PICS_SPATEM_PARMS_RSUs[PX_RSU_ID - 1][v_counter].signalGroupID) )); for (var integer v_intersection := 0; v_intersection < lengthof(v_spatems[v_counter].spat.intersections); v_intersection := v_intersection + 1) { vc_states[v_counter][v_intersection] := v_spatems[v_counter].spat.intersections[v_intersection].states; } // End of 'for' statement // TODO Build SPATEM with dynamic values } // End of 'for' statement // TODO Build SPATEM with dynamic values } // IVIM if (PICS_GENERATE_IVIM) { Loading Loading @@ -130,12 +150,12 @@ module ItsRSUsSimulator_Functions { if (ispresent(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].roadWorksContainerExtended)) { v_denms[v_counter].denm.alacarte := m_alacarte(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].roadWorksContainerExtended); } } // End of 'for' loop } // End of 'for' statement } // CAM if (PICS_GENERATE_CAM) { // Build the list of the CAM events v_cam := valueof( v_cam := m_camParm( PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, m_rsuPosition( Loading @@ -143,7 +163,6 @@ module ItsRSUsSimulator_Functions { vc_longPosVectorRsu.longitude ), PICS_RSU_PARAMS[PX_RSU_ID - 1].pathHistory ) ); } // Build the messages value list for this RSU Loading Loading @@ -206,6 +225,7 @@ module ItsRSUsSimulator_Functions { out template (value) Payload p_payload ) runs on ItsRSUsSimulator { // Update dynamic parms vc_rsuMessagesValueList[PX_RSU_ID - 1].denms[vc_denmEventCounter].denm.management.referenceTime := f_getCurrentTime(); p_payload := valueof( f_adaptPayload( Loading Loading @@ -238,10 +258,47 @@ module ItsRSUsSimulator_Functions { } function f_prepare_spatem( in template (value) SPATEM p_spatem, out template (value) Payload p_payload ) runs on ItsRSUsSimulator { var template (value) SPATEM v_spatem := p_spatem; // Make a copy // Rebuild SPATEM message for (var integer v_intersection := 0; v_intersection < lengthof(v_spatem.spat.intersections); v_intersection := v_intersection + 1) { var template (value) MovementList v_states := vc_states[PX_RSU_ID - 1][v_intersection]; select (vc_spatemStatesId) { case (0) { v_spatem.spat.intersections[v_intersection].states[0] := v_states[0]; v_spatem.spat.intersections[v_intersection].states[1] := v_states[1]; v_spatem.spat.intersections[v_intersection].states[2] := v_states[2]; } case (1) { v_spatem.spat.intersections[v_intersection].states[0] := v_states[1]; v_spatem.spat.intersections[v_intersection].states[1] := v_states[2]; v_spatem.spat.intersections[v_intersection].states[2] := v_states[0]; } case (2) { v_spatem.spat.intersections[v_intersection].states[0] := v_states[2]; v_spatem.spat.intersections[v_intersection].states[1] := v_states[0]; v_spatem.spat.intersections[v_intersection].states[2] := v_states[1]; } case else { } } // End of 'select' statement } // End of 'for' statement vc_spatemStatesId := (vc_spatemStatesId + 1) mod 4; // TODO To be refined p_payload := {}; // FIXME To be developped p_payload := valueof( f_adaptPayload( bit2oct( encvalue( valueof( v_spatem ))), PICS_MAPEM_BTP_DESTINATION_PORT, PICS_MAPEM_BTP_SOURCE_PORT ) ); } Loading Loading @@ -331,7 +388,32 @@ module ItsRSUsSimulator_Functions { function f_processSrem( in GeoNetworkingPdu p_geoNetworkingPdu ) runs on ItsRSUsSimulator { log("SREM=", p_geoNetworkingPdu) log("SREM=", p_geoNetworkingPdu); if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload)) { if (ispresent(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload)) { if (ischosen(p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload.sremPacket)) { var SignalRequestMessage v_signalRequestMessage := p_geoNetworkingPdu.gnPacket.packet.payload.decodedPayload.btpPacket.payload.decodedPayload.sremPacket.srm; var template (value) SSEM v_ssem := vc_rsuMessagesValueList[PX_RSU_ID - 1].ssem; var template (value) Payload v_payload; log(v_signalRequestMessage); // Build response // TODO v_ssem.ssm.status v_payload := valueof( f_adaptPayload( bit2oct( encvalue( valueof( v_ssem ))), PICS_SSEM_BTP_DESTINATION_PORT, PICS_SSEM_BTP_SOURCE_PORT ) ); } // else, ignore message } // else, ignore message } // else, ignore message // TODO Process message, and send SSEM } Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +261 −6 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn: 261 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -294,10 +294,6 @@ module ItsRSUsSimulator_Pics { modulepar BtpPortId PICS_MAPEM_BTP_SOURCE_PORT := 0; modulepar BtpPortId PICS_SPATEM_BTP_DESTINATION_PORT := 2004; modulepar BtpPortId PICS_SPATEM_BTP_SOURCE_PORT := 0; } // End of group mapemCommonParams group mapemZone1 { Loading Loading @@ -417,24 +413,271 @@ module ItsRSUsSimulator_Pics { } // End of intersection #0 }, // End of field intersections roadSegments := omit } } // End of PICS_MAPEM_PARMS_RSU_1 } // End of group mapemZone1 group mapemZone2 { modulepar MapemParm PICS_MAPEM_PARMS_RSU_2 := { intersections := { { // Start of intersection #0 name := "PICS_MAPEM_PARMS_RSU_1", id := { region := 0, id := 0 }, revision := 0, refPoint := { lat := 435517392, long := 103018217, elevation := omit, regional := omit }, laneWidth := omit, speedLimits := omit, laneSet := { { // Start of Lane #1 laneID := 1, name := omit, ingressApproach := 1, egressApproach := 1, laneAttributes := { directionalUse := '10'B, sharedWith := '0000000000'B, laneType := { vehicle := '00000000'B }, regional := omit }, maneuvers := omit, nodeList := { nodes := { { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit }, { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit } } }, connectsTo := { { connectingLane := { lane := 1, maneuver := omit }, remoteIntersection := omit, signalGroup := 1, userClass := omit, connectionID := omit } }, overlays := omit, regional := omit }, // End of Lane #1 { // Start of Lane #2 laneID := 1, name := omit, ingressApproach := 1, egressApproach := 2, laneAttributes := { directionalUse := '01'B, sharedWith := '0000000000'B, laneType := { vehicle := '00000000'B }, regional := omit }, maneuvers := omit, nodeList := { nodes := { { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit }, { delta := { node_XY1 := { x := -10, y := 10 } }, attributes := omit } } }, connectsTo := omit, overlays := omit, regional := omit } // End of Lane #1 }, // End of LaneSet preemptPriorityData := omit, regional := omit } // End of intersection #0 }, // End of field intersections roadSegments := omit } // End of PICS_MAPEM_PARMS_RSU_2 } // End of group mapemZone2 modulepar MapemParmList PICS_MAPEM_PARMS_RSUs := { modulepar MapemParmListRsu PICS_MAPEM_PARMS_RSUs := { PICS_MAPEM_PARMS_RSU_1, PICS_MAPEM_PARMS_RSU_2 } // End of PICS_MAPEM_PARMS_RSU } // End of group mapemEvents group spatemEvents { group spatemCommonParams { modulepar BtpPortId PICS_SPATEM_BTP_DESTINATION_PORT := 2004; modulepar BtpPortId PICS_SPATEM_BTP_SOURCE_PORT := 0; } // End of group spatemCommonParams group spatemZone1 { modulepar SignalGroupParm PICS_SPATEM_PARMS_SG_1_RS_1 := { signalGroupID := 1, intersections := { { name := "PICS_SPATEM_PARMS_SG_1_RS_1", id := { region := 0, id := 0 }, revision := 0, status := int2bit(0, 16), moy := omit, timeStamp := omit, enabledLanes := omit, states := { { movementName := "protected-Movement-Allowed", signalGroup := 1, state_time_speed:= { { eventState := protected_Movement_Allowed, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit }, { movementName := "protected-clearance", signalGroup := 1, state_time_speed:= { { eventState := protected_clearance, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit }, { movementName := "stop_Then_Proceed", signalGroup := 1, state_time_speed:= { { eventState := stop_Then_Proceed, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } } // End of field states } // End of type PICS_SPATEM_PARMS_SG_1_RS_1 modulepar SignalGroupParmList PICS_SPATEM_PARMS_RSU_1 := { PICS_SPATEM_PARMS_SG_1_RS_1 } // End of type PICS_SPATEM_PARMS_RSU_1 } group spatemZone2 { modulepar SignalGroupParm PICS_SPATEM_PARMS_SG_1_RS_2 := { signalGroupID := 1, intersections := { { name := "PICS_SPATEM_PARMS_SG_1_RS_2", id := { region := 0, id := 0 }, revision := 0, status := int2bit(0, 16), moy := omit, timeStamp := omit, enabledLanes := omit, states := { { movementName := "stop_Then_Proceed", signalGroup := 1, state_time_speed:= { { eventState := stop_Then_Proceed, timing := omit, speeds := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } }, maneuverAssistList := omit, regional := omit } } // End of field states } // End of type PICS_SPATEM_PARMS_SG_1_RS_2 modulepar SignalGroupParmList PICS_SPATEM_PARMS_RSU_2 := { PICS_SPATEM_PARMS_SG_1_RS_2 } // End of type PICS_SPATEM_PARMS_RSU_1_RS_2 } modulepar SpatemParmRsu PICS_SPATEM_PARMS_RSUs := { PICS_SPATEM_PARMS_RSU_1, PICS_SPATEM_PARMS_RSU_2 } // End of PICS_SPATEM_PARMS_RSUs } // End of group spatemEvents group ivimEvents { group ivimCommonParams { Loading Loading @@ -463,6 +706,18 @@ module ItsRSUsSimulator_Pics { } // End of group ivimEvents group ssemEvents { group ssemCommonParams { modulepar BtpPortId PICS_SSEM_BTP_DESTINATION_PORT := 2005; modulepar BtpPortId PICS_SSEM_BTP_SOURCE_PORT := 0; } // End of group ssemCommonParams } // End of group ssemEvents group generationFrequencies { modulepar boolean PICS_GENERATE_CAM := true; Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn +16 −0 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -176,6 +176,22 @@ module ItsRSUsSimulator_Templates { } // End of group mapemTemplates group spatemTemplates { template (value) SPATEM m_spatemParm( in template (value) StationID p_stationID, in template (value) SPAT p_spat ) := { header := { protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, messageID := ItsPduHeader_messageID_spatem_, stationID := p_stationID }, spat := p_spat } } // End of group spatemTemplates group ivimTemplates { } // End of group ivimTemplates Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn +3 −1 Changes for ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -93,8 +93,10 @@ module ItsRSUsSimulator_TestCases { } [PICS_GENERATE_SPATEM] tc_spatem.timeout { log("*** " & testcasename() & ": DEBUG: Processing SPATEM ***"); f_prepare_spatem(v_payload); for (var integer v_counter := 0; v_counter < lengthof(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems); v_counter := v_counter + 1) { f_prepare_spatem(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems[v_counter], v_payload); f_send(v_payload); } tc_spatem.start; repeat; } Loading