Skip to content
LibItsDenm_TypesAndValues.ttcn 6.46 KiB
Newer Older
tepelmann's avatar
tepelmann committed
/**
 *  @author     ETSI / STF405
 *  @version    $URL$
 *              $Id$
 *  @desc       Module containing type and value definitions for DENM
 *
 */
module LibItsDenm_TypesAndValues {

    //LibIts
    import from DENM_PDU_Descriptions language "ASN.1:1997" all;
    import from CAM_PDU_Descriptions language "ASN.1:1997" all;
tepelmann's avatar
tepelmann committed

    group actionTypes {
        
        /**
         * @desc Indication of whether event cancellation has to be raised by the test system or iut
         */
tepelmann's avatar
tepelmann committed
        type enumerated Trigger {
            e_ets(0),
            e_iut(1)
        }
        
    } // end group actionTypes
    
    group denmConstants {
        
berge's avatar
berge committed
        const ItsPduHeader.protocolVersion c_protocolVersionDenm := 0;
tepelmann's avatar
tepelmann committed
        
berge's avatar
berge committed
        const ItsPduHeader.messageID c_messageId := 1;
tepelmann's avatar
tepelmann committed
        
        const DataVersion c_dataVersionCancellation := 255;
        
        group trafficFlowEffects {
            
            const TrafficFlowEffect c_tfeTrafficFlowUnknown := 1; 
            const TrafficFlowEffect c_tfeFreeTrafficFlow := 2; 
            const TrafficFlowEffect c_tfeSlowTraffic := 3; 
            const TrafficFlowEffect c_tfeHeavyTraffic := 4; 
            const TrafficFlowEffect c_tfeQueuingTraffic := 5; 
            const TrafficFlowEffect c_tfeStationaryTraffic := 6; 
            const TrafficFlowEffect c_tfeNoTrafficFlow := 7; 
            
        } // end group causeCodes
        
tepelmann's avatar
tepelmann committed
        /**
         * @remark check this values
         */
tepelmann's avatar
tepelmann committed
        group causeCodes {
            
            const DENM_PDU_Descriptions.CauseCode c_causeReserved := 0; 
            const DENM_PDU_Descriptions.CauseCode c_causeTrafficJam := 1;
            const DENM_PDU_Descriptions.CauseCode c_causeAccident := 2;
            const DENM_PDU_Descriptions.CauseCode c_causeRoadWork := 3;
            const DENM_PDU_Descriptions.CauseCode c_causeHazardousDrivingCondition := 25;
            const DENM_PDU_Descriptions.CauseCode c_causeWrongWayDriving := 35;
            const DENM_PDU_Descriptions.CauseCode c_causeRescueOnTheWay := 36;
            const DENM_PDU_Descriptions.CauseCode c_causeExtremWeatherCondition := 42;
            const DENM_PDU_Descriptions.CauseCode c_causeVisibilityReduced := 43;
            const DENM_PDU_Descriptions.CauseCode c_causePrecipitation := 45;
            const DENM_PDU_Descriptions.CauseCode c_causeSlowVehicle := 62;
            const DENM_PDU_Descriptions.CauseCode c_causeDangerousDriving := 101; 
            const DENM_PDU_Descriptions.CauseCode c_causeIntersectionViolation := 102; 
            const DENM_PDU_Descriptions.CauseCode c_causeVehicleProblem := 103; 
            const DENM_PDU_Descriptions.CauseCode c_causeIntersectionCollision := 104; 
            const DENM_PDU_Descriptions.CauseCode c_causeHazardousLocation := 105; 
tepelmann's avatar
tepelmann committed
            
        } // end group causeCodes
        
tepelmann's avatar
tepelmann committed
        /**
         * @remark check this values
         */
tepelmann's avatar
tepelmann committed
        group subCauseCodes {
            
            const SubCauseCode c_subCauseUnknown := 0; 
            
            const SubCauseCode c_subCauseHardBrakeVehicle := 1; 

            const SubCauseCode c_subCauseStopSignViolation := 1; 
            const SubCauseCode c_subCauseTrafficLightViolation := 2; 
            const SubCauseCode c_subCauseTurningRegulationViolation := 3; 

            const SubCauseCode c_subCauseBrakeDownVehicle := 1; 
            const SubCauseCode c_subCauseVehicleSpeedReducedWithSafetyLightsOn := 2; 

            const SubCauseCode c_subCauseLeftTurnCollisionRisk := 1; 
            const SubCauseCode c_subCauseRightTurnCollisionRisk := 2; 
            const SubCauseCode c_subCauseCrossingCollisionRisk := 3; 
            const SubCauseCode c_subCauseMergingCollisionRisk := 4; 

            const SubCauseCode c_subCauseDangerousCurve := 1; 
            const SubCauseCode c_subCauseObstacleOnTheRoad := 2; 

            const SubCauseCode c_subCauseHeavyRain := 1; 
            const SubCauseCode c_subCauseHeavySnow := 2; 

            const SubCauseCode c_subCauseStrongSideWind := 1; 
            const SubCauseCode c_subCauseStrongWindFromBack := 2; 

            const SubCauseCode c_subCauseLowRoadAdhesion := 1; 
            const SubCauseCode c_subCauseBlackIce := 2; 

            const SubCauseCode c_subCauseBadVisibilityDueToFrost := 1; 
            const SubCauseCode c_subCauseBadVisibilityDueToStorm := 4; 

            const SubCauseCode c_subCauseEmergencyVehicle := 1; 
            const SubCauseCode c_subCauseMedicalAssistanceVahicle := 2; 
            
        } // end group subCauseCodes
        
    } // end group denmConstants
    
berge's avatar
berge committed
    group denmTimeConstants {
        
        // in milliseconds
tepelmann's avatar
tepelmann committed
        const TimeStamp c_duration20000ms := 20000;
        const TimeStamp c_duration40000ms := 40000;
berge's avatar
berge committed
        
        const float c_eventFrequencyMultiplier := 0.1;
berge's avatar
berge committed
        
    } // end denmTimeConstants
    
    group utPrimitives {
        
        /**
         * @desc Upper Tester message to initialize DENM IUT 
         */
        type record UtDenmInitialize {
        }
        
        /**
         * @desc Upper Tester message to trigger an action on DENM IUT 
         */
        type record UtDenmTrigger {
            UtDenmEvent utEvent
        /**
         * @desc Upper Tester message to check event/status on DENM IUT 
         */  
        type record UtDenmCheck {
            UtDenmEvent utEvent
         * @desc DENM Upper Tester response message  
        type boolean UtDenmResult;

        /**
         * @desc Upper Tester message describing a DENM action/event 
         */        
        type record UtDenmEvent {
            Situation situation,
            EventOption eventOption optional
        }
        
        /**
         * @desc Upper Tester options for DENM action/event 
         */  
        type union EventOption {
            ActionID eventCancellation,
            ActionID eventNegation,
            TrafficFlowEffect eventTrafficFlowEffect,
            Situation eventLinkedCause,
            TimeStamp eventExpirationTime,
            EventTimeFrequency eventExpirationTimeFrequency,
            DecentralizedSituation.eventCharact eventCharact
        }
        
        /**
         * @desc Upper Tester time/frequency option for DENM action/event 
         */ 
        type record EventTimeFrequency {
            TimeStamp expirationTime,
            DecentralizedSituationManagement.frequency frequency
        }
        
    } // end utPrimitives
}
with {
    encode "LibItsDenm_TypesAndValues"
}