test_LibItsCam_TypesAndValues.ttcn 22.9 KB
Newer Older
filatov's avatar
filatov committed
module test_LibItsCam_TypesAndValues /*language "TTCN-3:2009 Advanced Parameterization"*/ {
    
    // 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;
    
    // LibItsCommon
    import from LibItsCommon_TypesAndValues all;
    
    // AtsCam
    import from LibItsCam_TestSystem all;
    import from LibItsCam_Templates all;
    import from LibItsCam_TypesAndValues all;
    import from LibItsCam_Functions all;
    import from LibItsCommon_Functions all;
    
    import from test_CommonCodec all;
    
    group LibItsCam_testCases {
        
        group camTemplates {
            
            template (value) CAM m_camMsg(
                StationID p_stationId,
                GenerationDeltaTime p_generationTime
            ) := {
                header := {
                    protocolVersion := 1,
                    messageID := 2,
                    stationID := p_stationId
                },
                cam := {
                    generationDeltaTime := p_generationTime,
                    camParameters := {
                        basicContainer := {
                            stationType := c_stationType_passengerCar,
                            referencePosition := {
                                latitude := f_integer2Latitude(f_getTsLatitude()),
                                longitude := f_integer2Longitude(f_getTsLongitude()),
                                positionConfidenceEllipse := {
                                    semiMajorConfidence   := c_semiAxisLengthOneCentimeter,
                                    semiMinorConfidence   := c_semiAxisLengthOneCentimeter,
                                    semiMajorOrientation  := c_headingValue_wgs84North
                                },
                                altitude := {
                                    altitudeValue := c_altitudeValue_seaLevel,
                                    altitudeConfidence := unavailable
                                }
                            }
                        },
                        highFrequencyContainer := {
                            basicVehicleContainerHighFrequency := {
                                heading := {
                                    headingValue := c_headingValue_wgs84North, //0
                                    headingConfidence := 10
                                },
                                speed := {
                                    speedValue := 45,
                                    speedConfidence := 5
                                },
                                driveDirection := forward,
                                vehicleLength := {
                                    vehicleLengthValue := 50,
                                    vehicleLengthConfidenceIndication := noTrailerPresent
                                },
                                vehicleWidth := 21,
                                longitudinalAcceleration := {
                                    longitudinalAccelerationValue := c_longitudinalAccelerationValue_unavailable,
                                    longitudinalAccelerationConfidence := c_accelerationConfidence_unavailable
                                },
                                curvature := {
                                    curvatureValue := c_curvatureValue_straight,
                                    curvatureConfidence := unavailable
                                },
                                curvatureCalculationMode := yawRateUsed,
                                yawRate := {
                                    yawRateValue := c_yawRateValue_straight,
                                    yawRateConfidence := unavailable
                                },
                                accelerationControl := omit,
                                lanePosition := omit,
                                steeringWheelAngle := omit,
                                lateralAcceleration := omit,
                                verticalAcceleration := omit, 
                                performanceClass := omit,
                                cenDsrcTollingZone := omit
                            }
                        },
                        lowFrequencyContainer := omit,
                        specialVehicleContainer := omit
                    }
                }
            };
            
        } // End of group camTemplates
        
        group testUtEvent {
            testcase tc_UtCamInitialize() runs on TCType system TCType {
                test_PDU<UtInitialize>(m_camInitialize, false);
            }
            
            testcase tc_changeHeading() runs on TCType system TCType {
                test_PDU<UtCamTrigger>(m_changeHeading(5), false);
            }
            
            testcase tc_changePosition() runs on TCType system TCType {
                test_PDU<UtChangePosition>(
                    UtChangePosition: {
                        latitude := 49845,
                        longitude := 631,
                        elevation := 512
                    }, 
                    false
                );
            }
            
            testcase tc_changeSpeed() runs on TCType system TCType {
                test_PDU<UtCamTrigger>(m_changeSpeed(2), false);
            }
            
    //        testcase tc_setCrashSignal() runs on TCType system TCType {
    //            test_PDU<UtCamTrigger>(m_setCrashSignal(c_activated), false);
    //        }
    //        
    //        testcase tc_setDangerousGoodsStatus() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setDangerousGoodsStatus(8191), false);
    //        }
    //        
    //        testcase tc_setLengthWidthPrecision() runs on TCType system TCType {
    //            test_PDU<UtCamTrigger>(m_setLengthWidthPrecision(c_precisely), false);
    //        }
    //        
    //        testcase tc_setDistanceToStopLine() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setDistanceToStopLine(65535), false);
    //        }
    //        
    //        testcase tc_setTurnAdvice() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setTurnAdvice({ f_bitPositionRandom(7), 65535 }), false);
    //        }
    //        
    //        testcase tc_changeCurvature() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_changeCurvature(-1023), false);
    //        }
    //        
    //        testcase tc_setOccupancy() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setOccupancy(255), false);
    //        }
    //        
    //        testcase tc_setDoorStatus() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setDoorStatus(c_driverDoor), false);
    //        }
    //        
    //        testcase tc_setLightBarStatus() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setLightBarStatus(unavailable), false);
    //        }
    //        
    //        testcase tc_setSireneStatus() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setSireneStatus(engaged), false);
    //        }
    //        
    //        testcase tc_setTrafficLightPriority() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setTrafficLightPriority(7), false);
    //        }
    //        
    //        testcase tc_setScheduleDeviation() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setScheduleDeviation(-900), false);
    //        }
    //        
    //        testcase tc_setPtLineDescription() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setPtLineDescription(PTLineDescription:{"CourseOfJourney", "LineRef", "RouteRef"}), false);
    //        }
    //        
    //        testcase tc_setExteriorLightsStatus() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_setExteriorLightsStatus(c_lowBeamHeadlightsOn), false);
    //        }
    //        
    //        testcase tc_checkLdmBasic() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_checkLdm(m_camMsg_irs (
    //                28147497,
    //                42949,
    //                { true, true, true },
    //                {
    //                    longitude := {hemisphere := east, degree := 0},
    //                    latitude := {hemisphere := north, degree := 0},
    //                    elevation := 0,
    //                    heading := omit,
    //                    streetName := omit,
    //                    positionConfidence := omit,
    //                    elevationConfidence := omit,
    //                    roadSegmentID :=0
    //                }
    //            )), false);
    //        }
    //        testcase tc_checkLdmFull_BasicVehicle() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_checkLdm(m_camMsg_valid_With_Parameters(
    //                28147495,
    //                42946,
    //                { true, true, true },
    //                {
    //                    longitude := {hemisphere := east, degree := 0},
    //                    latitude := {hemisphere := north, degree := 0},
    //                    elevation := 1530,
    //                    heading := 95,
    //                    streetName := "Street name",
    //                    positionConfidence := 15,
    //                    elevationConfidence := 14,
    //                    roadSegmentID :=0
    //                }, // End of ReferencePosition
    //                {
    //                    vehicleType := 3,
    //                    stationLength := 1456,
    //                    stationLengthConfidence := 9,
    //                    stationWidth := 125,
    //                    stationWidthConfidence := 11,
    //                    vehicleSpeed := 55,
    //                    vehicleSpeedConfidence := 13,
    //                    longAcceleration := -500,
    //                    longAccelerationConfidence := 12,
    //                    accelerationControl := '001000'B,
    //                    yawRate := {
    //                        yawDirection := right,
    //                        yawRateValue := 16584
    //                    },
    //                    yawRateConfidence := 11,
    //                    exteriorLights := '00100000'B,
    //                    turnAdvice := {
    //                        direction := '00000100'B,
    //                        distance := 4556
    //                    },
    //                    distanceToStopLine := 150,
    //                    occupancy := 57,
    //                    doorOpen := '0001'B,
    //                    posConfidenceEllipse := {
    //                        semiMajorConfidence := 7,
    //                        semiMinorConfidence := 9,
    //                        semiMajorOrientation := 11
    //                    },
    //                    curvature := -156,
    //                    curvatureChange := 53,
    //                    curvatureConfidence := 10,
    //                    crashStatus := false,
    //                    headingConfidence := 9,
    //                    dangerousGoods := 799
    //                }, // End of VehicleCommonParameters
    //                m_profileParameters_BasicVehicle
    //            )), false);
    //        }
    //
    //        testcase tc_checkLdmFull_PublicVehicle() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_checkLdm(m_camMsg_valid_With_Parameters(
    //                1307531915453, 
    //                111111, 
    //                { true, true, true }, 
    //                { 
    //                    longitude := { 
    //                        hemisphere := east, 
    //                        degree := 0 
    //                    }, 
    //                    latitude := { 
    //                        hemisphere := north, 
    //                        degree := 0 
    //                    }, 
    //                    elevation := 0, 
    //                    heading := 0, 
    //                    streetName := omit, 
    //                    positionConfidence := omit, 
    //                    elevationConfidence := omit, 
    //                    roadSegmentID := omit 
    //                }, // End of ReferencePosition
    //                { 
    //                    vehicleType := 0, 
    //                    stationLength := 0, 
    //                    stationLengthConfidence := 0, 
    //                    stationWidth := 0, 
    //                    stationWidthConfidence := 0, 
    //                    vehicleSpeed := 0, 
    //                    vehicleSpeedConfidence := 0, 
    //                    longAcceleration := 0, 
    //                    longAccelerationConfidence := 0, 
    //                    accelerationControl := '000000'B, 
    //                    yawRate := { 
    //                        yawDirection := right, 
    //                        yawRateValue := 0 
    //                    }, 
    //                    yawRateConfidence := 0, 
    //                    exteriorLights := '00000000'B, 
    //                    turnAdvice := omit, 
    //                    distanceToStopLine := omit, 
    //                    occupancy := omit, 
    //                    doorOpen := omit, 
    //                    posConfidenceEllipse := { 
    //                        semiMajorConfidence := 0, 
    //                        semiMinorConfidence := 0, 
    //                        semiMajorOrientation := 0 
    //                    }, 
    //                    curvature := 0, 
    //                    curvatureChange := omit, 
    //                    curvatureConfidence := 0, 
    //                    crashStatus := omit, 
    //                    headingConfidence := 0, 
    //                    dangerousGoods := omit
    //                }, // End of VehicleCommonParameters
    //                m_profileParameters_BasicVehicle
    //            )), false);
    //        }
    //
    //        testcase tc_checkLdmFull_Paris() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_checkLdm(m_camMsg_irs (
    //                5434534,
    //                5424,
    //                { true, false, true },
    //                {
    //                    longitude := {hemisphere := east, degree := 200000000},
    //                    latitude := {hemisphere := north, degree := 480000000},
    //                    elevation := 910,
    //                    heading := 7200,
    //                    streetName := "Montmartre",
    //                    positionConfidence := 5,
    //                    elevationConfidence := 7,
    //                    roadSegmentID := 1234567
    //                }
    //            )), false);
    //        }
    //
    //        testcase tc_checkLdmFull_LaPaz() runs on TCType system TCType {
    //            test_PDU<UtEvent>(m_checkLdm(m_camMsg_irs (
    //                6546424,
    //                35445334,
    //                { false, false, false },
    //                {
    //                    longitude := {hemisphere := west, degree := 220000000},
    //                    latitude := {hemisphere := south, degree := 270000000},
    //                    elevation := 36600,
    //                    heading := 21600,
    //                    streetName := "El Alto",
    //                    positionConfidence := omit,
    //                    elevationConfidence := omit,
    //                    roadSegmentID := 3546345
    //                }
    //            )), false);
    //        }
    //
    //        template (value) CAM m_camMsg_valid_With_Parameters(
    //            StationID p_stationId,
    //            GenerationDeltaTime p_generationTime,
    //            template (value) ReferencePosition p_referencePosition
    //        ) := {
    //            header := {
    //                protocolVersion := 1,
    //                messageID := 2,
    //                stationID := p_stationId
    //            },
    //            cam := {
    //                generationDeltaTime := p_generationTime,
    //                camParameters := {
    //                    basicContainer := {
    //                        stationType := c_stationType_passengerCar,
    //                        referencePosition := p_referencePosition
    //                    },
    //                    highFrequencyContainer := {
    //                        basicVehicleContainerHighFrequency := {
    //                            heading := {
    //                                headingValue := c_headingValue_wgs84North, //0
    //                                headingConfidence := 10
    //                            },
    //                            speed := {
    //                                speedValue := 45,
    //                                speedConfidence := 5
    //                            },
    //                            driveDirection := forward,
    //                            vehicleLength := {
    //                                vehicleLengthValue := 50,
    //                                vehicleLengthConfidenceIndication := noTrailerPresent
    //                            },
    //                            vehicleWidth := 21,
    //                            longitudinalAcceleration := {
    //                                longitudinalAccelerationValue := c_longitudinalAccelerationValue_unavailable,
    //                                longitudinalAccelerationConfidence := c_accelerationConfidence_unavailable
    //                            },
    //                            curvature := {
    //                                curvatureValue := c_curvatureValue_straight,
    //                                curvatureConfidence := unavailable
    //                            },
    //                            curvatureCalculationMode := yawRateUsed,
    //                            yawRate := {
    //                                yawRateValue := c_yawRateValue_straight,
    //                                yawRateConfidence := unavailable
    //                            },
    //                            accelerationControl := omit,
    //                            steeringWheelAngle := omit,
    //                            lateralAcceleration := omit,
    //                            verticalAcceleration := omit, 
    //                            performanceClass := omit,
    //                            cenDsrcTollingZone := omit
    //                        }
    //                    },
    //                    lowFrequencyContainer := {
    //                        basicVehicleContainerLowFrequency := {
    //                            vehicleRole := default_,
    //                            exteriorLights := c_exteriorLights_daytimeRunningLightsOn,
    //                            pathHistory := {}
    //                        }
    //                    },
    //                    specialVehicleContainer := omit
    //                }
    //            }
    //        }
    //        
    //        template (value) ProfileParameters m_profileParameters_BasicVehicle := {
    //                    basicVehicle := {
    //                    }
    ////                    emergencyVehicle := {
    ////                        lightBarInUse := 2,
    ////                        sireneInUse := 3,
    ////                        emergencyResponseType := 1
    ////                    }
    ////                    publicTransportVehicle := {
    ////                        publicVehicleType := 3,
    ////                        pTLineDescription := {
    ////                            courseOfJourney := "Course Of Journey",
    ////                            lineRef := 10,
    ////                            routeRef := "Route Ref"
    ////                        },
    ////                        ScheduleDeviation scheduleDeviation optional,
    ////                        TrafficLightPriority trafficLightPriority optional
    ////                    } // End of PublicTransportVehicle
    //        } // End of template m_profileParameters_BasicVehicle
    //
    //        template (value) ProfileParameters m_profileParameters_EmergencyVehicle := {
    //            emergencyVehicle := {
    //                lightBarInUse := enabled,
    //                sireneInUse := engaged,
    //                emergencyResponseType := rightOfWay
    //            }
    //        } // End of template m_profileParameters_EmergencyVehicle
    //
    //        template (value) ProfileParameters m_profileParameters_PublicTransportVehicle := {
    //            publicTransportVehicle := {
    //                publicVehicleType := 3,
    //                pTLineDescription := {
    //                    courseOfJourney := "Course Of Journey",
    //                    lineRef := "Line Ref",
    //                    routeRef := "Route Ref"
    //                },
    //                scheduleDeviation := -200,
    //                trafficLightPriority := 7
    //            }
    //        } // End of template m_profileParameters_PublicTransportVehicle
    //        
        } // End of group testUtEvent
        
        group testCamPrimitiveMessages {
            
            testcase tc_CamReq() runs on TCType system TCType {
                log("v_camReq=", m_camReq(
                    m_camMsg(
                        f_getTsStationId(),
                        35000 // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime
                    )
                ));
                log("v_camReq=", bit2oct(encvalue(m_camReq(
                    m_camMsg(
                        f_getTsStationId(),
                        35000 // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime
                    )
                ))));
                test_PDU<CamReq>(
                    m_camReq(
                        m_camMsg(
                            f_getTsStationId(),
                            35000 // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime
                        )
                    ), 
                    true,
                    oct2bit('01020001B20788B80059F48D95CDEFC8C6000200200030D41E0000012016840310A50733A9870FFFD0'O)
                );
            }
            
            testcase tc_encodeCamTemplate() runs on TCType system TCType {
                var template (value) CamReq v_camReq := m_camReq(
                    m_camMsg_vehicle_HF_BV(
                        f_getTsStationId(),
                        f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime
                        m_tsPosition
                    )
                );
                log("v_camReq=", v_camReq);
                log("v_camReq=", bit2oct(encvalue(v_camReq)));
                
            }
            
        } // End of group testCamPrimitiveMessages
        
    } // End of group LibItsCam_testCases