Commit a5e1ab80 authored by Yann Garcia's avatar Yann Garcia
Browse files

Start implemantation of RTCMEM TPs

parent cdd2cf4a
Loading
Loading
Loading
Loading
+132 −0
Original line number Diff line number Diff line
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
+108 −0
Original line number Diff line number Diff line
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
+157 −0
Original line number Diff line number Diff line
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
+102 −0
Original line number Diff line number Diff line
-- 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
+508 −0

File added.

Preview size limit exceeded, changes collapsed.