Commit b5af7839 authored by ASN.1 Checker's avatar ASN.1 Checker
Browse files

Documentation update

parent 1900dcb2
Loading
Loading
Loading
Loading
Loading
+510 −0
Changes for docs/POIM-ParkingAvailability.md: 510 added lines, 0 removed lines.
Original line number Diff line number Diff line
# <a name="POIM-ParkingAvailability"></a>ASN.1 module POIM-ParkingAvailability
OID: _{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) poi(103916) parkingAvailability(1) major-version-2 (2) minor-version-1 (1)}_

## Imports:
* **[ETSI-ITS-CDD](ETSI-ITS-CDD.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-4 (4)} WITH SUCCESSORS*<br/>
* **[POIM-CommonContainers](POIM-CommonContainers.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) poim (104258) common(99) major-version-1 (1) minor-version-1 (1)} WITH SUCCESSORS*<br/>
* **[EfcDataDictionary](EfcDataDictionary.md)** *{iso(1) standard(0) 17573 dd(3) version1(1) minorVersion6(6)} WITH SUCCESSORS*<br/>
## Data Elements:
### <a name="ParkingAvailabilityBlock"></a>ParkingAvailabilityBlock
This type represents the POI Information Block concerning a parking availability at a given parking place.  

 It shall include the following components:

