Commit d1ea6779 authored by Jasja Tijink's avatar Jasja Tijink
Browse files

Draft V002

parent fa55363a
Loading
Loading
Loading
Loading
+117 −159
Original line number Diff line number Diff line
-- draft 01 for target V2.2.1
-- draft 02 for target V2.2.1

POIM-ParkingAvailability {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) poi(103916) parkingAvailability(1) major-version-1 (1) minor-version-2 (2)}   

@@ -6,9 +6,9 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN

IMPORTS

AltitudeValue, ConfidenceLevel, DangerousGoodsBasic, DeltaLatitude, DeltaLongitude, DeltaReferencePosition, EuVehicleCategoryCode, Identifier2B, Latitude, Longitude, 
ParkingOccupancyInfo, ParkingSpaceBasic, ParkingSpaceDetailed, ParkingSpaceStatus, ParkingAreaArrangementType, ParkingReservationType, SpecialTransportType, 
TimestampIts, VehicleHeight, Wgs84Angle
AltitudeValue, ConfidenceLevel, DangerousGoodsBasic, DeltaPosition, DeltaPositions, EuVehicleCategoryCode, GeoPosition, Identifier2B, 
MapemElementReference, ParkingOccupancyInfo, ParkingSpaceBasic, ParkingSpaceDetailed, ParkingSpaceStatus, ParkingAreaArrangementType, ParkingReservationType, 
SpecialTransportType, TimestampIts, VehicleHeight, Wgs84Angle
FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-3 (3)} WITH SUCCESSORS

