Commit 743a371e authored by Denis Filatov's avatar Denis Filatov
Browse files

VAM initial commit

parent fff13b1e
Loading
Loading
Loading
Loading

.gitmodules

0 → 100644
+6 −0
Original line number Original line Diff line number Diff line
[submodule "cdd"]
	path = cdd
	url = https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2.git
[submodule "cam"]
	path = cam
	url = https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2.git

LICENSE

0 → 100755
+23 −0
Original line number Original line Diff line number Diff line
Copyright 2020 ETSI

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, 
   this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, 
   this list of conditions and the following disclaimer in the documentation 
   and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors 
   may be used to endorse or promote products derived from this software without 
   specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
OF THE POSSIBILITY OF SUCH DAMAGE.
+14 −2
Original line number Original line Diff line number Diff line
# VAM TS 103 300-3
# ASN.1 module for VAM - ETSI TS 103 300-3


ASN.1 module for the ETSI TS 103 300-3 - (VAM) VRU awareness basic service
This repository contains VRU Awareness Basic Service (TS 103 300-3) – Specification of the VRU Awareness Message format.
 No newline at end of file

## License

The content of this repository and the files contained are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.

## Dependencies

To compile the VAM, the following dependencies are required:

- ETSI EN 302 637-2 v1.4.1 - [Cooperative Awareness Service](https://www.etsi.org/deliver/etsi_en/302600_302699/30263702/01.04.01_60/en_30263702v010401p.pdf)
- ETSI TS 102 894-2 v1.3.1 - [Common Data Dictionary](https://www.etsi.org/deliver/etsi_ts/102800_102899/10289402/01.03.01_60/ts_10289402v010301p.pdf)
+102 −0
Original line number Original line Diff line number Diff line
VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5)
    wg1(1) ts(103300) vam(3) version(1)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

    IMPORTS
	ItsPduHeader, ReferencePosition, AccelerationControl,
	    Heading, HeadingValue, Speed, StationID, VehicleLength, VehicleWidth,
	    PathHistory, ProtectedCommunicationZone, PtActivation,
	    Latitude, Longitude, ProtectedCommunicationZonesRSU
	FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0)
	    itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)}

    GenerationDeltaTime
    FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0)
        itsDomain(5) wg1(1) en(302637) cam(2) version(2)}

    ;

    VAM ::= SEQUENCE {
        header ItsPduHeaderVam,
        vam    VruAwareness
    }

    -- contains StationId
    -- StationId should change when certificate changes, or when VRU
    -- enters or leaves a cluster (as leader or otherwise)
    ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS {
        ...,
        messageID(vam)
    })
  
    VruAwareness ::= SEQUENCE {
        generationDeltaTime  GenerationDeltaTime,
        vamParameters        VamParameters,
        vamExtensions        SEQUENCE (SIZE(0..MAX)) OF VamExtension
    }

    VamParameters ::= SEQUENCE {
        activeProfile      VruProfileId,
        physicalProperties VruPhysicalProperties,
        dyanmicProperties  VruDynamicProperties,
        ...
    }

    VruProfileId ::= ENUMERATED { 
        pedestrian(1), lowSpeedTwoWheel(2), fullSpeedTwoWheel(3), animal(4), ...
    }

    VruPhysicalProperties ::= CHOICE {
        singleVruPhysInfo   SingleVruPhysicalInfo,
        clusterPhysInfo     VruClusterPhysicalInfo,
        ...
    }

    SingleVruPhysicalInfo ::= SEQUENCE {
        referencePoint     ReferencePosition,
        orientation        Heading,
        clusterJoinInfo    ClusterJoinInfo OPTIONAL,
        clusterExitInfo    StationID OPTIONAL,
        ...
    }

    ClusterJoinInfo ::= SEQUENCE {
        clusterId       StationID,
        countdown       INTEGER(0..7),
        ...
    }

    VruClusterPhysicalInfo ::= SEQUENCE {
        referencePoint     ReferencePosition, -- middle of front edge of cluster
        heading            HeadingValue, -- direction of perp. line through referencePoint
        width              VruClusterSideLength, -- width (with referencePoint in the
                                                 -- middle) in units of 10 cm
        length             VruClusterSideLength, -- length (from referencePoint to rear of 
                                                 -- cluster) in units of 10 cm
        number             INTEGER(0..255), -- 0 means unknown
        ...
    }

    VruClusterSideLength ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62)

    -- none of these fields are OPTIONAL as each of the types below has an "unknown" value, which
    -- should be used if the value isn't provided.
    VruDynamicProperties ::= SEQUENCE {
        heading                  Heading,
        speed                    Speed,
        longitudinalAcceleration LongitudinalAcceleration,
        laterialAcceleration     LateralAcceleration,
        verticalAcceleration     VerticalAcceleration,
        yawRate                  YawRate,
        pastLocations            PathHistory,
        predictedLocations       PathHistory,
        ...
    }

    VamExtension ::= CHOICE {
        dummy        NULL,
        ...
    }

END
Original line number Original line Diff line number Diff line
Subproject commit cbe68d89e5be7ab58a0a7a26d2be5a7a52eb1f42
Loading