module test_LibItsDenm_TypesAndValues /*language "TTCN-3:2009 Advanced Parameterization"*/ { import from test_CommonCodec all; import from DENM_PDU_Descriptions language "ASN.1:1997" all with { encode "LibItsDenm_asn1" } import from LibItsDenm_TestSystem all; import from LibItsDenm_Templates all; import from LibItsDenm_TypesAndValues all; import from LibItsCommon_TypesAndValues all; import from LibItsDenm_Functions all; import from LibItsCommon_Functions all; group testUtEvent { testcase tc_UtDenmInitialize() runs on TCType system TCType { test_PDU(m_denmInitialize, false); } testcase tc_eventSituation() runs on TCType system TCType { test_PDU(m_utEvent(m_situation(c_causeVehicleProblem, c_subCauseUnknown)), false); } testcase tc_eventCancellation() runs on TCType system TCType { test_PDU(m_utEventCancellation(m_situation(c_causeSlowVehicle, c_subCauseUnknown), { f_getTsStationId(), 170 }), false); } testcase tc_eventNegation() runs on TCType system TCType { test_PDU(m_utEventNegation(m_situation(c_causeWrongWayDriving, c_subCauseUnknown), { f_getTsStationId(), 170 }), false); } testcase tc_eventTrafficFlowEffect() runs on TCType system TCType { test_PDU(m_utEventTrafficFlowEffect(m_situation(c_causeExtremWeatherCondition, c_subCauseUnknown), c_tfeFreeTrafficFlow), false); } testcase tc_eventLinkedCause() runs on TCType system TCType { test_PDU(m_utEventLinkedCause(m_situation(c_causeAccident, c_subCauseUnknown), m_situation(c_causeExtremWeatherCondition, c_subCauseUnknown)), false); } testcase tc_eventExpirationTime() runs on TCType system TCType { test_PDU(m_utEventExpirationTime(m_situation(c_causeVehicleProblem, c_subCauseUnknown), 281474976710655), false); } testcase tc_eventExpirationTimeFrequency() runs on TCType system TCType { test_PDU(m_utEventExpirationTimeFrequency(m_situation(c_causeVehicleProblem, c_subCauseUnknown), 281474976710655, 255), false); } testcase tc_eventCharact() runs on TCType system TCType { test_PDU(m_utEventCharact(m_situation(c_causeVehicleProblem, c_subCauseUnknown), m_eventCharact), false); } testcase tc_checkDenmEvent() runs on TCType system TCType { var template (value) UtCheck v_utMsg := { m_utEvent(m_situation(c_causeVehicleProblem, c_subCauseUnknown)) }; test_PDU(v_utMsg, false); } testcase tc_checkDenmEventNegation() runs on TCType system TCType { var template (value) UtCheck v_utMsg := { m_utEventNegation(m_situation(c_causeWrongWayDriving, c_subCauseUnknown), { f_getTsStationId(), 170 }) }; test_PDU(v_utMsg, false); } testcase tc_checkDenmEventCancellation() runs on TCType system TCType { var template (value) UtCheck v_utMsg := { m_utEventCancellation(m_situation(c_causeVehicleProblem, c_subCauseBrakeDownVehicle), { f_getTsStationId(), 170 }) }; test_PDU(v_utMsg, false); } } // End of group testUtEvent group testDenmPrimitiveMessages { template (value) DenmInd m_denmInd(template (value) DenmPdu p_denMsg) := { msgIn := p_denMsg, receptionTime := 1234587 } testcase tc_DenmReq() runs on TCType system TCType { test_PDU( m_denmReq( m_denmPdu( f_getCurrentTime(), m_denmWithCause( 0, m_situation(c_causeVehicleProblem, c_subCauseUnknown), m_eventPosition(m_tsPosition), f_getTsStationId()))), false); } testcase tc_DenmReqOutdated() runs on TCType system TCType { test_PDU( m_denmReq( m_denmPdu( f_getCurrentTime(), m_denmWithCause( 0, m_situation(c_causeSlowVehicle, c_subCauseUnknown), m_eventPosition(m_tsPosition), f_getTsStationId()))), false); } testcase tc_DenmInd() runs on TCType system TCType { test_PDU( m_denmInd( m_denmPdu( f_getCurrentTime(), m_denmWithCause( 0, m_situation(c_causeSlowVehicle, c_subCauseUnknown), m_eventPosition(m_tsPosition), f_getTsStationId()))), false); } testcase tc_test() runs on TCType system TCType { var DenmPdu v_decMsg; var integer v_res := 0; v_res := decvalue(oct2bit('00010133a6bf49d07302172f800000002674d823d200391f20000000001ff01000400010802317d1109404000884400400000000000004000000007ffd7fe0000001f81abe34a1eade9e30026e100008ebbb265cda7765c8000000002008c00046bc387a'O), v_decMsg); select (v_res) { case (0) { log(v_decMsg); setverdict(pass); } case (1) { setverdict(fail, "Decoding failed."); } case (2) { setverdict(fail, "Not enough bits."); } } // var DenmPdu bla := { header := { protocolVersion := 0, messageID := 1, generationTime := 1321352514000 }, denm := { management := { actionID := { stationID := 2551232892, sequenceNo := 0 }, dataVersion := 0, expiryTime := 1321352634000, frequency := 1, reliability := 100, isNegation := false }, situation := { trafficFlowEffect := 1, situation := { cause := 0, subCause := 0 }, linkedCause := { cause := 0, subCause := 0 }, severity := informative, eventCharact := { eventmobility := false, causeType := itsStation, relevance := physicallyRelevant, timeCriticality := false }, vehicleCommonParameters := { vehicleType := 1, stationLength := 1, stationLengthConfidence := 0, stationWidth := 1, stationWidthConfidence := 0, vehicleSpeed := 38, vehicleSpeedConfidence := 1, longAcceleration := 1, longAccelerationConfidence := 1, accelerationControl := '010000000'B, yawRate := { yawDirection := right, yawRateValue := 1 }, yawRateConfidence := 1, exteriorLights := '10000000'B, turnAdvice := { direction := '00000000'B, distance := 0 }, distanceToStopLine := 0, occupancy := 0, doorOpen := '00000000'B, posConfidenceEllipse := { semiMajorConfidence := 0, semiMinorConfidence := 0, semiMajorOrientation := 0 }, curvature := 0, curvatureChange := 0, curvatureConfidence := 0, crashStatus := false, headingConfidence := 0, dangerousGoods := 0 }, profile := {basicVehicle := { }} }, location := { eventPosition := {eventPositionCurrentDefinition := { refPosition := { longitude := { hemisphere := east, degree := 56084116 }, latitude := { hemisphere := north, degree := 514714083 }, elevation := -47, heading := 0, streetName := "undefined", positionConfidence := 0, elevationConfidence := 0, roadSegmentID := 0 }, eventSpeed := 38 }}, locationRef := {trace := { traceID := 0, waypoints := {} }}, relevanceArea := omit } } }; } } // End of group testDenmPrimitiveMessages }