Fields:
* _managementContainer_ of type [**PoiBlockManagementContainer**](POIM-CommonContainers.md#PoiBlockManagementContainer) <br>
  the management container of the parking availability POI Information Block.

* _placeInfo_ of type [**GeneralParkingPlaceContainer**](#GeneralParkingPlaceContainer) <br>
  general information about the parking place.

* _aggregatedStatus_ of type [**ParkingStatusContainer**](#ParkingStatusContainer) <br>
  aggregated status information about the parking place.

* _capabilities_ of type [**ParkingSupplyCapabilitiesContainer**](#ParkingSupplyCapabilitiesContainer)  OPTIONAL<br>
  optional detailed topology and status information about the parking areas and spaces.

* _relatedPoi_ of type [**RelatedPoiInfoBlockContainer**](POIM-CommonContainers.md#RelatedPoiInfoBlockContainer)  OPTIONAL<br>
  optional reference to other relevant POI Information Blocks.  

```asn1
ParkingAvailabilityBlock::= SEQUENCE{
   managementContainer     PoiBlockManagementContainer,
   placeInfo               GeneralParkingPlaceContainer,
   aggregatedStatus        ParkingStatusContainer,
   capabilities            ParkingSupplyCapabilitiesContainer OPTIONAL,
   relatedPoi              RelatedPoiInfoBlockContainer OPTIONAL,
   ...
}
```

### <a name="GeneralParkingPlaceContainer"></a>GeneralParkingPlaceContainer
This type represents the General Parking Place Container.

 It shall include the following components:

Fields:
* _position_ of type [**GeoPosition**](ETSI-ITS-CDD.md#GeoPosition) <br>
  the position of the parking place.

* _name_ of type [**UTF8String**](#UTF8String) <br>
  the name of the parking place.

* _openingPeriods_ of type [**Periods**](#Periods)  OPTIONAL<br>
  the optional opening periods of the parking place.

* _address_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional address of the parking place.

* _phoneNumber_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional phone number of the operator of the parking place. 

* _website_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional URL of the website of the operator of the parking place.

```asn1
GeneralParkingPlaceContainer::= SEQUENCE{
   position              GeoPosition,
   name                  UTF8String,
   openingPeriods        Periods OPTIONAL,
   address               UTF8String OPTIONAL,
   phoneNumber 	         UTF8String OPTIONAL,
   website               UTF8String OPTIONAL,
   ...
}
```

### <a name="ParkingStatusContainer"></a>ParkingStatusContainer
This type represents the Parking Status Container.

 It shall include the following components:

Fields:
* _currentPlaceStatus_ of type [**OpeningStatus**](#OpeningStatus) <br>
  the current status of the parking place.

* _detailedStatus-Block_ of type [**ParkingStatusList**](#ParkingStatusList)  OPTIONAL<br>
  the optional detailed parking availability status of the parking place restricted to the ParkingAreas contained in the specific POI information block.

* _detailedStatus-Place_ of type [**ParkingStatusList**](#ParkingStatusList)  OPTIONAL<br>
  the optional detailed parking availability status of the entire parking place, i.e. across all POI information blocks / POIM-PAs in a set.

```asn1
ParkingStatusContainer::= SEQUENCE {
   currentPlaceStatus       OpeningStatus,
   detailedStatus-Block     ParkingStatusList OPTIONAL,
   detailedStatus-Place     ParkingStatusList OPTIONAL,
    ...
}
```

### <a name="ParkingSupplyCapabilitiesContainer"></a>ParkingSupplyCapabilitiesContainer
This type represents the ParkingSupplyCapabilitiesContainer and is a list of [**ParkingAreas**](#ParkingAreas).
```asn1
ParkingSupplyCapabilitiesContainer::= SEQUENCE (SIZE(1..16,...)) OF ParkingArea
```

### <a name="LoadType"></a>LoadType
This DF indicates the load type of the vehicle.

 It shall include the following components:

Fields:
* _goodsType_ of type [**GoodsType**](ETSI-ITS-CDD.md#GoodsType)  OPTIONAL<br>
  optional information about the goods being transported.

* _dangerousGoodsType_ of type [**DangerousGoodsBasic**](ETSI-ITS-CDD.md#DangerousGoodsBasic)  OPTIONAL<br>
  the optional type of dangerous goods according to the European Agreement concerning the International Carriage of Dangerous Goods by Road (ADR). 

* _specialTransportType_ of type [**SpecialTransportType**](ETSI-ITS-CDD.md#SpecialTransportType) <br>
  the type of special transport according to local regulations.

```asn1
LoadType::= SEQUENCE{
	goodsType               GoodsType OPTIONAL,
	dangerousGoodsType      DangerousGoodsBasic OPTIONAL,
	specialTransportType    SpecialTransportType,
    ...
	}
```

### <a name="MapemElementReferences"></a>MapemElementReferences
This DF provides  a list of DF MapemElementReference
```asn1
MapemElementReferences::= SEQUENCE(SIZE(1..4,...)) OF MapemElementReference
```

### <a name="OccupancyInformation"></a>OccupancyInformation
This DF represents occupancy information. 

 It shall include the following components:

Fields:
* _freeSpaces_ of type [**NumberOfSpaces**](#NumberOfSpaces) <br>
  the number of spaces that are actually available ≤ totalSpaces.

* _totalSpaces_ of type [**NumberOfSpaces**](#NumberOfSpaces)  (1..16383)<br>
  the total number of spaces.

* _confidence_ of type [**ConfidenceLevel**](ETSI-ITS-CDD.md#ConfidenceLevel) <br>
  the confidence level of the above information.

* _projection_ of type [**OccupancyProjections**](#OccupancyProjections)  OPTIONAL<br>
  the optional projection into the future of the occupancy information

```asn1
OccupancyInformation::= SEQUENCE{ 
   freeSpaces      NumberOfSpaces,
   totalSpaces	   NumberOfSpaces (1..16383),
   confidence      ConfidenceLevel,
   projection      OccupancyProjections OPTIONAL,
   ...
}
```

### <a name="OccupancyProjection"></a>OccupancyProjection
This DF represents an occupancy projection. 

 It shall include the following components:

Fields:
* _freeSpaces_ of type [**NumberOfSpaces**](#NumberOfSpaces) <br>
  the number of spaces that are estimated to be available at the time: "current time + @field time" 

* _time_ of type [**DeltaTimeMinutes**](#DeltaTimeMinutes) <br>
  the delta time into the future of the projection information in [**freeSpaces**](#freeSpaces).

```asn1
OccupancyProjection::= SEQUENCE{
   freeSpaces      NumberOfSpaces,
   time            DeltaTimeMinutes,
   ...
}
```

### <a name="OccupancyProjections"></a>OccupancyProjections
This DF represents a list of DF occupancy projection.
```asn1
OccupancyProjections::= SEQUENCE (SIZE(1..4,...)) OF OccupancyProjection
```

### <a name="ParkingArea"></a>ParkingArea
This DF provides information about the parking capabilities and availabilities of a parking identified area. 


 It shall include the following components:

Fields:
* _id_ of type [**Identifier2B**](ETSI-ITS-CDD.md#Identifier2B) <br>
  the identifier of the parking area within the parking place.

* _currentStatus_ of type [**OpeningStatus**](#OpeningStatus) <br>
  the current opening status of the parking area.

* _currentOccupancy_ of type [**OccupancyInformation**](#OccupancyInformation) <br>
  the current occupancy information of the parking area.

* _location_ of type [**GeoPosition**](ETSI-ITS-CDD.md#GeoPosition) <br>
  the location of the parking area.

* _level_ of type **INTEGER** (-8..16,...) DEFAULT 0<br>
  the level under/over ground floor of the parking area.

* _arrangementType_ of type [**ParkingAreaArrangementType**](ETSI-ITS-CDD.md#ParkingAreaArrangementType) <br>
  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.

* _boundary_ of type [**DeltaPositions**](ETSI-ITS-CDD.md#DeltaPositions)  OPTIONAL<br>
  the optional physical boundary of the parking area as a polygon using the component location as reference position.

* _orientation_ of type [**Wgs84Angle**](ETSI-ITS-CDD.md#Wgs84Angle)  OPTIONAL<br>
  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.

* _accessViaLanes_ of type [**MapemElementReferences**](#MapemElementReferences)  OPTIONAL<br>
  the optional identifier(s) of lane(s) that provide(s) access to the parking area.

* _allowedVehicleCategories_ of type **SEQUENCE**  (SIZE(1..8,...)) OF EuVehicleCategoryCode<br>
  the categories of vehicles that are allowed in the parking area.

* _notAllowedEngineCharacteristics_ of type **SEQUENCE**  (SIZE(1..4,...)) OF EngineCharacteristics  OPTIONAL<br>
  the optional characteristic(s) of engines that are not allowed in the parking area.

* _allowedLoadTypes_ of type **SEQUENCE**  (SIZE(1..4,...)) OF LoadType OPTIONAL<br>
  the optional load type(s) that are allowed in the parking area.

* _notAllowedLoadTypes_ of type **SEQUENCE**  (SIZE(1..4,...)) OF LoadType OPTIONAL<br>
* _heightRestriction_ of type [**VehicleHeight**](ETSI-ITS-CDD.md#VehicleHeight)  OPTIONAL<br>
  the optional applicable vehicle height restriction.

* _widthRestriction_ of type [**VehicleWidth**](ETSI-ITS-CDD.md#VehicleWidth)  OPTIONAL<br>
  the optional applicable vehicle width restriction. 

* _reservationType_ of type **SEQUENCE**  (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL<br>
  the optional parking reservation type(s) associated to the parking area.
   This is component shall be absent if there is no common reservation type. In this case the reservation type of the single spaces may be defined in the component spacesDetailed.

* _feeType_ of type [**ParkingFeeType**](#ParkingFeeType) <br>
  the type of parking fee applicable to all spaces in the area.

* _pricingInformation_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional pricing information applicable to the parking area.

* _paymentInformation_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional payment information applicable to the parking area.

* _bookingContactInfo_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional booking contact information applicable to the parking area.

* _accessCharacteristics_ of type [**UTF8String**](#UTF8String)  OPTIONAL<br>
  the optional access information to the area.

* _freeSpacesPosition_ of type **SEQUENCE**  OF DeltaPosition OPTIONAL<br>
  the optional list of positions of free spaces.

* _freeSpacesId_ of type **SEQUENCE**  OF Identifier2B OPTIONAL<br>
  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.

* _spacesBasic_ of type [**ParkingSpacesBasic**](#ParkingSpacesBasic)  OPTIONAL<br>
  the optional basic information about none, some or all parking spaces within the area.

* _spacesDetailed_ of type [**ParkingSpacesDetailed**](#ParkingSpacesDetailed)  OPTIONAL<br>
  the optional detailed information about none, some or all parking spaces within the area.

* notallowedLoadTypes<br>
  the optional load type(s) that are not allowed in the parking area.


>>>
NOTE:&emsp;a parking area possibly groups all spaces with the same characteristics.
>>>

```asn1
ParkingArea::=SEQUENCE{
   id                                 Identifier2B,
   currentStatus                      OpeningStatus,
   currentOccupancy                   OccupancyInformation, 
   location                           GeoPosition,
   level                              INTEGER(-8..16,...) DEFAULT 0,
   arrangementType                    ParkingAreaArrangementType,
   boundary                           DeltaPositions OPTIONAL, 
   orientation                        Wgs84Angle OPTIONAL, 
   accessViaLanes                     MapemElementReferences OPTIONAL, 
   allowedVehicleCategories           SEQUENCE (SIZE(1..8,...)) OF EuVehicleCategoryCode,
   notAllowedEngineCharacteristics    SEQUENCE (SIZE(1..4,...)) OF EngineCharacteristics  OPTIONAL,
   allowedLoadTypes                   SEQUENCE (SIZE(1..4,...)) OF LoadType OPTIONAL, 
   notAllowedLoadTypes                SEQUENCE (SIZE(1..4,...)) OF LoadType OPTIONAL,
   heightRestriction                  VehicleHeight OPTIONAL,
   widthRestriction                   VehicleWidth OPTIONAL, 
   reservationType                    SEQUENCE (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL,
   feeType                            ParkingFeeType,
   pricingInformation                 UTF8String OPTIONAL,
   paymentInformation                 UTF8String OPTIONAL, 
   bookingContactInfo                 UTF8String OPTIONAL, 
   accessCharacteristics              UTF8String OPTIONAL,
   freeSpacesPosition                 SEQUENCE OF DeltaPosition OPTIONAL,
   freeSpacesId                       SEQUENCE OF Identifier2B OPTIONAL,
   spacesBasic                        ParkingSpacesBasic OPTIONAL,
   spacesDetailed                     ParkingSpacesDetailed OPTIONAL,
   ...
}
```

### <a name="ParkingSpacesBasic"></a>ParkingSpacesBasic
This DF shall contain a list of [**ParkingSpaceBasic**](ETSI-ITS-CDD.md#ParkingSpaceBasic).
```asn1
ParkingSpacesBasic ::= SEQUENCE (SIZE(1..32,...)) OF ParkingSpaceBasic
```

### <a name="ParkingSpacesDetailed"></a>ParkingSpacesDetailed
This DF shall contain a list of [**ParkingSpaceDetailed**](ETSI-ITS-CDD.md#ParkingSpaceDetailed).
```asn1
ParkingSpacesDetailed ::= SEQUENCE (SIZE(1..32,...)) OF ParkingSpaceDetailed
```

### <a name="ParkingStatus"></a>ParkingStatus
This DF provides information about the status of a defined type of parking.

 It shall include the following components:

Fields:
* _vehicleTypes_ of type **SEQUENCE**  (SIZE(1..8,...)) OF EuVehicleCategoryCode OPTIONAL<br>
  the optional types of vehicle for which the parking status is provided.

* _reservationTypes_ of type **SEQUENCE**  (SIZE(1..4,...)) OF ParkingReservationType OPTIONAL<br>
  the optional reservation types for which the parking status is provided.

* _loadTypes_ of type **SEQUENCE**  (SIZE(1..4,...)) OF LoadType OPTIONAL<br>
  the optional load types for which the parking status is provided.

* _parkingFeeTypes_ of type **SEQUENCE**  (SIZE(1..4,...)) OF ParkingFeeType OPTIONAL<br>
  the optional fee types for which the parking status is provided.

* _occupancyTypes_ of type **SEQUENCE**  (SIZE(1..4,...)) OF ParkingOccupancyInfo OPTIONAL<br>
  the optional occupancy types for which the parking status is provided.

* _currentOccupancy_ of type [**OccupancyInformation**](#OccupancyInformation) <br>
  the occupancy for the logical AND combination of the components defined above.

```asn1
ParkingStatus ::= SEQUENCE {
   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, 
   occupancyTypes          SEQUENCE (SIZE(1..4,...)) OF ParkingOccupancyInfo OPTIONAL,
   currentOccupancy        OccupancyInformation,
   ...
}
   ((WITH COMPONENTS {..., vehicleTypes PRESENT}) |
    (WITH COMPONENTS {..., reservationTypes PRESENT}) |
    (WITH COMPONENTS {..., loadTypes PRESENT}) | 
    (WITH COMPONENTS {..., parkingFeeTypes PRESENT}) |
    (WITH COMPONENTS {..., occupancyTypes PRESENT}))
```

### <a name="ParkingStatusList"></a>ParkingStatusList
This DF shall contain a list of [**ParkingStatus**](#ParkingStatus).
```asn1
ParkingStatusList::= SEQUENCE (SIZE(1..16,...)) OF ParkingStatus
```

### <a name="Period"></a>Period
This DF indicates a period occuring on defined days of the week.

 It shall include the following components:

Fields:
* _days_ of type [**DayOfWeek**](#DayOfWeek) <br>
  the applicable day(s) of the week.

* _opening_ of type [**TimeOfDay**](#TimeOfDay) <br>
  the opening time in local time.

* _closing_ of type [**TimeOfDay**](#TimeOfDay) <br>
  the closing time in local time.

```asn1
Period ::= SEQUENCE {
    days      DayOfWeek,         
    opening	  TimeOfDay,	
    closing	  TimeOfDay 	
}
```

### <a name="Periods"></a>Periods
This DF shall contain a list of up to 8 [**Period**](#Period).
```asn1
Periods ::= SEQUENCE (SIZE(1..8,...)) OF Period
```

### <a name="TimeOfDay"></a>TimeOfDay
This DF indicates the time of the day.

 It shall include the following components:

Fields:
* _hours_ of type **INTEGER**  (0..23)<br>
  the number of hours after midnight.

* _mins_ of type **INTEGER**  (0..59)<br>
  the number of minutes after the hour.

```asn1
TimeOfDay::= SEQUENCE {
   hours      INTEGER (0..23),
   mins       INTEGER (0..59) 
}
```

### <a name="DayOfWeek"></a>DayOfWeek
This DE indicates the applicable day(s) of the week.
```asn1
DayOfWeek::= BIT STRING {unused(0), monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6), sunday(7)} (SIZE (8))
```

### <a name="DeltaTimeMinutes"></a>DeltaTimeMinutes
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,

&nbsp;&nbsp;&nbsp;&nbsp;**Unit:** _60 s_
```asn1
DeltaTimeMinutes ::= INTEGER  (1..60)
```

### <a name="NumberOfSpaces"></a>NumberOfSpaces
This DE represents a number of parking spaces.
 
 The value shall be set to:
 - `n` (`n ≥ 0` and `n < 16383`) : for the number of spaces.
 - `16383`                        : in case the number of spaces is not available.

Values:
* **unavailable** (16383)<br>
```asn1
NumberOfSpaces ::= INTEGER {
    unavailable (16383)  
} (0..16383)
```

### <a name="OpeningStatus"></a>OpeningStatus
This DE indicates the opening status.

 The value shall be set to:
 - `0` to indicate that the opening status is: closed,
 - `1` to indicate that the opening status is: open,
 - `2` to indicate that the opening status is: open for subscribers only,
 - `3` to indicate that the opening status is: open but currently full, i.e. no parking spaces available,
 - `15` to indicate that occupancy is unknown,
 - 4-14 - reserved for future usage.

Values:
* **closed** (0)<br>
* **open** (1)<br>
* **subscribersOnly** (2)<br>
* **full** (3)<br>
* **unknown** (15)<br>
```asn1
OpeningStatus ::= INTEGER {
   closed            (0),
   open              (1),
   subscribersOnly   (2),
   full              (3),
   unknown          (15)
} (0..15)
```

### <a name="ParkingFeeType"></a>ParkingFeeType
This DE indicates the applicable type of parking fee.

 The value shall be set to:
 - `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.

Values:
* **free** (0)<br>
* **freeThenTimeDependent** (1)<br>
* **freeThenFlat** (2)<br>
* **timeDependent** (3)<br>
* **flat** (4)<br>
* **subscription** (5)<br>
```asn1
ParkingFeeType::= INTEGER { 
   free                    (0),
   freeThenTimeDependent   (1),
   freeThenFlat            (2),
   timeDependent           (3), 
   flat                    (4), 
   subscription            (5) 
}(0..7)
```