Skip to content
GitLab
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
TTCN-3 Libraries
LibIts
Compare revisions
a5e1ab80add66b05a967925f79948b05b5f7b058...094113c7bb96d4d10d61024f8ac2aaff15f47928
Commits (1)
Start implemantation of RTCMEM TPs
· 094113c7
Yann Garcia
authored
Aug 14, 2020
094113c7
Hide whitespace changes
Inline
Side-by-side
asn1/CAM/CAM-PDU-Descriptions.asn
deleted
100644 → 0
View file @
a5e1ab80
CAM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ItsPduHeader, CauseCode, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, Heading, LanePosition, EmergencyPriority, EmbarkationStatus, Speed, DriveDirection, LongitudinalAcceleration, LateralAcceleration, VerticalAcceleration, StationType, ExteriorLights, DangerousGoodsBasic, SpecialTransportType, LightBarSirenInUse, VehicleRole, VehicleLength, VehicleWidth, PathHistory, RoadworksSubCauseCode, ClosedLanes, TrafficRule, SpeedLimit, SteeringWheelAngle, PerformanceClass, YawRate, ProtectedCommunicationZone, PtActivation, Latitude, Longitude, ProtectedCommunicationZonesRSU, CenDsrcTollingZone FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)
};
-- The root data frame for cooperative awareness messages
CAM ::= SEQUENCE {
header ItsPduHeader,
cam CoopAwareness
}
CoopAwareness ::= SEQUENCE {
generationDeltaTime GenerationDeltaTime,
camParameters CamParameters
}
CamParameters ::= SEQUENCE {
basicContainer BasicContainer,
highFrequencyContainer HighFrequencyContainer,
lowFrequencyContainer LowFrequencyContainer OPTIONAL,
specialVehicleContainer SpecialVehicleContainer OPTIONAL,
...
}
HighFrequencyContainer ::= CHOICE {
basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency,
rsuContainerHighFrequency RSUContainerHighFrequency,
...
}
LowFrequencyContainer ::= CHOICE {
basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency,
...
}
SpecialVehicleContainer ::= CHOICE {
publicTransportContainer PublicTransportContainer,
specialTransportContainer SpecialTransportContainer,
dangerousGoodsContainer DangerousGoodsContainer,
roadWorksContainerBasic RoadWorksContainerBasic,
rescueContainer RescueContainer,
emergencyContainer EmergencyContainer,
safetyCarContainer SafetyCarContainer,
...
}
BasicContainer ::= SEQUENCE {
stationType StationType,
referencePosition ReferencePosition,
...
}
BasicVehicleContainerHighFrequency ::= SEQUENCE {
heading Heading,
speed Speed,
driveDirection DriveDirection,
vehicleLength VehicleLength,
vehicleWidth VehicleWidth,
longitudinalAcceleration LongitudinalAcceleration,
curvature Curvature,
curvatureCalculationMode CurvatureCalculationMode,
yawRate YawRate,
accelerationControl AccelerationControl OPTIONAL,
lanePosition LanePosition OPTIONAL,
steeringWheelAngle SteeringWheelAngle OPTIONAL,
lateralAcceleration LateralAcceleration OPTIONAL,
verticalAcceleration VerticalAcceleration OPTIONAL,
performanceClass PerformanceClass OPTIONAL,
cenDsrcTollingZone CenDsrcTollingZone OPTIONAL
}
BasicVehicleContainerLowFrequency ::= SEQUENCE {
vehicleRole VehicleRole,
exteriorLights ExteriorLights,
pathHistory PathHistory
}
PublicTransportContainer ::= SEQUENCE {
embarkationStatus EmbarkationStatus,
ptActivation PtActivation OPTIONAL
}
SpecialTransportContainer ::= SEQUENCE {
specialTransportType SpecialTransportType,
lightBarSirenInUse LightBarSirenInUse
}
DangerousGoodsContainer ::= SEQUENCE {
dangerousGoodsBasic DangerousGoodsBasic
}
RoadWorksContainerBasic ::= SEQUENCE {
roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL,
lightBarSirenInUse LightBarSirenInUse,
closedLanes ClosedLanes OPTIONAL
}
RescueContainer ::= SEQUENCE {
lightBarSirenInUse LightBarSirenInUse
}
EmergencyContainer ::= SEQUENCE {
lightBarSirenInUse LightBarSirenInUse,
incidentIndication CauseCode OPTIONAL,
emergencyPriority EmergencyPriority OPTIONAL
}
SafetyCarContainer ::= SEQUENCE {
lightBarSirenInUse LightBarSirenInUse,
incidentIndication CauseCode OPTIONAL,
trafficRule TrafficRule OPTIONAL,
speedLimit SpeedLimit OPTIONAL
}
RSUContainerHighFrequency ::= SEQUENCE {
protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL,
...
}
GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)
END
\ No newline at end of file
asn1/DENM/DENM-PDU-Descriptions.asn
deleted
100644 → 0
View file @
a5e1ab80
DENM-PDU-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) denm (1) version (2)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ItsPduHeader, CauseCode, Speed, InformationQuality, ReferencePosition, ClosedLanes, DangerousGoodsExtended, Heading, LanePosition, LightBarSirenInUse, RoadType, HeightLonCarr, PosLonCarr, PosCentMass, PositioningSolutionType, RequestResponseIndication, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType, ActionID, ItineraryPath, NumberOfOccupants, PositionOfPillars, RelevanceTrafficDirection, RestrictedTypes, Traces, TransmissionInterval, ValidityDuration, RelevanceDistance, EventHistory, TrafficRule, DeltaReferencePosition FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)
};
DENM ::= SEQUENCE {
header ItsPduHeader,
denm DecentralizedEnvironmentalNotificationMessage
}
DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
management ManagementContainer,
situation SituationContainer OPTIONAL,
location LocationContainer OPTIONAL,
alacarte AlacarteContainer OPTIONAL
}
ManagementContainer ::= SEQUENCE {
actionID ActionID,
detectionTime TimestampIts,
referenceTime TimestampIts,
termination Termination OPTIONAL,
eventPosition ReferencePosition,
relevanceDistance RelevanceDistance OPTIONAL,
relevanceTrafficDirection RelevanceTrafficDirection OPTIONAL,
validityDuration ValidityDuration DEFAULT defaultValidity,
transmissionInterval TransmissionInterval OPTIONAL,
stationType StationType,
...
}
SituationContainer ::= SEQUENCE {
informationQuality InformationQuality,
eventType CauseCode,
linkedCause CauseCode OPTIONAL,
eventHistory EventHistory OPTIONAL,
...
}
LocationContainer ::= SEQUENCE {
eventSpeed Speed OPTIONAL,
eventPositionHeading Heading OPTIONAL,
traces Traces,
roadType RoadType OPTIONAL,
...
}
ImpactReductionContainer ::= SEQUENCE {
heightLonCarrLeft HeightLonCarr,
heightLonCarrRight HeightLonCarr,
posLonCarrLeft PosLonCarr,
posLonCarrRight PosLonCarr,
positionOfPillars PositionOfPillars,
posCentMass PosCentMass,
wheelBaseVehicle WheelBaseVehicle,
turningRadius TurningRadius,
posFrontAx PosFrontAx,
positionOfOccupants PositionOfOccupants,
vehicleMass VehicleMass,
requestResponseIndication RequestResponseIndication
}
RoadWorksContainerExtended ::= SEQUENCE {
lightBarSirenInUse LightBarSirenInUse OPTIONAL,
closedLanes ClosedLanes OPTIONAL,
restriction RestrictedTypes OPTIONAL,
speedLimit SpeedLimit OPTIONAL,
incidentIndication CauseCode OPTIONAL,
recommendedPath ItineraryPath OPTIONAL,
startingPointSpeedLimit DeltaReferencePosition OPTIONAL,
trafficFlowRule TrafficRule OPTIONAL,
referenceDenms ReferenceDenms OPTIONAL
}
StationaryVehicleContainer ::= SEQUENCE {
stationarySince StationarySince OPTIONAL,
stationaryCause CauseCode OPTIONAL,
carryingDangerousGoods DangerousGoodsExtended OPTIONAL,
numberOfOccupants NumberOfOccupants OPTIONAL,
vehicleIdentification VehicleIdentification OPTIONAL,
energyStorageType EnergyStorageType OPTIONAL
}
AlacarteContainer ::= SEQUENCE {
lanePosition LanePosition OPTIONAL,
impactReduction ImpactReductionContainer OPTIONAL,
externalTemperature Temperature OPTIONAL,
roadWorks RoadWorksContainerExtended OPTIONAL,
positioningSolution PositioningSolutionType OPTIONAL,
stationaryVehicle StationaryVehicleContainer OPTIONAL,
...
}
defaultValidity INTEGER ::= 600
Termination ::= ENUMERATED {isCancellation(0), isNegation (1)}
ReferenceDenms ::= SEQUENCE (SIZE(1..8, ...)) OF ActionID
END
\ No newline at end of file
asn1/EV-RSR/EV-RSR-PDU-Descriptions.asn
deleted
100644 → 0
View file @
a5e1ab80
EV-RechargingSpotReservation-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (101556) ev-rsr (4) version (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ItsPduHeader FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1)
};
EV-RSR ::= SEQUENCE {
header ItsPduHeader,
messageBody EV-RSR-MessageBody
}
EV-RSR-MessageBody ::= CHOICE {
preReservationRequestMessage PreReservationRequestMessage,
preReservationResponseMessage PreReservationResponseMessage,
reservationRequestMessage ReservationRequestMessage,
reservationResponseMessage ReservationResponseMessage,
cancellationRequestMessage CancellationRequestMessage,
cancellationResponseMessage CancellationResponseMessage,
updateRequestMessage UpdateRequestMessage,
updateResponseMessage UpdateResponseMessage,
...
}
PreReservationRequestMessage ::= SEQUENCE {
evse-ID EVSE-ID,
arrivalTime TimestampUTC,
departureTime TimestampUTC OPTIONAL,
rechargingType RechargingType,
batteryType BatteryType OPTIONAL,
...
}
PreReservationResponseMessage ::= SEQUENCE {
preReservation-ID PreReservation-ID,
availabilityStatus AvailabilityStatus,
preReservationExpirationTime TimestampUTC,
supportedPaymentTypes SupportedPaymentTypes,
...
}
ReservationRequestMessage ::= SEQUENCE {
currentTime TimestampUTC,
preReservation-ID PreReservation-ID,
arrivalTime TimestampUTC,
departureTime TimestampUTC OPTIONAL,
eAmount EAmount,
eAmountMin EAmount,
paymentType PaymentType,
payment-ID Payment-ID,
secondPayment-ID Payment-ID OPTIONAL,
pairing-ID Pairing-ID OPTIONAL,
...
}
ReservationResponseMessage ::= SEQUENCE {
reservationResponseCode ReservationResponseCode,
reservation-ID Reservation-ID OPTIONAL,
reservation-Password Reservation-Password OPTIONAL,
stationDetails StationDetails OPTIONAL,
chargingSpotLabel ChargingSpotLabel OPTIONAL,
expirationTime TimestampUTC,
freeCancelTimeLimit TimestampUTC OPTIONAL,
...
}
CancellationRequestMessage ::= SEQUENCE {
reservation-ID Reservation-ID,
reservation-Password Reservation-Password,
currentTime TimestampUTC,
...
}
CancellationResponseMessage ::= SEQUENCE {
reservation-ID Reservation-ID,
cancellationResponseCode CancellationResponseCode,
...
}
UpdateRequestMessage ::= SEQUENCE {
reservation-ID Reservation-ID,
reservation-Password Reservation-Password,
updatedArrivalTime TimestampUTC,
updatedDepartureTime TimestampUTC,
...
}
UpdateResponseMessage ::= SEQUENCE {
reservation-ID Reservation-ID,
updateResponseCode UpdateResponseCode,
chargingSpotLabel ChargingSpotLabel OPTIONAL,
...
}
AvailabilityStatus ::= ENUMERATED { available, no-free-capacity }
BatteryType ::= UTF8String (SIZE(1..16))
CancellationResponseCode ::= ENUMERATED { ok, unknown-Reservation-ID, mismatching-Reservation-Password }
ChargingSpotLabel ::= UTF8String (SIZE(1..4))
ContractID ::= UTF8String (SIZE(1..24))
EAmount ::= INTEGER { oneWh(1) } (1..500000)
ChargingPower ::= INTEGER { oneW(1) } (1..200000)
EVSE-ID ::= OCTET STRING (SIZE(1..32))
ExternalIdentificationMeans ::= UTF8String (SIZE(1..24))
Pairing-ID ::= VisibleString (SIZE(1..64))
PaymentType ::= ENUMERATED {contract, externalIdentification}
Payment-ID ::= CHOICE {
contractID ContractID,
externalIdentificationMeans ExternalIdentificationMeans
}
RechargingType ::= SEQUENCE {
rechargingMode RechargingMode,
powerSource PowerSource
}
RechargingMode ::= INTEGER { mode1(0), mode2(1), mode3(2), mode4(3), quickDrop(8), inductiveChargingWhileStationary(12), inductiveChargingWhileDriving(14) } (0..15)
PowerSource::= INTEGER { notApplicable(0), ac1Phase(1), ac2Phase(2), ac3Phase(3), dcc(4), chaDeMo(5) } (0..7)
ReservationResponseCode ::= ENUMERATED {ok, invalid-EVSE-ID, payment-type-not-supported, payment-error, authentication-error, insufficient-power-availability }
Reservation-ID ::= VisibleString (SIZE(8))
PreReservation-ID ::= Reservation-ID
Reservation-Password ::= VisibleString (SIZE(8))
StationDetails ::= UTF8String (SIZE(1..32))
SupportedPaymentTypes ::= BIT STRING { contract(0), externalIdentification (1) } (SIZE(2))
TimestampUTC ::= INTEGER { utcStartOf2013(0), oneSecondAfterUTCStartOf2013(1) }
UpdateResponseCode ::= ENUMERATED { ok, unknown-Reservation-ID, mismatching-Reservation-Password, invalid-Arrival-Time, invalid-Departure-Time }
StatusResponseCode ::= ENUMERATED { charging-Spot-Occupied, charging-Spot-Unoccupied, charging-Ongoing, reservation-Limit-Exceeded, reservation-Cancelled, unknown-Reservation-ID, expired-Reservation-ID }
END
asn1/EVCSN/EVCSN-PDU-Descriptions.asn
deleted
100644 → 0
View file @
a5e1ab80
-- Point of Interest (POI) notification for charging spot
-- for electric vehicle
-- EVCSN Message definition
-- ASN.1 Start Definition
EVCSN-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5)
wg1 (1) ts (101556) evcsn (1) version (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ItsPduHeader,
StationID,
TimestampIts,
ReferencePosition
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1)
};
-- Root Message PDU: EvcsnPdu
EvcsnPdu ::= SEQUENCE {
header ItsPduHeader,
evcsn EVChargingSpotNotificationPOIMessage
}
EVChargingSpotNotificationPOIMessage ::= SEQUENCE {
poiHeader ItsPOIHeader, -- Specific POI Message Header
evcsnData ItsEVCSNData -- Electric Vehicle Charging Spot Data Elements
}
ItsPOIHeader ::= SEQUENCE {
poiType POIType, -- set to "EV charging station POI ID = 1"
timeStamp TimestampIts,
relayCapable BOOLEAN
}
ItsEVCSNData ::= SEQUENCE {
totalNumberOfStations NumberStations,
chargingStationsData SEQUENCE (SIZE(1..256)) OF ItsChargingStationData
}
ItsChargingStationData ::= SEQUENCE {
chargingStationID StationID,
utilityDistributorId UTF8String (SIZE(1..32)) OPTIONAL,
providerID UTF8String (SIZE(1..32)) OPTIONAL,
chargingStationLocation ReferencePosition,
address UTF8String OPTIONAL,
phoneNumber NumericString (SIZE(1..16)) OPTIONAL,
accessibility UTF8String (SIZE(1..32)),
digitalMap DigitalMap OPTIONAL,
openingDaysHours UTF8String,
pricing UTF8String,
bookingContactInfo UTF8String OPTIONAL,
payment UTF8String OPTIONAL,
chargingSpotsAvailable ItsChargingSpots,
...
}
ItsChargingSpots ::= SEQUENCE (SIZE(1..16)) OF ItsChargingSpotDataElements
ItsChargingSpotDataElements ::= SEQUENCE {
type ChargingSpotType,
evEquipmentID UTF8String OPTIONAL,
typeOfReceptacle TypeOfReceptacle,
energyAvailability UTF8String,
parkingPlacesData ParkingPlacesData OPTIONAL
}
DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition
ChargingSpotType ::= BIT STRING {
standardChargeMode1(0),
standardChargeMode2(1),
standardOrFastChargeMode3(2),
fastChargeWithExternalCharger(3),
quickDrop(8),
inductiveChargeWhileStationary(12),
inductiveChargeWhileDriving(14)
}
TypeOfReceptacle ::= BIT STRING
ParkingPlacesData ::= SEQUENCE (SIZE(1..4)) OF SpotAvailability
SpotAvailability ::= SEQUENCE {
maxWaitingTimeMinutes INTEGER (0..1400), -- 0 if available or max waiting
-- time (minutes)
blocking BOOLEAN -- true if the spot can be blocked
}
POIType ::= INTEGER(0..65535)
NumberStations ::= INTEGER(1..256)
END
asn1/ITS-Container/ITS-Container.asn
deleted
100644 → 0
View file @
a5e1ab80
ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS;
ItsPduHeader ::= SEQUENCE {
protocolVersion INTEGER (0..255),
messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005
stationID StationID
}
StationID ::= INTEGER(0..4294967295)
ReferencePosition ::= SEQUENCE {
latitude Latitude,
longitude Longitude,
positionConfidenceEllipse PosConfidenceEllipse ,
altitude Altitude
}
DeltaReferencePosition ::= SEQUENCE {
deltaLatitude DeltaLatitude,
deltaLongitude DeltaLongitude,
deltaAltitude DeltaAltitude
}
Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001)
Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001)
Altitude ::= SEQUENCE {
altitudeValue AltitudeValue,
altitudeConfidence AltitudeConfidence
}
AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001)
AltitudeConfidence ::= ENUMERATED {
alt-000-01 (0),
alt-000-02 (1),
alt-000-05 (2),
alt-000-10 (3),
alt-000-20 (4),
alt-000-50 (5),
alt-001-00 (6),
alt-002-00 (7),
alt-005-00 (8),
alt-010-00 (9),
alt-020-00 (10),
alt-050-00 (11),
alt-100-00 (12),
alt-200-00 (13),
outOfRange (14),
unavailable (15)
}
DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072)
DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072)
DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800)
PosConfidenceEllipse ::= SEQUENCE {
semiMajorConfidence SemiAxisLength,
semiMinorConfidence SemiAxisLength,
semiMajorOrientation HeadingValue
}
PathPoint ::= SEQUENCE {
pathPosition DeltaReferencePosition,
pathDeltaTime PathDeltaTime OPTIONAL
}
PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...)
PtActivation ::= SEQUENCE {
ptActivationType PtActivationType,
ptActivationData PtActivationData
}
PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255)
PtActivationData ::= OCTET STRING (SIZE(1..20))
AccelerationControl ::= BIT STRING {
brakePedalEngaged (0),
gasPedalEngaged (1),
emergencyBrakeEngaged (2),
collisionWarningEngaged (3),
accEngaged (4),
cruiseControlEngaged (5),
speedLimiterEngaged (6)
} (SIZE(7))
SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095)
CauseCode ::= SEQUENCE {
causeCode CauseCodeType,
subCauseCode SubCauseCodeType,
...
}
CauseCodeType ::= INTEGER {
reserved (0),
trafficCondition (1),
accident (2),
roadworks (3),
impassability (5),
adverseWeatherCondition-Adhesion (6),
aquaplannning (7),
hazardousLocation-SurfaceCondition (9),
hazardousLocation-ObstacleOnTheRoad (10),
hazardousLocation-AnimalOnTheRoad (11),
humanPresenceOnTheRoad (12),
wrongWayDriving (14),
rescueAndRecoveryWorkInProgress (15),
adverseWeatherCondition-ExtremeWeatherCondition (17),
adverseWeatherCondition-Visibility (18),
adverseWeatherCondition-Precipitation (19),
slowVehicle (26),
dangerousEndOfQueue (27),
vehicleBreakdown (91),
postCrash (92),
humanProblem (93),
stationaryVehicle (94),
emergencyVehicleApproaching (95),
hazardousLocation-DangerousCurve (96),
collisionRisk (97),
signalViolation (98),
dangerousSituation (99)
} (0..255)
SubCauseCodeType ::= INTEGER (0..255)
TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255)
AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255)
RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255)
HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255)
WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255)
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255)
AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255)
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255)
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255)
SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255)
StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255)
HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255)
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255)
HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255)
HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255)
HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255)
HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255)
CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255)
SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255)
RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255)
DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255)
DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255)
VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255)
PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255)
Curvature ::= SEQUENCE {
curvatureValue CurvatureValue,
curvatureConfidence CurvatureConfidence
}
CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023)
CurvatureConfidence ::= ENUMERATED {
onePerMeter-0-00002 (0),
onePerMeter-0-0001 (1),
onePerMeter-0-0005 (2),
onePerMeter-0-002 (3),
onePerMeter-0-01 (4),
onePerMeter-0-1 (5),
outOfRange (6),
unavailable (7)
}
CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...}
Heading ::= SEQUENCE {
headingValue HeadingValue,
headingConfidence HeadingConfidence
}
HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601)
HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127)
LanePosition ::= INTEGER {offTheRoad(-1), innerHardShoulder(0),
innermostDrivingLane(1), secondLaneFromInside(2), outerHardShoulder(14) } (-1..14)
ClosedLanes ::= SEQUENCE {
innerhardShoulderStatus HardShoulderStatus OPTIONAL,
outerhardShoulderStatus HardShoulderStatus OPTIONAL,
drivingLaneStatus DrivingLaneStatus OPTIONAL,
...
}
HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)}
DrivingLaneStatus ::= BIT STRING (SIZE (1..13))
PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7)
SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383)
SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127)
VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024)
Speed ::= SEQUENCE {
speedValue SpeedValue,
speedConfidence SpeedConfidence
}
DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}
EmbarkationStatus ::= BOOLEAN
LongitudinalAcceleration ::= SEQUENCE {
longitudinalAccelerationValue LongitudinalAccelerationValue,
longitudinalAccelerationConfidence AccelerationConfidence
}
LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161)
AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102)
LateralAcceleration ::= SEQUENCE {
lateralAccelerationValue LateralAccelerationValue,
lateralAccelerationConfidence AccelerationConfidence
}
LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161)
VerticalAcceleration ::= SEQUENCE {
verticalAccelerationValue VerticalAccelerationValue,
verticalAccelerationConfidence AccelerationConfidence
}
VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161)
StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6),
lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255)
ExteriorLights ::= BIT STRING {
lowBeamHeadlightsOn (0),
highBeamHeadlightsOn (1),
leftTurnSignalOn (2),
rightTurnSignalOn (3),
daytimeRunningLightsOn (4),
reverseLightOn (5),
fogLightOn (6),
parkingLightsOn (7)
} (SIZE(8))
DangerousGoodsBasic::= ENUMERATED {
explosives1(0),
explosives2(1),
explosives3(2),
explosives4(3),
explosives5(4),
explosives6(5),
flammableGases(6),
nonFlammableGases(7),
toxicGases(8),
flammableLiquids(9),
flammableSolids(10),
substancesLiableToSpontaneousCombustion(11),
substancesEmittingFlammableGasesUponContactWithWater(12),
oxidizingSubstances(13),
organicPeroxides(14),
toxicSubstances(15),
infectiousSubstances(16),
radioactiveMaterial(17),
corrosiveSubstances(18),
miscellaneousDangerousSubstances(19)
}
DangerousGoodsExtended ::= SEQUENCE {
dangerousGoodsType DangerousGoodsBasic,
unNumber INTEGER (0..9999),
elevatedTemperature BOOLEAN,
tunnelsRestricted BOOLEAN,
limitedQuantity BOOLEAN,
emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,
phoneNumber PhoneNumber OPTIONAL,
companyName UTF8String (SIZE (1..24)) OPTIONAL,
...
}
SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4))
LightBarSirenInUse ::= BIT STRING {
lightBarActivated (0),
sirenActivated (1)
} (SIZE(2))
HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100)
PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127)
PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30)
PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63)
RequestResponseIndication ::= ENUMERATED {request(0), response(1)}
SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255)
StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)}
Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67)
TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ...
}
WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127)
TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255)
PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20)
PositionOfOccupants ::= BIT STRING {
row1LeftOccupied (0),
row1RightOccupied (1),
row1MidOccupied (2),
row1NotDetectable (3),
row1NotPresent (4),
row2LeftOccupied (5),
row2RightOccupied (6),
row2MidOccupied (7),
row2NotDetectable (8),
row2NotPresent (9),
row3LeftOccupied (10),
row3RightOccupied (11),
row3MidOccupied (12),
row3NotDetectable (13),
row3NotPresent (14),
row4LeftOccupied (15),
row4RightOccupied (16),
row4MidOccupied (17),
row4NotDetectable (18),
row4NotPresent (19)} (SIZE(20))
PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...}
VehicleIdentification ::= SEQUENCE {
wMInumber WMInumber OPTIONAL,
vDS VDS OPTIONAL,
...
}
WMInumber ::= IA5String (SIZE(1..3))
VDS ::= IA5String (SIZE(6))
EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7))
VehicleLength ::= SEQUENCE {
vehicleLengthValue VehicleLengthValue,
vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication
}
VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023)
VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)}
VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62)
PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint
EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2))
InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7)
RoadType ::= ENUMERATED {
urban-NoStructuralSeparationToOppositeLanes(0),
urban-WithStructuralSeparationToOppositeLanes(1),
nonUrban-NoStructuralSeparationToOppositeLanes(2),
nonUrban-WithStructuralSeparationToOppositeLanes(3)}
SteeringWheelAngle ::= SEQUENCE {
steeringWheelAngleValue SteeringWheelAngleValue,
steeringWheelAngleConfidence SteeringWheelAngleConfidence
}
SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512)
SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127)
TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103)
VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)}
YawRate::= SEQUENCE {
yawRateValue YawRateValue,
yawRateConfidence YawRateConfidence
}
YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767)
YawRateConfidence ::= ENUMERATED {
degSec-000-01 (0),
degSec-000-05 (1),
degSec-000-10 (2),
degSec-001-00 (3),
degSec-005-00 (4),
degSec-010-00 (5),
degSec-100-00 (6),
outOfRange (7),
unavailable (8)
}
ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) }
RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)}
RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)}
TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000)
ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400)
ActionID ::= SEQUENCE {
originatingStationID StationID,
sequenceNumber SequenceNumber
}
ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition
ProtectedCommunicationZone ::= SEQUENCE {
protectedZoneType ProtectedZoneType,
expiryTime TimestampIts OPTIONAL,
protectedZoneLatitude Latitude,
protectedZoneLongitude Longitude,
protectedZoneRadius ProtectedZoneRadius OPTIONAL,
protectedZoneID ProtectedZoneID OPTIONAL,
...
}
Traces ::= SEQUENCE SIZE(1..7) OF PathHistory
NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127)
SequenceNumber ::= INTEGER (0..65535)
PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar
RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType
EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint
EventPoint ::= SEQUENCE {
eventPosition DeltaReferencePosition,
eventDeltaTime PathDeltaTime OPTIONAL,
informationQuality InformationQuality
}
ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone
CenDsrcTollingZone ::= SEQUENCE {
protectedZoneLatitude Latitude,
protectedZoneLongitude Longitude,
cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL,
...
}
ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...)
ProtectedZoneID ::= INTEGER (0.. 134217727)
CenDsrcTollingZoneID ::= ProtectedZoneID
DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition
OpeningDaysHours ::= UTF8String
PhoneNumber ::= NumericString (SIZE(1..16))
END
ttcn/Common/LibItsCommon_TypesAndValues.ttcn
View file @
094113c7
...
...
@@ -198,6 +198,7 @@ module LibItsCommon_TypesAndValues {
const
integer
c_its_aid_SPAT
:=
137
;
const
integer
c_its_aid_MAP
:=
138
;
const
integer
c_its_aid_IVI
:=
139
;
const
integer
c_its_aid_GPC
:=
140
;
const
integer
c_its_aid_TLC
:=
140
;
const
integer
c_its_aid_GN
:=
141
;
const
integer
c_its_aid_SCR
:=
623
;
// Secured Certificate Request, https://standards.ieee.org/products-services/regauth/psid/public.html
...
...
ttcn/Rtcmem/LibItsRtcmem_Functions.ttcn
View file @
094113c7
...
...
@@ -114,6 +114,35 @@ module LibItsRtcmem_Functions {
return
;
}
/**
* @desc Terminates an event at the application layer
* @param p_event The event to terminate.
*/
function
f_utTerminateEvent
(
template
(
value
)
UtRtcmemTermination
p_event
)
runs
on
ItsRtcmem
{
//deactivate rtcmemPort default alts
vc_rtcmemDefaultActive
:=
false
;
utPort
.
send
(
p_event
);
tc_wait
.
start
;
alt
{
[]
utPort
.
receive
(
UtRtcmemResults
:
{
utRtcmemTerminationResult
:=
?
})
{
tc_wait
.
stop
;
}
[]
tc_wait
.
timeout
{
log
(
"*** "
&
testcasename
()
&
": INFO: Could not receive expected UT message from IUT in time ***"
);
f_selfOrClientSyncAndVerdict
(
"error"
,
e_timeout
);
}
[]
a_utDefault
()
{
//empty on purpose
}
}
//activate rtcmemPort default alts
vc_rtcmemDefaultActive
:=
true
;
}
}
// End of group utFuntions
group
adapterControl
{
...
...
@@ -220,7 +249,7 @@ module LibItsRtcmem_Functions {
[]
utPort
.
receive
(
UtRtcmemEventInd
:?
)
->
value
v_rtcmemevent
{
//store every upper tester indication received
vc_ut
Rtcmem
Events
[
lengthof
(
vc_ut
Rtcmem
Events
)]
:=
v_rtcmemevent
;
vc_utEvents
[
lengthof
(
vc_utEvents
)]
:=
v_rtcmemevent
;
repeat
;
}
[]
utPort
.
receive
{
...
...
@@ -231,7 +260,7 @@ module LibItsRtcmem_Functions {
}
// End of group altsteps
group
rtcmem
Ssem
ConfigurationFunctions
{
group
rtcmemConfigurationFunctions
{
/**
* @desc Setups default configuration
...
...
@@ -272,7 +301,7 @@ module LibItsRtcmem_Functions {
f_disconnect4SelfOrClientSync
();
}
// End of f_cfDown
}
// End of of rtcmem
Ssem
ConfigurationFunctions
}
// End of of rtcmemConfigurationFunctions
group
preambles
{
...
...
ttcn/Rtcmem/LibItsRtcmem_Pics.ttcn
View file @
094113c7
...
...
@@ -20,5 +20,11 @@ module LibItsRtcmem_Pics {
* @see ETSI TS 103 191-1 Table A.5
*/
modulepar
boolean
PICS_RTCMEM_RECEPTION
:=
true
;
/**
* @desc Does IUT support GeoNetworking short range?
* @see ETSI TS 103 191-1 Table A.5
*/
modulepar
boolean
PICS_SHORT_RANGE
:=
true
;
}
// End of module LibItsRtcmem_Pics
ttcn/Rtcmem/LibItsRtcmem_Templates.ttcn
View file @
094113c7
...
...
@@ -14,7 +14,7 @@ module LibItsRtcmem_Templates {
import
from
LibItsCommon_Functions
all
;
import
from
LibItsCommon_ASN1_NamedNumbers
all
;
// LibItsRtcmem
Ssem
// LibItsRtcmem
import
from
LibItsRtcmem_TestSystem
all
;
import
from
LibItsRtcmem_TypesAndValues
all
;
import
from
LibItsRtcmem_Pixits
all
;
...
...
@@ -22,7 +22,7 @@ module LibItsRtcmem_Templates {
group
primitivesTemplates
{
/**
* @desc Send template for RTCMEM Message (Rtcmem
Ssem
Port Primitive)
* @desc Send template for RTCMEM Message (RtcmemPort Primitive)
* @param p_rtcmemMsg The RTCMEM Message to be sent
*/
template
(
value
)
RtcmemReq
m_rtcmemReq
(
...
...
@@ -32,7 +32,7 @@ module LibItsRtcmem_Templates {
}
/**
* @desc Receive template for RTCMEM Message (Rtcmem
Ssem
Port Primitive)
* @desc Receive template for RTCMEM Message (RtcmemPort Primitive)
* @param p_rtcmemMsg The expected RTCMEM Message
*/
template
(
present
)
RtcmemInd
mw_rtcmemInd
(
...
...
@@ -51,7 +51,7 @@ module LibItsRtcmem_Templates {
}
/**
* @desc Receive template for RTCMEM Message (Rtcmem
Ssem
Port Primitive)
* @desc Receive template for RTCMEM Message (RtcmemPort Primitive)
* @param p_rtcmemMsg The expected RTCMEM Message
* @param p_gnNextHeader GN next header value
* @param p_gnHeaderType GN header type value
...
...
@@ -75,7 +75,7 @@ module LibItsRtcmem_Templates {
}
/**
* @desc Receive template for RTCMEM Message (Rtcmem
Ssem
Port Primitive)
* @desc Receive template for RTCMEM Message (RtcmemPort Primitive)
* @param p_rtcmemMsg Expected RTCMEM Message
* @param p_btpDestinationPort BTP destination port value
* @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A)
...
...
@@ -90,14 +90,14 @@ module LibItsRtcmem_Templates {
};
/**
* @desc Receive template for RTCMEM Message (Rtcmem
Ssem
Port Primitive)
* @desc Receive template for RTCMEM Message (RtcmemPort Primitive)
* @param p_rtcmemMsg The expected RTCMEM Message
* @param p_ssp SSP value
* @param p_its_aid ITS-AID value
*/
template
(
present
)
RtcmemInd
mw_rtcmemIndWithSecurityParameters
(
template
(
present
)
RTCMEM
p_rtcmemMsg
,
template
Bit2
56
p_ssp
:=
*
,
template
Bit2
4
p_ssp
:=
*
,
template
UInt32
p_its_aid
:=
*
)
modifies
mw_rtcmemInd
:=
{
ssp
:=
p_ssp
,
...
...
@@ -117,8 +117,8 @@ module LibItsRtcmem_Templates {
}
/**
* @desc Send template for Upper Tester Trigger event
*/
* @desc Send template for Upper Tester Trigger event
*/
template
(
omit
)
UtRtcmemTrigger
m_utTriggerEvent
(
in
MsgCount
p_msgCnt
,
in
RTCM_Revision
p_rev
:=
rtcmRev3
,
...
...
@@ -135,6 +135,15 @@ module LibItsRtcmem_Templates {
rtcmHeader
:=
p_rtcmHeader
}
/**
* @desc Send template for Upper Tester Trigger event
*/
template
(
omit
)
UtRtcmemTermination
m_utTriggerTermination
(
in
MsgCount
p_msgCnt
)
:=
{
msgCnt
:=
p_msgCnt
}
}
group
rtcmemPduTemplates
{
...
...
@@ -220,6 +229,30 @@ module LibItsRtcmem_Templates {
}
// End of group headerTemplates
group
rtcmemTemplatesSend
{
/**
* @desc Receive template for RTCMEM Message
*/
template
(
value
)
RTCMcorrections
m_defaultRtcmem
(
in
MsgCount
p_msgCnt
,
in
RTCM_Revision
p_rev
:=
rtcmRev3
,
in
RTCMmessageList
p_msgs
,
in
template
(
omit
)
MinuteOfTheYear
p_timeStamp
:=
omit
,
in
template
(
omit
)
FullPositionVector
p_anchorPoint
:=
omit
,
in
template
(
omit
)
RTCMheader
p_rtcmHeader
:=
omit
)
:=
{
msgCnt
:=
p_msgCnt
,
rev
:=
p_rev
,
timeStamp
:=
p_timeStamp
,
anchorPoint
:=
p_anchorPoint
,
rtcmHeader
:=
p_rtcmHeader
,
msgs
:=
p_msgs
,
regional
:=
omit
}
// End of template m_defaultRtcmem
}
// End of group rtcmemTemplatesSend
group
rtcmemTemplatesRecv
{
/**
...
...
ttcn/Rtcmem/LibItsRtcmem_TestSystem.ttcn
View file @
094113c7
...
...
@@ -35,7 +35,7 @@ module LibItsRtcmem_TestSystem {
*/
type
port
UpperTesterPort
message
{
out
UtRtcmemInitialize
,
UtRtcmemTrigger
,
UtRtcmemUpdate
;
UtRtcmemInitialize
,
UtRtcmemTrigger
,
UtRtcmemUpdate
,
UtRtcmemTermination
;
in
UtRtcmemResults
,
UtRtcmemEventInd
;
}
// end UpperTesterPort
...
...
@@ -77,7 +77,7 @@ module LibItsRtcmem_TestSystem {
//component variables
var
RtcmemInd
vc_mapMsg
;
var
UtRtcmemEventIndList
vc_ut
Rtcmem
Events
:=
{};
var
UtRtcmemEventIndList
vc_utEvents
:=
{};
//default
var
default
vc_default
:=
null
;
...
...
@@ -99,7 +99,7 @@ module LibItsRtcmem_TestSystem {
UInt8
gnTrafficClass
optional
,
UInt16
btpDestinationPort
optional
,
UInt16
btpInfo
optional
,
Bit2
56
ssp
optional
,
Bit2
4
ssp
optional
,
UInt32
its_aid
optional
}
with
{
...
...
ttcn/Rtcmem/LibItsRtcmem_TypesAndValues.ttcn
View file @
094113c7
...
...
@@ -34,7 +34,8 @@ module LibItsRtcmem_TypesAndValues {
type
union
UtRtcmemResults
{
boolean
utRtcmemInitializeResult
,
boolean
utRtcmemTriggerResult
,
boolean
utRtcmemUpdateResult
boolean
utRtcmemUpdateResult
,
boolean
utRtcmemTerminationResult
}
with
{
variant
""
}
// End of type UtRtcmemResults
...
...
@@ -65,13 +66,22 @@ module LibItsRtcmem_TypesAndValues {
variant
"FIELDORDER(msb)"
}
/**
* @desc Upper Tester message to request termination of an event at IUT
*/
type
record
UtRtcmemTermination
{
MsgCount
msgCnt
}
with
{
variant
"FIELDORDER(msb)"
}
/**
* @desc Upper Tester message to check event/status at IUT
*/
type
record
UtRtcmemEventInd
{
RTCMEM
rtcmeMsg
RTCMEM
rtcme
m
Msg
}
with
{
encode
(
rtcmeMsg
)
"LibItsRtcmem_asn1"
encode
(
rtcme
m
Msg
)
"LibItsRtcmem_asn1"
}
/**
...
...