diff --git a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn index ef164b4e65bffd8d0b6b4b4c9a2bd2eba1a8c06c..b925a2dd29418a0305a05b517aba74d5106eeed6 100644 --- a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +++ b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn @@ -125,7 +125,19 @@ module ItsRSUsSimulator_Functions { } // IVIM if (PICS_GENERATE_IVIM) { - // TODO + // Build the list of the MAPEM events + v_ivim := + m_ivimParm( + PICS_RSU_PARAMS[PX_RSU_ID - 1].stationID, + m_ivimStructure( + m_iviManagementContainer( + PICS_IVIM_PARMS_RSUs[PX_RSU_ID - 1].provider, + PICS_IVIM_PARMS_RSUs[PX_RSU_ID - 1].iviIdentificationNumber, + 0//IviStatus_new_ + ))); + // Update ivi status + v_ivim.ivi.mandatory.validFrom := f_getCurrentTime(); + // TODO Add more? } // DENM if (PICS_GENERATE_DENM) { @@ -187,6 +199,8 @@ module ItsRSUsSimulator_Functions { function f_cf01Down() runs on ItsRSUsSimulator { + vc_longPosVectorRsu := {}; + vc_geoArea := {}; vc_rsuMessagesValueList := {}; f_uninitialiseSecuredMode(); @@ -295,19 +309,28 @@ module ItsRSUsSimulator_Functions { valueof( v_spatem ))), - PICS_MAPEM_BTP_DESTINATION_PORT, - PICS_MAPEM_BTP_SOURCE_PORT + PICS_SPATEM_BTP_DESTINATION_PORT, + PICS_SPATEM_BTP_SOURCE_PORT ) ); } function f_prepare_ivim( - out template (value) Payload p_payload + out template (value) Payload p_payload ) runs on ItsRSUsSimulator { - p_payload := {}; // FIXME To be developped - + p_payload := valueof( + f_adaptPayload( + bit2oct( + encvalue( + valueof( + vc_rsuMessagesValueList[PX_RSU_ID - 1].ivim + ))), + PICS_IVIM_BTP_DESTINATION_PORT, + PICS_IVIM_BTP_SOURCE_PORT + ) + ); } function f_adaptPayload( diff --git a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn index 0e414bdf50e352f2856c92951cd9ba88c59e872a..fc3a0465bf3842b0e5e3454b9a11c4e8046912de 100644 --- a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +++ b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn @@ -689,21 +689,25 @@ module ItsRSUsSimulator_Pics { } // End of group ivimCommonParams group ivimZone1 { - // TODO To be done + + modulepar IvimParm PICS_IVIM_PARMS_RSU_1 := { + provider := { + countryCode := '0000000001'B, + providerIdentifier := 13 + }, + iviIdentificationNumber := 12 + } // End of PICS_IVIM_PARMS_RSU_1 + } // End of group ivimZone1 group ivimZone2 { // TODO To be done } // End of group ivimZone2 - group ivimUseCase1 { - // TODO To be done - } // End of group ivimUseCase1 + modulepar IvimParmListRsu PICS_IVIM_PARMS_RSUs := { + PICS_IVIM_PARMS_RSU_1 + } // End of PICS_IVIM_PARMS_RSUs - group ivimUseCase2 { - // TODO To be done - } // End of group ivimUseCase2 - } // End of group ivimEvents group ssemEvents { @@ -745,17 +749,17 @@ module ItsRSUsSimulator_Pics { /** * @desc MAPEM frequency timer */ - modulepar float PICS_MAPEM_FREQUENY := 2.0; + modulepar float PICS_MAPEM_FREQUENY := 5.0; /** * @desc SPATEMM frequency timer */ - modulepar float PICS_SPATEM_FREQUENY := 2.0; + modulepar float PICS_SPATEM_FREQUENY := 5.0; /** * @desc IVIM frequency timer */ - modulepar float PICS_IVIM_FREQUENY := 2.0; + modulepar float PICS_IVIM_FREQUENY := 5.0; } // End of group generationFrequencies diff --git a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn index 8e1e64eec25af45ea9b8950ab176a2ca3dd446f7..40178120fa50a760f9d467676a612d308f3a648a 100644 --- a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn +++ b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn @@ -10,6 +10,7 @@ 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 IVI language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; @@ -194,6 +195,18 @@ module ItsRSUsSimulator_Templates { group ivimTemplates { + template (value) IVIM m_ivimParm( + in template (value) StationID p_stationID, + in template (value) IviStructure p_ivi + ) := { + header := { + protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, + messageID := ItsPduHeader_messageID_ivim_, + stationID := p_stationID + }, + ivi := p_ivi + } + } // End of group ivimTemplates group denmTemplates { diff --git a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn index 01840dbadadcbf10bde39eee15f6aeadb32fa1fe..d66b7735317f0d53172e466cb8f4152f6eaba84b 100644 --- a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn +++ b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn @@ -10,8 +10,10 @@ module ItsRSUsSimulator_TypesAndValues { 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 IVI language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; + import from EfcDsrcApplication language "ASN.1:1997" all; // LibItsGeoNetworking import from LibItsGeoNetworking_TypesAndValues all; @@ -164,7 +166,22 @@ module ItsRSUsSimulator_TypesAndValues { * @desc IVIM setup */ group ivimDataStructures { - // TODO + + /** + * @desc Describe the parameter for each IVIM event + */ + type record IvimParm { + Provider provider, + IviIdentificationNumber iviIdentificationNumber + } // End of type IvimParm + + /** + * @desc List of IVIM parms per RSU + *
+             *     v_provider := PICS_IVIM_PARMS_RSUs[PX_RSU_ID - 1].povider;
+             * 
+ */ + type record of IvimParm IvimParmListRsu; } // End of group ivimDataStructures