ItsRSUsSimulator_TypesAndValues.ttcn 5.15 KB
Newer Older
garciay's avatar
garciay committed
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 SREM_PDU_Descriptions language "ASN.1:1997" all;
    import from SSEM_PDU_Descriptions 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 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,
            DENMs   denms,
            MAPEM   mapem optional,
            SPATEM  spatem optional,
            IVIM    ivim 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 DenmParm
        
        /**
         * @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
             * <pre>
             *     vc_longPosVectorRsu := PICS_RSU_PARAMS[PX_RSU_ID - 1].longPosVector;
             * </pre>
             */
            type record of RsuParm RsuParmList;
            
        } // End of group camDataStructures
        
        /**
         * @desc MAPEM setup
         */
        group mapemDataStructures {
            // TODO To be done
        } // End of group mapemDataStructures
        
        /**
         * @desc IVIM setup
         */
        group ivimDataStructures {
            // TODO To be done
        } // 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
            } // End of type DenmParm
            
            /**
             * @desc List of DENM events per use case
             * @see <wiki URL>
             * <pre>
             *     v_denmParm := PICS_DENM_PARMS_UC1_RWW[vc_eventId];
             *     vc_eventId := (vc_eventId + 1) mod lengthof(PICS_DENM_PARMS_UC1_RWW)
             * </pre>
             */
            type record of DenmParm DenmEventsParmsUseCase;
            
            /**
             * @desc  List of DENM events per use case and per RSUs
             * <pre>
             *     v_denmParm := PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][PX_ETSI_USE_CASE_ID][vc_eventId];
             *     vc_eventId := (vc_eventId + 1) mod lengthof(PICS_DENM_EVENTS_RSU[PX_RSU_ID - 1][PX_ETSI_USE_CASE_ID])
             * </pre>
             */
            type record of DenmEventsParmsUseCase DenmEventsParmsUseCaseRsu;
            
        } // End of group denmDataStructures
        
    } // End of group picsDataStructures
    
} // End of module ItsRSUsSimulator_TypesAndValues