module ItsRSUsSimulator_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; // LibIts 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 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; /** * @desc Data structures used to build IS messages & event for a specific RSU */ group rsiSimulatordataStructures { /** * @desc This is the list of DENM events hosted by a single RSU */ type record of DENM DENMs; /** * @desc This is the list of SPATEM events hosted by a single RSU */ type record of SPATEM SPATEMs; /** * @desc Defines the list of messages to be sent by a single RSU * @member cam CAM message that a RSU shall send * @member denms List of DENM events that a RSU shall send */ type record RsuMessagesValue { CAM cam optional, DENMs denms optional, MAPEM mapem optional, SPATEMs spatems optional, IVIM ivim optional, SSEM ssem optional } // End of type RsuMessagesValue /** * @desc List of the RSU settings (for future usage (e.g. dynamic change of the RSU ID) */ type record of RsuMessagesValue RsuMessagesValueList; type record DenmParmContainers { ManagementContainer managementContainer, SituationContainer situationContainer, LocationContainer locationContainer } // End of type DenmParmContainers /** * @desc This is the list of DENM dynamic parameters for the different events hosted by a single RSU */ type record of DenmParmContainers DenmParmContainersList; /** * @desc This is the list of DENM dynamic parameters for the different events hosted for all RSUs */ type record of DenmParmContainersList DenmParmContainersListRsu; } // End of group rsiSimulatordataStructures /** * @desc Data structures used to set up IS messages & event according to the track configuration */ group picsDataStructures { /** * @desc CAM setup */ group camDataStructures { /** * @desc Describe the parameter for each CAM event */ type record RsuParm { GN_Address gnAddress, LongPosVector longPosVector, StationID stationID, GeoShape geoShape, union { UInt16 radius } geoParms, PathHistory pathHistory } // End of type CamParm /** * * @desc List of CAM parms per RSU *
             *     vc_longPosVectorRsu := PICS_RSU_PARAMS[PX_RSU_ID - 1].longPosVector;
             * 
*/ type record of RsuParm RsuParmList; } // End of group camDataStructures /** * @desc MAPEM setup */ group mapemDataStructures { /** * @desc Describe the parameter for each MAPEM event */ type record MapemParm { IntersectionGeometryList intersections, RoadSegmentList roadSegments optional } // End of type MapemParm /** * @desc List of MAPEM parms per RSU *
             *     v_intersection := PICS_MAPEM_PARMS_RSUs[PX_RSU_ID - 1].intersections[v_idx];
             * 
*/ type record of MapemParm MapemParmListRsu; } // End of group mapemDataStructures /** * @desc SPATEM setup */ group spatemDataStructures { /** * @desc Describe the parameter for each SPATEM event */ type record SignalGroupParm { SignalGroupID signalGroupID, IntersectionStateList intersections } // End of type SignalGroupParm /** * @desc List of SignalGroup parms for one RSU *
             *     v_movementEvent := PICS_SPATEM_PARMS_RSU_1[v_signalGroupID].states[v_idx];
             * 
*/ type record of SignalGroupParm SignalGroupParmList; /** * @desc List of all RSUs SignalGroups parms *
             *     v_movementEvent := PICS_SPATEM_PARMS_RSU_1[PX_RSU_ID - 1].states[v_idx];
             * 
*/ type record of SignalGroupParmList SpatemParmRsu; type record of MovementList MovementListPerIntersection; type record of MovementListPerIntersection MovementListPerIntersectionRsu; } // End of group spatemDataStructures /** * @desc IVIM setup */ group ivimDataStructures { /** * @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 /** * @desc DENM setup */ group denmDataStructures { /** * @desc Describe the parameter for each DENM event */ type record DenmParm { ReferencePosition eventPosition, CauseCodeType causeCodeType, EventHistory eventHistory, Traces traces, RoadWorksContainerExtended roadWorksContainerExtended optional } // End of type DenmParm /** * @desc List of DENM events per use case * @see *
             *     v_denmParm := PICS_DENM_PARMS_UC1_RWW[PX_ETSI_ZONE_ID][vc_eventId];
             *     vc_eventId := (vc_eventId + 1) mod lengthof(PICS_DENM_PARMS_UC1_RWW)
             * 
*/ type record of DenmParm DenmEventsParmsPerZone; /** * @desc List of DENM events per use case * @see *
             *     v_denmParm := PICS_DENM_PARMS_UC1_RWW[vc_eventId];
             *     vc_eventId := (vc_eventId + 1) mod lengthof(PICS_DENM_PARMS_UC1_RWW)
             * 
*/ type record of DenmEventsParmsPerZone DenmEventsParmsUseCase; /** * @desc List of DENM events per use case and per RSUs *
             *     v_denmParm := PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][PX_ETSI_USE_CASE_ID - 1][vc_eventId];
             *     vc_eventId := (vc_eventId + 1) mod lengthof(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][PX_ETSI_USE_CASE_ID - 1])
             * 
*/ type record of DenmEventsParmsUseCase DenmEventsParmsUseCaseRsu; } // End of group denmDataStructures } // End of group picsDataStructures } // End of module ItsRSUsSimulator_TypesAndValues