Commit ed2c66d5 authored by garciay's avatar garciay
Browse files

Add IVI ASN.1 files

parent ba34a5de
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
\ No newline at end of file
-- 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,
Timestamp,
ReferencePosition
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (0) version (2)
};
-- 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 Timestamp,
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
\ No newline at end of file
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: SPAT-MESSAGE-PDU-Descriptions
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
SPATEM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (103301) spatem (0) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
SPAT FROM DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (1) }
ItsPduHeader FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) };
SPATEM ::= SEQUENCE {
header ItsPduHeader,
spat SPAT
}
END
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: MAP-MESSAGE-PDU-Descriptions
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
MAPEM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (103301) mapem (1) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
MapData FROM DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (1) }
ItsPduHeader FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1)};
MAPEM ::= SEQUENCE {
header ItsPduHeader,
map MapData
}
END
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: IVI-MESSAGE-PDU-Descriptions
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
IVIM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (103301) ivim (2) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
IviStructure FROM IVI {iso (1) standard (0) ivi (19321) version1 (1)}
ItsPduHeader FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1)};
IVIM ::= SEQUENCE {
header ItsPduHeader,
ivi IviStructure
}
END
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: SRM-MESSAGE-PDU-Descriptions
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
SREM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (103301) srem (3) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
SignalRequestMessage FROM DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (1) }
ItsPduHeader FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1)};
SREM ::= SEQUENCE {
header ItsPduHeader,
srm SignalRequestMessage
}
END
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: SSM-MESSAGE-PDU-Descriptions
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
SSEM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (103301) ssem (4) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
SignalStatusMessage FROM DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (1) }
ItsPduHeader FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1)};
SSEM ::= SEQUENCE {
header ItsPduHeader,
ssm SignalStatusMessage
}
END
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 14816
--
-- 29.4.2015
--
-- This document contains only the data element needed for the encoding of an IVI message
-- as defined in ISO TS 19321(2015)
--
-- Published version location:
-- http://standards.iso.org/iso/14816/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AVIAEINumberingAndDataStructures {iso(1) standard(0) iso14816(14816) asnm1(1) version1(1)}
DEFINITIONS AUTOMATIC TAGS::= BEGIN
CountryCode::= BIT STRING(SIZE(10))
IssuerIdentifier::= INTEGER(0 .. 16383)
END
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 14906
--
--
--
-- This document contains only the data element needed for the encoding of an IVI message
-- as defined in ISO TS 19321(2015)
--
-- Published version location:
-- http://standards.iso.org/iso/14906/old/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EfcModule {iso standard 14906 modules(0) efc(0) version(1)} DEFINITIONS
AUTOMATIC TAGS
::= BEGIN
--EXPORTS ALL;
-- IMPORTS CountryCode, CS5, IssuerIdentifier FROM AVIAEINumberingAndDataStructures{iso(1) standard(0) 14816 }
IMPORTS CountryCode, IssuerIdentifier FROM AVIAEINumberingAndDataStructures {iso(1) standard(0) iso14816(14816) asnm1(1) version1(1)};
-- defined in ISO 14816 --
-- Container, AttributeIdList, Attributes, AttributeList FROM DSRCData{iso standard 14906 modules (0) dsrc (1) version (1)};
-- NOTE: The following are the definitions of the action and response
-- parameters
AxleWeightLimits ::= SEQUENCE{
maxLadenweightOnAxle1 Int2,
maxLadenweightOnAxle2 Int2,
maxLadenweightOnAxle3 Int2,
maxLadenweightOnAxle4 Int2,
maxLadenweightOnAxle5 Int2
}
-- Fritz include
DieselEmissionValues::= SEQUENCE {
particulate SEQUENCE {
unitType UnitType,
value INTEGER (0..32767)
},
absorptionCoeff Int2
}
-- Fritz include
EnvironmentalCharacteristics::= SEQUENCE {
euroValue EuroValue,
copValue CopValue
}
EuroValue::= ENUMERATED {
noEntry (0),
euro-1 (1),
euro-2 (2),
euro-3 (3),
euro-4 (4),
euro-5 (5),
euro-6 (6),
reservedForUse1 (7),
reservedForUse2 (8),
reservedForUse3 (9),
reservedForUse4 (10),
reservedForUse5 (11),
reservedForUse6 (12),
reservedForUse7 (13),
reservedForUse8 (14),
reservedForUse9 (15)
} -- 4 bits, EURO-Clases as defined in EC directive 88/77/EEC, annex 1
-- and in 91/542/EEC, 96/1/EC, 1999/96/EC, 2001/27/EC
CopValue::= ENUMERATED {
noEntry (0),
co2class1 (1), -- below 101 g/km
co2class2 (2), -- 101 to 120 g/km
co2class3 (3), -- 121 to 140 g/km
co2class4 (4), -- 141 to 160 g/km
co2class5 (5), -- 161 to 200 g/km
co2class6 (6), -- 201 to 250 g/km
co2class7 (7), -- above 250 g/km
reservedforUse (8) -- reserved for future CEN and ISO use
} -- 4 bits, reserved for carbon dioxide pollution values as defined in
-- EC directive 2003/127/EC'
-- Fritz include
EngineCharacteristics::= INTEGER {
noEntry (0),
noEngine (1),
petrolUnleaded (2),
petrolLeaded (3),
diesel (4),
lPG (5),
battery (6),
solar (7)
-- (8-255) are reserved for future CEN use
} (0..255)
-- Fritz include
ExhaustEmissionValues ::= SEQUENCE {
unitType UnitType,
emissionCO INTEGER (0.. 32767),
emissionHC Int2,
emissionNOX Int2,
emissionHCNOX Int2
}
Int1 ::= INTEGER(0..255)
Int2 ::= INTEGER(0..65535)
-- Fritz include
PassengerCapacity ::= SEQUENCE{
numberOfSeats Int1,
numberOfStandingPlaces Int1
}
Provider ::= SEQUENCE { -- Fritz include
countryCode CountryCode,
providerIdentifier IssuerIdentifier
}
SoundLevel ::= SEQUENCE{ -- fritz include
soundstationary Int1,
sounddriveby Int1
}
UnitType ::=ENUMERATED {
mg-km (0),
mg-kWh (1)
}
VehicleDimensions ::= SEQUENCE { -- Fritz include
vehicleLengthOverall Int1,
vehicleHeigthOverall Int1,
vehicleWidthOverall Int1
}
VehicleWeightLimits ::= SEQUENCE { -- fritz include
vehicleMaxLadenWeight Int2,
vehicleTrainMaximumWeight Int2,
vehicleWeightUnladen Int2
}
END
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 17419
--
-- This document contains only the data element needed for the encoding of an IVI message
-- as defined in ISO TS 19321(2015)
--
-- Published version location:
-- http://standards.iso.org/iso/ts/17419/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1) version1 (1)}
DEFINITIONS AUTOMATIC TAGS::=BEGIN
IMPORTS
;
-- End of IMPORTS
-- Types
-- Variable length data types
VarLengthNumber::=CHOICE{
content [0] INTEGER(0..127), -- one octet length
extension [1] Ext1
}
Ext1::=CHOICE{
content [0] INTEGER(128..16511), -- two octets length
extension [1] Ext2
}
Ext2::=CHOICE{
content [0] INTEGER(16512..2113663), -- three octets length
extension [1] Ext3
}
Ext3::=INTEGER(2113664..270549119,...) -- four and more octets length
END
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 19321
--
-- 2015
--
-- Due to typos in the published version,
-- small ASN.1 syntax adaptations have been executed
--
-- Published version location:
-- http://standards.iso.org/iso/ts/19321/ASN.1%20Profiles/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IVI {iso (1) standard (0) ivi (19321) version1 (1)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ItsPduHeader, Altitude, DangerousGoodsBasic , DeltaLatitude, DeltaLongitude, DeltaReferencePosition, Heading, HeadingValue, Latitude, LanePosition, Longitude, ReferencePosition, RoadType, SpecialTransportType, Speed, StationType, TimestampIts, VehicleRole
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) }
AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits
FROM EfcModule {iso standard 14906 modules(0) efc(0) version(1)}
EuVehicleCategoryCode, Iso3833VehicleType
FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version (1)}
VarLengthNumber
FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1) version1 (1)};
--Definition of IVI message to be send over the air is outside of the scope and given for information only:
IVI::= SEQUENCE {
header ItsPduHeader,
ivi IviStructure
}
--Definition of IVI Structure
IviStructure::= SEQUENCE{
mandatory IVIManagementContainer,
optional SEQUENCE (SIZE (1..8,...)) OF IviContainer OPTIONAL
}
--Definition of Containers
IviContainer::= CHOICE {
glc GeographicLocationContainer,