Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +22 −8 Original line number Diff line number Diff line Loading @@ -11,6 +11,11 @@ module ItsRSUsSimulator_Functions { import from ITS_Container language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_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 IVIM_PDU_Descriptions language "ASN.1:1997" all; import from SREM_PDU_Descriptions language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_Functions all; Loading Loading @@ -52,9 +57,10 @@ module ItsRSUsSimulator_Functions { var template (value) DenmParmContainers v_denmParmContainers; var template (omit) DENMs v_denms := omit; var template (omit) CAM v_cam := omit; // var template (omit) MAPEM v_mapem := omit; // var template (omit) SPATEMs v_spatems := omit; // var template (omit) SSEM v_ssem := omit; var template (omit) MAPEM v_mapem := omit; var template (omit) SPATEMs v_spatems := omit; var template (omit) IVIM v_ivim := omit; var template (omit) SSEM v_ssem := omit; var integer v_counter; // Map Loading @@ -79,9 +85,11 @@ module ItsRSUsSimulator_Functions { if (PICS_GENERATE_DENM) { // Build the list of the DENM events for (v_counter := 0; v_counter < lengthof(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1]); v_counter := v_counter + 1) { // Build DENM with dynamic values v_denmParmContainers := m_denmParmContainers( PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, f_getDenmSequenceNumber(), PICS_DENM_REPETITION_INTERVAL, PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].eventPosition, PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].causeCodeType, PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].eventHistory Loading @@ -93,6 +101,9 @@ module ItsRSUsSimulator_Functions { v_denmParmContainers.situationContainer, v_denmParmContainers.locationContainer ))); 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 } if (PICS_GENERATE_CAM) { Loading @@ -109,14 +120,15 @@ module ItsRSUsSimulator_Functions { ); } // Build the messages value list for this RSU vc_rsuMessagesValueList[PX_RSU_ID - 1] := valueof( vc_rsuMessagesValueList[PX_RSU_ID - 1] := m_rsuProfile( v_cam, v_denms/*, v_denms, v_mapem, v_spatems v_ssem*/ )); v_spatems, v_ivim, v_ssem ); if (PICS_RSU_PARAMS[PX_RSU_ID - 1].geoShape == e_geoCircle) { vc_geoArea := f_computeCircularArea(vc_longPosVectorRsu, PICS_RSU_PARAMS[PX_RSU_ID - 1].geoParms.radius); } else { Loading @@ -129,6 +141,8 @@ module ItsRSUsSimulator_Functions { function f_cf01Down() runs on ItsRSUsSimulator { vc_rsuMessagesValueList := {}; f_uninitialiseSecuredMode(); // Unmap Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +60 −1 Original line number Diff line number Diff line Loading @@ -105,6 +105,11 @@ module ItsRSUsSimulator_Pics { altitudeConfidence := unavailable } // End of PICS_DENM_ALTITUDE /** * @desc DENM repetition interval, in ms */ modulepar TransmissionInterval PICS_DENM_REPETITION_INTERVAL := 1000; } // End of group denmCommonParams group denmZone1 { Loading Loading @@ -136,6 +141,24 @@ module ItsRSUsSimulator_Pics { eventDeltaTime := omit, informationQuality := 0 } }, roadWorksContainerExtended := { lightBarSirenInUse := omit, closedLanes := { hardShoulderStatus := availableForDriving, drivingLaneStatus := '0001'B }, restriction := omit, speedLimit := 30, incidentIndication := omit, recommendedPath := omit, startingPointSpeedLimit := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, trafficFlowRule := passToRight, referenceDenms := omit } } // End of PICS_Z1_D1_EP Loading Loading @@ -166,6 +189,24 @@ module ItsRSUsSimulator_Pics { eventDeltaTime := omit, informationQuality := 0 } }, roadWorksContainerExtended := { lightBarSirenInUse := omit, closedLanes := { hardShoulderStatus := availableForDriving, drivingLaneStatus := '0011'B }, restriction := omit, speedLimit := 30, incidentIndication := omit, recommendedPath := omit, startingPointSpeedLimit := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, trafficFlowRule := passToRight, referenceDenms := omit } } // End of PICS_Z1_D2_EP Loading Loading @@ -196,6 +237,24 @@ module ItsRSUsSimulator_Pics { eventDeltaTime := omit, informationQuality := 0 } }, roadWorksContainerExtended := { lightBarSirenInUse := omit, closedLanes := { hardShoulderStatus := closed, drivingLaneStatus := '01'B }, restriction := omit, speedLimit := 30, incidentIndication := omit, recommendedPath := omit, startingPointSpeedLimit := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, trafficFlowRule := passToRight, referenceDenms := omit } } // End of PICS_Z1_D3_EP Loading Loading @@ -305,7 +364,7 @@ module ItsRSUsSimulator_Pics { /** * @desc DENM frequency timer */ modulepar float PICS_DENM_FREQUENY := 0.1; modulepar float PICS_DENM_FREQUENY := int2float(PICS_DENM_REPETITION_INTERVAL) / 1000.0; /** * @desc MAPEM frequency timer Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn +28 −14 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ module ItsRSUsSimulator_Templates { import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; import from IVIM_PDU_Descriptions language "ASN.1:1997" all; import from SREM_PDU_Descriptions language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; Loading Loading @@ -45,16 +44,17 @@ module ItsRSUsSimulator_Templates { import from ItsRSUsSimulator_Pics all; template (omit) RsuMessagesValue m_rsuProfile( in template (value) CAM p_cam, in template (value) DENMs p_denms, in template (omit) CAM p_cam := omit, in template (omit) DENMs p_denms := omit, in template (omit) MAPEM p_mapem := omit, in template (omit) SPATEM p_spatem := omit, in template (omit) IVIM p_ivim := omit in template (omit) SPATEMs p_spatems := omit, in template (omit) IVIM p_ivim := omit, in template (omit) SSEM p_ssem := omit ) := { cam := p_cam, denms := p_denms, mapem := p_mapem, spatem := p_spatem, spatems := p_spatems, ivim := p_ivim } // End of template RsuMessagesValue Loading Loading @@ -170,9 +170,24 @@ module ItsRSUsSimulator_Templates { group denmTemplates { /** * @desc Send template for Alacarte Container including lanePosition */ template (omit) AlacarteContainer m_alacarte( in template (omit) RoadWorksContainerExtended p_roadWorksContainerExtended ) := { lanePosition := omit, impactReduction := omit, externalTemperature := omit, roadWorks := p_roadWorksContainerExtended, positioningSolution := omit, stationaryVehicle := omit } template (value) DenmParmContainers m_denmParmContainers( in template (value) StationID p_originatingStationID, in template (value) SequenceNumber p_sequenceNumber, in template (value) TransmissionInterval p_repetitionInterval, in template (value) ReferencePosition p_eventPosition, in template (value) CauseCodeType p_causeCodeType, in template (value) EventHistory p_eventHistory, Loading @@ -184,14 +199,14 @@ module ItsRSUsSimulator_Templates { originatingStationID := p_originatingStationID, sequenceNumber := p_sequenceNumber }, detectionTime := f_getCurrentTime(), referenceTime := 0, detectionTime := 0, referenceTime := f_getCurrentTime(), // FIXME To be checked termination := omit, eventPosition := p_eventPosition, relevanceDistance := p_relevanceDistance, relevanceTrafficDirection := omit, validityDuration := p_validityDuration, transmissionInterval := omit, transmissionInterval := p_repetitionInterval, stationType := StationType_roadSideUnit_ }, // End of field managementContainer situationContainer := { Loading Loading @@ -220,7 +235,6 @@ module ItsRSUsSimulator_Templates { }, roadType := omit } // End of field locationContainer } // End of template m_denmParm } // End of group denmTemplates Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn +5 −5 Original line number Diff line number Diff line Loading @@ -38,19 +38,19 @@ module ItsRSUsSimulator_TestCases { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].cam)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].cam)) { tc_cam.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].denms)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].denms)) { tc_denm.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].mapem)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].mapem)) { tc_mapem.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatem)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems)) { tc_spatem.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].ivim)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].ivim)) { tc_ivim.start; } alt { Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestControl.ttcn +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ module ItsRSUsSimulator_TestControl { // AtsRSUsSimulator import from ItsRSUsSimulator_TestCases all; import from LibItsGeoNetworking_Templates all; control { Loading Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +22 −8 Original line number Diff line number Diff line Loading @@ -11,6 +11,11 @@ module ItsRSUsSimulator_Functions { import from ITS_Container language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_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 IVIM_PDU_Descriptions language "ASN.1:1997" all; import from SREM_PDU_Descriptions language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_Functions all; Loading Loading @@ -52,9 +57,10 @@ module ItsRSUsSimulator_Functions { var template (value) DenmParmContainers v_denmParmContainers; var template (omit) DENMs v_denms := omit; var template (omit) CAM v_cam := omit; // var template (omit) MAPEM v_mapem := omit; // var template (omit) SPATEMs v_spatems := omit; // var template (omit) SSEM v_ssem := omit; var template (omit) MAPEM v_mapem := omit; var template (omit) SPATEMs v_spatems := omit; var template (omit) IVIM v_ivim := omit; var template (omit) SSEM v_ssem := omit; var integer v_counter; // Map Loading @@ -79,9 +85,11 @@ module ItsRSUsSimulator_Functions { if (PICS_GENERATE_DENM) { // Build the list of the DENM events for (v_counter := 0; v_counter < lengthof(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1]); v_counter := v_counter + 1) { // Build DENM with dynamic values v_denmParmContainers := m_denmParmContainers( PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, f_getDenmSequenceNumber(), PICS_DENM_REPETITION_INTERVAL, PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].eventPosition, PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].causeCodeType, PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][v_counter].eventHistory Loading @@ -93,6 +101,9 @@ module ItsRSUsSimulator_Functions { v_denmParmContainers.situationContainer, v_denmParmContainers.locationContainer ))); 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 } if (PICS_GENERATE_CAM) { Loading @@ -109,14 +120,15 @@ module ItsRSUsSimulator_Functions { ); } // Build the messages value list for this RSU vc_rsuMessagesValueList[PX_RSU_ID - 1] := valueof( vc_rsuMessagesValueList[PX_RSU_ID - 1] := m_rsuProfile( v_cam, v_denms/*, v_denms, v_mapem, v_spatems v_ssem*/ )); v_spatems, v_ivim, v_ssem ); if (PICS_RSU_PARAMS[PX_RSU_ID - 1].geoShape == e_geoCircle) { vc_geoArea := f_computeCircularArea(vc_longPosVectorRsu, PICS_RSU_PARAMS[PX_RSU_ID - 1].geoParms.radius); } else { Loading @@ -129,6 +141,8 @@ module ItsRSUsSimulator_Functions { function f_cf01Down() runs on ItsRSUsSimulator { vc_rsuMessagesValueList := {}; f_uninitialiseSecuredMode(); // Unmap Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +60 −1 Original line number Diff line number Diff line Loading @@ -105,6 +105,11 @@ module ItsRSUsSimulator_Pics { altitudeConfidence := unavailable } // End of PICS_DENM_ALTITUDE /** * @desc DENM repetition interval, in ms */ modulepar TransmissionInterval PICS_DENM_REPETITION_INTERVAL := 1000; } // End of group denmCommonParams group denmZone1 { Loading Loading @@ -136,6 +141,24 @@ module ItsRSUsSimulator_Pics { eventDeltaTime := omit, informationQuality := 0 } }, roadWorksContainerExtended := { lightBarSirenInUse := omit, closedLanes := { hardShoulderStatus := availableForDriving, drivingLaneStatus := '0001'B }, restriction := omit, speedLimit := 30, incidentIndication := omit, recommendedPath := omit, startingPointSpeedLimit := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, trafficFlowRule := passToRight, referenceDenms := omit } } // End of PICS_Z1_D1_EP Loading Loading @@ -166,6 +189,24 @@ module ItsRSUsSimulator_Pics { eventDeltaTime := omit, informationQuality := 0 } }, roadWorksContainerExtended := { lightBarSirenInUse := omit, closedLanes := { hardShoulderStatus := availableForDriving, drivingLaneStatus := '0011'B }, restriction := omit, speedLimit := 30, incidentIndication := omit, recommendedPath := omit, startingPointSpeedLimit := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, trafficFlowRule := passToRight, referenceDenms := omit } } // End of PICS_Z1_D2_EP Loading Loading @@ -196,6 +237,24 @@ module ItsRSUsSimulator_Pics { eventDeltaTime := omit, informationQuality := 0 } }, roadWorksContainerExtended := { lightBarSirenInUse := omit, closedLanes := { hardShoulderStatus := closed, drivingLaneStatus := '01'B }, restriction := omit, speedLimit := 30, incidentIndication := omit, recommendedPath := omit, startingPointSpeedLimit := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, trafficFlowRule := passToRight, referenceDenms := omit } } // End of PICS_Z1_D3_EP Loading Loading @@ -305,7 +364,7 @@ module ItsRSUsSimulator_Pics { /** * @desc DENM frequency timer */ modulepar float PICS_DENM_FREQUENY := 0.1; modulepar float PICS_DENM_FREQUENY := int2float(PICS_DENM_REPETITION_INTERVAL) / 1000.0; /** * @desc MAPEM frequency timer Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn +28 −14 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ module ItsRSUsSimulator_Templates { import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; import from IVIM_PDU_Descriptions language "ASN.1:1997" all; import from SREM_PDU_Descriptions language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; Loading Loading @@ -45,16 +44,17 @@ module ItsRSUsSimulator_Templates { import from ItsRSUsSimulator_Pics all; template (omit) RsuMessagesValue m_rsuProfile( in template (value) CAM p_cam, in template (value) DENMs p_denms, in template (omit) CAM p_cam := omit, in template (omit) DENMs p_denms := omit, in template (omit) MAPEM p_mapem := omit, in template (omit) SPATEM p_spatem := omit, in template (omit) IVIM p_ivim := omit in template (omit) SPATEMs p_spatems := omit, in template (omit) IVIM p_ivim := omit, in template (omit) SSEM p_ssem := omit ) := { cam := p_cam, denms := p_denms, mapem := p_mapem, spatem := p_spatem, spatems := p_spatems, ivim := p_ivim } // End of template RsuMessagesValue Loading Loading @@ -170,9 +170,24 @@ module ItsRSUsSimulator_Templates { group denmTemplates { /** * @desc Send template for Alacarte Container including lanePosition */ template (omit) AlacarteContainer m_alacarte( in template (omit) RoadWorksContainerExtended p_roadWorksContainerExtended ) := { lanePosition := omit, impactReduction := omit, externalTemperature := omit, roadWorks := p_roadWorksContainerExtended, positioningSolution := omit, stationaryVehicle := omit } template (value) DenmParmContainers m_denmParmContainers( in template (value) StationID p_originatingStationID, in template (value) SequenceNumber p_sequenceNumber, in template (value) TransmissionInterval p_repetitionInterval, in template (value) ReferencePosition p_eventPosition, in template (value) CauseCodeType p_causeCodeType, in template (value) EventHistory p_eventHistory, Loading @@ -184,14 +199,14 @@ module ItsRSUsSimulator_Templates { originatingStationID := p_originatingStationID, sequenceNumber := p_sequenceNumber }, detectionTime := f_getCurrentTime(), referenceTime := 0, detectionTime := 0, referenceTime := f_getCurrentTime(), // FIXME To be checked termination := omit, eventPosition := p_eventPosition, relevanceDistance := p_relevanceDistance, relevanceTrafficDirection := omit, validityDuration := p_validityDuration, transmissionInterval := omit, transmissionInterval := p_repetitionInterval, stationType := StationType_roadSideUnit_ }, // End of field managementContainer situationContainer := { Loading Loading @@ -220,7 +235,6 @@ module ItsRSUsSimulator_Templates { }, roadType := omit } // End of field locationContainer } // End of template m_denmParm } // End of group denmTemplates Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn +5 −5 Original line number Diff line number Diff line Loading @@ -38,19 +38,19 @@ module ItsRSUsSimulator_TestCases { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].cam)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].cam)) { tc_cam.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].denms)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].denms)) { tc_denm.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].mapem)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].mapem)) { tc_mapem.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatem)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems)) { tc_spatem.start; } if (isbound(vc_rsuMessagesValueList[PX_RSU_ID - 1].ivim)) { if (ispresent(vc_rsuMessagesValueList[PX_RSU_ID - 1].ivim)) { tc_ivim.start; } alt { Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestControl.ttcn +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ module ItsRSUsSimulator_TestControl { // AtsRSUsSimulator import from ItsRSUsSimulator_TestCases all; import from LibItsGeoNetworking_Templates all; control { Loading