PoiBlockManagementContainer, RelatedPoiInfoBlockContainer 
@@ -32,7 +32,7 @@ FROM EfcDataDictionary {iso(1) standard(0) 17573 dd(3) version1(1) minorVersion6
 *
 * @field aggregatedStatus: aggregated status information about the parking place.
 *
 * @field detailedStatus: optional detailed topology and status information about the parking areas and spaces.
 * @field capabilities: optional detailed topology and status information about the parking areas and spaces.
 *
 * @field relatedPoi: optional reference to other relevant POI Information Blocks.  
 *
@@ -41,7 +41,7 @@ ParkingAvailabilityBlock::= SEQUENCE{
   managementContainer     PoiBlockManagementContainer,
   placeInfo               GeneralParkingPlaceContainer,
   aggregatedStatus        ParkingStatusContainer,
   detailedStatus          ParkingSupplyCapabilitiesContainer OPTIONAL,
   capabilities            ParkingSupplyCapabilitiesContainer OPTIONAL, -- this component renamed in V2.2.1
   relatedPoi              RelatedPoiInfoBlockContainer OPTIONAL,
   ...
}   
@@ -68,11 +68,11 @@ ParkingAvailabilityBlock::= SEQUENCE{
*/
GeneralParkingPlaceContainer::= SEQUENCE{
   position              GeoPosition,
   name 		         UTF8String (SIZE (1..31)),
   name                  UTF8String, -- constraint removed in V2.2.1
   openingPeriods    	 Periods OPTIONAL,
   address 		         UTF8String (SIZE (1..255)) OPTIONAL,
   phoneNumber 	         UTF8String (SIZE (1..31)) OPTIONAL,
   website               UTF8String (SIZE (1..31)) OPTIONAL,
   address               UTF8String OPTIONAL, -- constraint removed in V2.2.1
   phoneNumber 	         UTF8String OPTIONAL, -- constraint removed in V2.2.1
   website               UTF8String OPTIONAL, -- constraint removed in V2.2.1
   ...
} 

@@ -81,18 +81,17 @@ GeneralParkingPlaceContainer::= SEQUENCE{
 *
 * It shall include the following components: 
 *
 * @field currentFacilityStatus: the current status of the parking space (facility).
 * @field currentPlaceStatus: the current status of the parking place.
 *
 * @field currentOccupancy: the optional current occupancy of the entire parking place (facility).
 * This component is only representative if the parking place has areas and spaces of the same type. e.g. personal car parking spaces only. 
 * @field detailedStatus-Block: the optional detailed parking availability status of the parking place restricted to the ParkingAreas contained in the specific POI information block.
 *
 * @field detailedStatus: the optional detailed parking availability status of the parking place (facility).
 * @field detailedStatus-Place: the optional detailed parking availability status of the entire parking place, i.e. across all POI information blocks / POIM-PAs in a set.
 *
*/
ParkingStatusContainer::= SEQUENCE {
	currentFacilityStatus    OpeningStatus,
    currentOccupancy         OccupancyInformation OPTIONAL,           
	detailedStatus           ParkingStatusList OPTIONAL,
   currentPlaceStatus       OpeningStatus, -- deleted currentOccupancy (after currentPlaceStatus) in V2.2.1  
   detailedStatus-Block     ParkingStatusList OPTIONAL, -- name changed in V2.2.1
   detailedStatus-Place     ParkingStatusList OPTIONAL, -- component added in V2.2.1
    ...
}

@@ -100,93 +99,78 @@ ParkingStatusContainer::= SEQUENCE {
 * This type represents the ParkingSupplyCapabilitiesContainer and is a list of @ref ParkingAreas.
 *
*/
ParkingSupplyCapabilitiesContainer::= SEQUENCE OF ParkingAreas
ParkingSupplyCapabilitiesContainer::= SEQUENCE (SIZE(1..16,...)) OF ParkingArea -- of type ParkingArea in V2.2.1. - DF ParkingAreas deleted

-- DFs for parking availability:

/** 
 * This DF indicates a geographical position with reference to a reference position.
 * This DF indicates the load type of the vehicle.
 *
 * It shall include the following components: 
 *
 * @field deltaLatitude: the delta latitude of the geographical position.
 * @field goodsType: optional information about the goods being transported.
 *
 * @field deltaLongitude: the delta longitude of the geographical position.
 * @field dangerousGoodsType: the optional type of dangerous goods according to the European Agreement concerning the International Carriage of Dangerous Goods by Road (ADR). 
 *
 * @field specialTransportType: the type of special transport according to local regulations.
 *
*/
DeltaPosition::=SEQUENCE{
	deltaLatitude 		DeltaLatitude,
	deltaLongitude		DeltaLongitude
LoadType::= SEQUENCE{
	goodsType               GoodsType OPTIONAL,
	dangerousGoodsType      DangerousGoodsBasic OPTIONAL,
	specialTransportType    SpecialTransportType,
    ...
	}

/** 
 * This DF shall contain an an ordered sequence of @ref DeltaPosition with respect to the previous position 
 * with the first instance referring to a reference position and with the order implicitly defining a direction.
 *
 * This DF provides  a list of DF MapemElementReference
*/
DeltaPositions::= SEQUENCE (SIZE (1..32, ...))  OF DeltaPosition
MapemElementReferences::= SEQUENCE(SIZE(1..4,...)) OF MapemElementReference

/**
 * This DF indicates a geographical position.
 * This DF represents occupancy information. 
 *
 * It shall include the following components: 
 *
 * @field latitude: the latitude of the geographical position.
 * @field freeSpaces: the number of spaces that are actually available <= totalSpaces.
 *
 * @field longitude: the longitude of the geographical position.
 * @field totalSpaces: the total number of spaces.
 *
 * @field altitude: the altitude of the geographical position.
 * @field confidence: the confidence level of the above information.
 *
 * @field projection: the optional projection into the future of the occupancy information
 *
*/
GeoPosition::= SEQUENCE{
	latitude  Latitude,
	longitude Longitude,
    altitude  AltitudeValue DEFAULT unavailable
OccupancyInformation::= SEQUENCE{ --deleted the first components rate and trend in V2.2.1
   freeSpaces      NumberOfSpaces,
   totalSpaces	   NumberOfSpaces (1..16383),
   confidence      ConfidenceLevel,
   projection      OccupancyProjections OPTIONAL, -- added in V2.2.1
   ...
} 


/**
 * This DF indicates a the load type of the vehicle.
 * This DF represents an occupancy projection. 
 *
 * It shall include the following components: 
 *
 * @field goodsType: optional information about the goods being transported.
 * @field freeSpaces: the number of spaces that are estimated to be available at the time: "current time + @field time" 
 *
 * @field dangerousGoodsType: the optional type of dangerous goods according to the European Agreement concerning the International Carriage of Dangerous Goods by Road (ADR). 
 *
 * @field specialTransportType: the type of special transport according to local regulations.
 * @field time: the delta time into the future of the projection information in @ref freeSpaces.
 *
*/
LoadType::= SEQUENCE{
	goodsType				GoodsType OPTIONAL,
	dangerousGoodsType		DangerousGoodsBasic OPTIONAL,
	specialTransportType	SpecialTransportType,
OccupancyProjection::= SEQUENCE{ -- new DF in V2.2.1
   freeSpaces      NumberOfSpaces,
   time            DeltaTimeMinutes,
   ...
}

/**
 * This DF represents occupancy information. 
 *
 * It shall include the following components: 
 *
 * @field rate: the current occupancy in percentage, nominally = ((totalSpaces-freeSpaces)/totalSpaces) * 100.
 *
 * @field trend: the current trend of the occupancy.
 *
 * @field freeSpaces: the number of spaces that are actually available <= totalSpaces.
 *
 * @field totalSpaces: the total number of spaces.
 *
 * @field confidence: the confidence level of the above information.
 * This DF represents a list of DF occupancy projection. 
 *
*/
OccupancyInformation::= SEQUENCE{
   rate            OccupancyRate,
   trend           OccupancyTrend, 
   freeSpaces      NumberOfSpaces,
   totalSpaces	   NumberOfSpaces (1..16383), -- bug fix of official version
   confidence      ConfidenceLevel,
   ...
} 
OccupancyProjections::= SEQUENCE (SIZE(1..4,...)) OF OccupancyProjection -- new DF in V2.2.1

/**
 * This DF provides information about the parking capabilities and availabilities of a parking identified area. 
@@ -195,7 +179,9 @@ OccupancyInformation::= SEQUENCE{
 *
 * It shall include the following components: 
 *
 * @field id: the identifier of the parking area within the parking place(facility).
 * @field id: the identifier of the parking area within the parking place.
 *
 * @field currentStatus: the current opening status of the parking area.
 *
 * @field currentOccupancy: the current occupancy information of the parking area.
 *
@@ -204,14 +190,14 @@ OccupancyInformation::= SEQUENCE{
 * @field level: the level under/over ground floor of the parking area.
 *
 * @field arrangementType: the common arrangement of the parking spaces within the area.
 * the value ´mixed´ shall be used if there is no common arrangement. In this case the arrangement of the single spaces may be defined in the component spacesDetailed.
 * the value  mixed  shall be used if there is no common arrangement. In this case the arrangement of the single spaces may be defined in the component spacesDetailed.
 *
 * @field boundary: the optional physical boundary of the parking area as a polygon using the component location as reference position.
 *
 * @field orientation: the optional common orientation of the parking spaces within the area.
 * This is component shall be absent if there is no common orientation. In this case the orientation of the single spaces may be defined in the component spacesDetailed.
 *
 * @field accessViaLane: the optional identifier of a lane that provides access to the parking area.
 * @field accessViaLanes: the optional identifier(s) of lane(s) that provide(s) access to the parking area.
 *
 * @field allowedVehicleCategories: the categories of vehicles that are allowed in the parking area.
 *
@@ -232,11 +218,11 @@ OccupancyInformation::= SEQUENCE{
 *
 * @field bookingContactInfo: the optional booking contact information applicable to the parking area.
 *
 * @field accessCharachteristics: the optional access information to the area.
 * @field accessCharacteristics: the optional access information to the area.
 *
 * @field freeSpacesPosition: the optional list of positions of free spaces.
 *
 * @field freeSpacesId: the optional list of Ids of free spaces.
 * @field freeSpacesId: the optional list of Ids of free spaces. In this case, the Ids and the parking space meta information are assumed to be known outside of the context of this message, e.g. via a web service.
 *
 * @field spacesBasic: the optional basic information about none, some or all parking spaces within the area.
 *
@@ -245,13 +231,14 @@ OccupancyInformation::= SEQUENCE{
*/
ParkingArea::=SEQUENCE{
   id                                 Identifier2B,
   currentStatus                      OpeningStatus, -- added in V2.2.1
   currentOccupancy                   OccupancyInformation, 
   location                           GeoPosition,
   level                              INTEGER(-8..16,...) DEFAULT 0,
   arrangementType                    ParkingAreaArrangementType,
   boundary                           DeltaPositions OPTIONAL, 
   orientation                        Wgs84Angle OPTIONAL, 
   accessViaLane			          Identifier2B OPTIONAL,
   accessViaLanes                     MapemElementReferences OPTIONAL, -- name and type changed in V2.2.1 
   allowedVehicleCategories           SEQUENCE (SIZE(1..4,...)) OF EuVehicleCategoryCode, 
   notAllowedEngineCharacteristics    SEQUENCE (SIZE(1..4,...)) OF EngineCharacteristics  OPTIONAL,
   allowedLoadTypes                   SEQUENCE (SIZE(1..4,...)) OF LoadType OPTIONAL, 
@@ -261,7 +248,7 @@ ParkingArea::=SEQUENCE{
   pricingInformation                 UTF8String OPTIONAL,
   paymentInformation                 UTF8String OPTIONAL, 
   bookingContactInfo                 UTF8String OPTIONAL, 
   accessCharachteristics             UTF8String OPTIONAL,
   accessCharacteristics              UTF8String OPTIONAL,
   freeSpacesPosition                 SEQUENCE OF DeltaPosition OPTIONAL,
   freeSpacesId                       SEQUENCE OF Identifier2B OPTIONAL,
   spacesBasic                        ParkingSpacesBasic OPTIONAL,
@@ -269,23 +256,17 @@ ParkingArea::=SEQUENCE{
   ...
}

/**
 * This DF shall contain a list of @ref ParkingArea.  
 *
*/
ParkingAreas::= SEQUENCE OF ParkingArea

/**
 * This DF shall contain a list of @ref ParkingSpaceBasic.  
 *
*/
ParkingSpacesBasic ::= SEQUENCE OF ParkingSpaceBasic
ParkingSpacesBasic ::= SEQUENCE (SIZE(1..32,...)) OF ParkingSpaceBasic

/**
 * This DF shall contain a list of @ref ParkingSpaceDetailed.  
 *
*/
ParkingSpacesDetailed ::= SEQUENCE OF ParkingSpaceDetailed
ParkingSpacesDetailed ::= SEQUENCE (SIZE(1..32,...)) OF ParkingSpaceDetailed

/**
 * This DF provides information about the status of a defined type of parking.
@@ -306,7 +287,7 @@ ParkingSpacesDetailed ::= SEQUENCE OF ParkingSpaceDetailed
 *
*/
ParkingStatus ::= SEQUENCE {
   vehicleTypes            SEQUENCE (SIZE(1..4,...)) OF EuVehicleCategoryCode OPTIONAL,
   vehicleTypes            SEQUENCE (SIZE(1..8,...)) OF EuVehicleCategoryCode OPTIONAL,
   reservationTypes        SEQUENCE (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL,
   loadTypes               SEQUENCE (SIZE(1..4,...)) OF LoadType OPTIONAL,
   parkingFeeTypes         SEQUENCE (SIZE(1..4,...)) OF ParkingFeeType OPTIONAL, 
@@ -374,6 +355,17 @@ TimeOfDay::= SEQUENCE {
*/ 
DayOfWeek::= BIT STRING {unused(0), monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6), sunday(7)} (SIZE (8))

/**
 * This DE represents a difference in time with respect to a reference time.
 *
 * The value shall be set to:
 * - `n` (`n > 0` and `n <= 60`) to indicate a time value equal to or less than n x 60 s, and greater than (n-1) x 60 s,
 *
 * @unit: 60 s
 *
*/
DeltaTimeMinutes ::= INTEGER  (1..60)  

/** 
 * This DE indicates the type of goods of a vehicle.
 *
@@ -419,7 +411,7 @@ GoodsType::= INTEGER {
 * This DE represents a number of parking spaces.
 * 
 * The value shall be set to:
 * - `n` (`n >= 0` and `n < 16382`) : for the number of spaces.
 * - `n` (`n >= 0` and `n < 16383`) : for the number of spaces.
 * - `16383`                        : in case the number of spaces is not available.
 *
*/
@@ -427,46 +419,6 @@ NumberOfSpaces ::= INTEGER {
    unavailable (16383)  
} (0..16383)

/** 
 * This DE represents an occupancy rate in percentage.
 * 
 * The value shall be set to:
 * - `n` (`n >= 0` and `n < 101`) : for the occupany rate in %,
 * - `101`                   : in case the occupany rate is not available.
 *
*/
OccupancyRate ::= INTEGER {
    unavailable (101)  
} (0..101)

/** 
 * This DE indicates the trend of occupancy.
 *
 * The value shall be set to:
 * - `0` to indicate that occupancy is decreasing,
 * - `1` to indicate that occupancy is decreasing quickly,
 * - `2` to indicate that occupancy is decreasing slowly,
 * - `3` to indicate that occupancy is increasing,
 * - `4` to indicate that occupancy is increasing quickly,
 * - `5` to indicate that occupancy is increasing slowly,
 * - `6` to indicate that occupancy is stable,
 * - `7` to indicate that occupancy is variable with no clear trend,
 * - `15` to indicate that occupancy is unknown,
 * - 8-14   - reserved for future usage. 
 *
*/
OccupancyTrend ::= INTEGER {
	decreasing				(0),
	decreasingQuickly		(1),
	decreasingSlowly		(2),
	increasing				(3),
    increasingQuickly       (4),
    increasingSlowly        (5),
    stable                  (6),
    variable                (7),
    unknown                 (15)
} (0..15)

/** 
 * This DE indicates the opening status.
 *
@@ -491,16 +443,22 @@ OpeningStatus ::= INTEGER {
 * This DE indicates the applicable type of parking fee.
 *
 * The value shall be set to:
 * - `0` to indicate that the applicable fee is time dependent, e.g. an hourly fee,
 * - `1` to indicate that ithe applicable fee is flat for a certain period, e.g. a flat fee for daily parking,
 * - `2` to indicate that the applicable fee is included in the subscription, e.g. a monthly subscription,
 * - 3-7  - reserved for future usage. 
 * - `0` to indicate that the applicable fee zero, i.e. parking is for free, 
 * - `1` to indicate that the applicable fee is free and then time dependent, e.g. an hourly fee,
 * - `2` to indicate that the applicable fee is free and then flat for a certain period, e.g. a flat fee for daily parking,
 * - `3` to indicate that the applicable fee is time dependent, e.g. an hourly fee,
 * - `4` to indicate that the applicable fee is flat for a certain period, e.g. a flat fee for daily parking,
 * - `5` to indicate that the applicable fee is included in the subscription, e.g. a monthly subscription,
 * - 6-7  - reserved for future usage. 
 *
*/
ParkingFeeType::= INTEGER { 
   timeDependentFee(0), 
   flatFee(1), 
   subscription(2) 
   free                    (0),
   freeThenTimeDependent   (1),
   freeThenFlat            (2),
   timeDependent           (3), 
   flat                    (4), 
   subscription            (5) 
}(0..7)

END