Commit d8958351 authored by puller's avatar puller
Browse files

Update with latest changes from merge target branch

parents 2fde28b0 bf06025e
Loading
Loading
Loading
Loading

.gitlab-ci.mk

0 → 100644
+42 −0
Original line number Diff line number Diff line
ASN1_SRC   :=  $(wildcard asn/*.asn asn/cam/*.asn asn/cdd/*.asn)

ASN1_SRC_VALIDATE := \
               iso/iso19091_2018.asn \
               iso/iso24534-3_1_2015.asn \
               iso/iso24534-3_2_2015.asn \
               iso/ISO14816_AVIAEINumberingAndDataStructures.asn

ASN1_PDU := CPM
ASN1_KNOWN := DATE

#ASN1CDIR    ?= $(USERPROFILE)/Work/asn1c-fillabs
ifneq (,$(ASN1CDIR))
  ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons
else
  ASN1C := asn1c
endif

.PHONY: validate doc build

validate: iso build

doc: docs
	python3 asn2md.py docs $(ASN1_SRC)

iso docs:
	mkdir -p $@

build: $(ASN1_SRC) $(ASN1_SRC_VALIDATE)
	$(ASN1C) -E -F -fcompound-names $(addprefix -fknown-extern-type=,$(ASN1_KNOWN)) $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null

iso/iso19091_2018.asn: 
	curl -o $@ 'https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn'

iso/iso24534-3_1_2015.asn:
	curl -o $@ 'https://standards.iso.org/iso/24534/-3/ISO%2024534-3%20ASN.1%20repository/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule_ForBallot.asn'

iso/iso24534-3_2_2015.asn:
	curl -o $@ 'https://standards.iso.org/iso/24534/-3/ISO%2024534-3%20ASN.1%20repository/ISO24534-3_ElectronicRegistrationIdentificationEfcVehicleDataModule_ForBallot.asn'

iso/ISO14816_AVIAEINumberingAndDataStructures.asn:
	curl -o $@ 'https://standards.iso.org/iso/14816/ISO14816%20ASN.1%20repository/ISO14816_AVIAEINumberingAndDataStructures.asn'
 No newline at end of file

.gitlab-ci.yml

0 → 100644
+32 −0
Original line number Diff line number Diff line
variables:
 GIT_SUBMODULE_STRATEGY: normal

image: danya25/asn1c:0.0.5

validate:
  stage: test
  script: make -f .gitlab-ci.mk validate
  cache:
    paths:
      - iso/*
  only:
    changes:
      - "asn/*.asn"

documentation:
  stage: deploy
  script:
    - curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=v1.1.1"
    - make -f .gitlab-ci.mk doc
    - >
      if [ -z "$(git status --untracked-files=no --porcelain)" ]; then
        echo "No changes found";
      else 
        git add docs/*.md &&
        git commit -m "Documentation update" &&
        git remote rm origin && git remote add origin https://oauth2:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git &&
        git push origin HEAD:$CI_COMMIT_REF_NAME;
      fi
  only:
    changes:
      - "asn/*.asn"
+13 −13
Original line number Diff line number Diff line
-- @brief Specification of the Collective Perception Message ETSI TS 103 324
-- Latest version available at @url https://forge.etsi.org/rep/ITS/CPM_TS103324
--! @brief Specification of the Collective Perception Message ETSI TS 103 324
--! Latest version available at @url https://forge.etsi.org/rep/ITS/CPM_TS103324

CPM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) cpm (1) version1 (1)
@@ -25,11 +25,11 @@ FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain
MessageSegmentInfo
FROM CPM-CommonDataTypes-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}

-- @brief Import Originating Vehicle Container
--! @brief Import Originating Vehicle Container
OriginatingVehicleContainer, OriginatingRSUContainer
FROM CPM-OriginatingStationData-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationData (3) version1 (1)}

-- @brief Import Sensor Information Container
--! @brief Import Sensor Information Container
SensorInformationContainer
FROM CPM-SensorInformation-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformation (4) version1 (1)}

@@ -39,7 +39,7 @@ FROM CPM-PerceivedObject-Descriptions {itu-t (0) identified-organization (4) ets
FreeSpaceAddendumContainer
FROM CPM-FreeSpaceAddendum-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) freeSpaceAddendum (6) version1 (1)};

-- Information Object Class Definitions
--! Information Object Class Definitions
CPM-STATIONDATA-ID-AND-TYPE ::= CLASS {
    &id     CpmStationDataId UNIQUE,
    &Type
@@ -77,17 +77,17 @@ PerceptionData CPM-CONTAINER-ID-AND-TYPE ::= {
    ...
}

-- ID Assignments for Information Object Classes
-- Assignment for Originating Station Container
--! ID Assignments for Information Object Classes
--! Assignment for Originating Station Container
originatingStationVehicleContainer CpmStationDataId ::= 1
originatingStationRSUContainer CpmStationDataId ::= 2

-- Assignment for Perception Data Container
--! Assignment for Perception Data Container
sensorInformationCpmContainer CpmContainerId ::= 1
perceivedObjectCpmContainer CpmContainerId ::= 2
freeSpaceAdddendumCpmContainer CpmContainerId ::= 3

-- Collective Perception Message
--! Collective Perception Message

/** @brief Collective Perception Message Root
This DF includes DEs for the CPM protocolVersion, the CP message type identifier _messageID_ and
@@ -117,16 +117,16 @@ CollectivePerceptionMessage ::= SEQUENCE {
The sequence of mandatory and optional containers. Other containers may be added in the future.
*/
CpmParameters ::= SEQUENCE {
    /** managementContainer
    /** @brief managementContainer
    The managementContainer comprises basic information about the originating ITS-S, which are
    not specific to vehicles or RSUs.
    */
    managementContainer     CpmManagementContainer,
    /** stationDataContainer
    /** @brief stationDataContainer
    The stationDataContainer comprises ITS-S type specific information about the sending station.
    */
    stationDataContainer    CpmStationDataContainer {{OriginatingStationData}} OPTIONAL,
    /** perceptionData
    /** @brief perceptionData
    The perceptionData comprises different container types for describing the sensory properties
    of the transmitting ITS-S, its detected objects and free space estimates.
    */
@@ -134,7 +134,7 @@ CpmParameters ::= SEQUENCE {
    ...
}

/** CPM Management Container
/** @brief CPM Management Container
The managementContainer comprises basic information about the originating ITS-S, which are not
specific to vehicles or RSUs.
*/
+77 −77
Original line number Diff line number Diff line
@@ -376,10 +376,10 @@ Scaled by 100.
@unit: None
*/
CorrelationRowValue ::= INTEGER {
    full-negative-correlation    (-100),     -- Full negative correlation
    no-correlation               (0),        -- If not correlated or unavailable
    full-negative-correlation    (-100),     --< Full negative correlation
    no-correlation               (0),        --< If not correlated or unavailable
    point-one                    (10),
    full-positive-correlation    (100)       -- Full positive correlation
    full-positive-correlation    (100)       --< Full positive correlation
} (-100..100)

/** @brief Object Class Description
@@ -449,12 +449,12 @@ Describes the vertical offset from another point. This is specified in close res
to SAE J2735 _NodeOffsetPointXY_.
*/
NodeOffsetPointZ ::= CHOICE {
    node-Z1 Offset-B10, -- node is within 5.11m of last node
    node-Z2 Offset-B11, -- node is within 10.23m of last node
    node-Z3 Offset-B12, -- node is within 20.47m of last node
    node-Z4 Offset-B13, -- node is within 40.96m of last node
    node-Z5 Offset-B14, -- node is within 81.91m of last node
    node-Z6 Offset-B16  -- node is within 327.67m of last node
    node-Z1 Offset-B10, --< node is within 5.11m of last node
    node-Z2 Offset-B11, --< node is within 10.23m of last node
    node-Z3 Offset-B12, --< node is within 20.47m of last node
    node-Z4 Offset-B13, --< node is within 40.96m of last node
    node-Z5 Offset-B14, --< node is within 81.91m of last node
    node-Z6 Offset-B16  --< node is within 327.67m of last node
}

/** @brief Vehicle Subclass Type
@@ -462,25 +462,25 @@ Describes the subclass of a detected object for class vehicle.
@unit n/a
*/
VehicleSubclassType ::= INTEGER {
    unknown             (0),    -- the type of vehicle is unknown
    passengerCar        (1),    -- the detected object is a small passenger car as defined in
                                -- UNECE/TRANS/WP.29/78/Rev.4 class M1
    bus                 (2),    -- the detected object is a large passenger vehicle as defined
                                -- in UNECE/TRANS/WP.29/78/Rev.4 class M2, M3
    lightTruck          (3),    -- the detected object is a light goods vehicle as defined
                                -- in UNECE/TRANS/WP.29/78/Rev.4 class N1
    heavyTruck          (4),    -- the detected object is a heavy goods vehicle as defined
                                -- in UNECE/TRANS/WP.29/78/Rev.4 class N2, N3
    trailer             (5),    -- the detected object is an unpowered vehicle that is intended
                                -- to be towed by a powered vehicle as defined in
                                -- UNECE/TRANS/WP.29/78/Rev.4 class O
    specialVehicles     (6),    -- the detected object is a vehicle which has a special purpose
                                -- other than the above (e.g. moving road works vehicle)
    tram                (7),    -- the detected object is a vehicle running on tracks along
                                -- public streets
    emergencyVehicle    (8),   -- the detected object is a vehicle used in an emergency situation
                                -- such as an ambulance, police car or fire engine
    agricultural        (9)    -- the detected object is a vehicle used for agricultural purposes
    unknown             (0),    --< the type of vehicle is unknown
    passengerCar        (1),    --< the detected object is a small passenger car as defined in
                                --< UNECE/TRANS/WP.29/78/Rev.4 class M1
    bus                 (2),    --< the detected object is a large passenger vehicle as defined
                                --< in UNECE/TRANS/WP.29/78/Rev.4 class M2, M3
    lightTruck          (3),    --< the detected object is a light goods vehicle as defined
                                --< in UNECE/TRANS/WP.29/78/Rev.4 class N1
    heavyTruck          (4),    --< the detected object is a heavy goods vehicle as defined
                                --< in UNECE/TRANS/WP.29/78/Rev.4 class N2, N3
    trailer             (5),    --< the detected object is an unpowered vehicle that is intended
                                --< to be towed by a powered vehicle as defined in
                                --< UNECE/TRANS/WP.29/78/Rev.4 class O
    specialVehicles     (6),    --< the detected object is a vehicle which has a special purpose
                                --< other than the above (e.g. moving road works vehicle)
    tram                (7),    --< the detected object is a vehicle running on tracks along
                                --< public streets
    emergencyVehicle    (8),    --< the detected object is a vehicle used in an emergency situation
                                --< such as an ambulance, police car or fire engine
    agricultural        (9)     --< the detected object is a vehicle used for agricultural purposes
} (0..255)

/** @brief Other Subclass Type
@@ -497,12 +497,12 @@ Describes the confidence value for the type of a detected object.
@unit Percent
*/
ClassConfidence ::= INTEGER {
    unknown             (0),    -- in case the confidence value is unknown but the reported
                                -- classification is still valid.
    unknown             (0),    --< in case the confidence value is unknown but the reported
                                --< classification is still valid.
    onePercent          (1),
    oneHundredPercent   (100),
    unavailable         (101)   -- In case the class confidence value computation is not available
                                -- for this object. Indicates that the class assignment is invalid.
    unavailable         (101)   --< In case the class confidence value computation is not available
                                --< for this object. Indicates that the class assignment is invalid.
} (0..101)

/** @brief WGS 84 Angle Value
@@ -559,10 +559,10 @@ The required confidence level is defined by the corresponding standards applying
AngleConfidence ::= INTEGER {
    zeroPointOneDegree  (1),
    oneDegree           (10),
    outOfRange          (126),  -- if the  accuracy is out of range, i.e. greater than
                                -- 12,5 degrees. A corresponding reported angle value shall be
                                -- considered invalid and cannot be trusted.
    unavailable         (127)   -- if the accuracy information is not available
    outOfRange          (126),  --< if the  accuracy is out of range, i.e. greater than
                                --< 12,5 degrees. A corresponding reported angle value shall be
                                --< considered invalid and cannot be trusted.
    unavailable         (127)   --< if the accuracy information is not available
} (1..127)

/** @brief Angular Speed Confidence
@@ -572,15 +572,15 @@ For correlation computation, maximum interval levels shall be assumed.
@ n/a
*/
AngularSpeedConfidence ::= ENUMERATED {
    degSec-000-01 (0),  -- if the accuracy is equal to or less than 0,01 degree/second
    degSec-000-05 (1),  -- 1 if the accuracy is equal to or less than 0,05 degrees/second
    degSec-000-10 (2),  -- if the accuracy is equal to or less than 0,1 degree/second
    degSec-001-00 (3),  -- 3 if the accuracy is equal to or less than 1 degree/second
    degSec-005-00 (4),  -- if the accuracy is equal to or less than 5 degrees/second
    degSec-010-00 (5),  -- if the accuracy is equal to or less than 10 degrees/second
    degSec-100-00 (6),  -- if the accuracy is equal to or less than 100 degrees/second
    outOfRange (7),     -- if the accuracy is out of range, i.e. greater than 100 degrees/second
    unavailable (8)     -- if the accuracy information is unavailable
    degSec-000-01 (0),  --< if the accuracy is equal to or less than 0,01 degree/second
    degSec-000-05 (1),  --< 1 if the accuracy is equal to or less than 0,05 degrees/second
    degSec-000-10 (2),  --< if the accuracy is equal to or less than 0,1 degree/second
    degSec-001-00 (3),  --< 3 if the accuracy is equal to or less than 1 degree/second
    degSec-005-00 (4),  --< if the accuracy is equal to or less than 5 degrees/second
    degSec-010-00 (5),  --< if the accuracy is equal to or less than 10 degrees/second
    degSec-100-00 (6),  --< if the accuracy is equal to or less than 100 degrees/second
    outOfRange (7),     --< if the accuracy is out of range, i.e. greater than 100 degrees/second
    unavailable (8)     --< if the accuracy information is unavailable
}

/** @brief Angular Acceleration Confidence
@@ -590,15 +590,15 @@ For correlation computation, maximum interval levels shall be assumed.
@ n/a
*/
AngularAccelerationConfidence ::= ENUMERATED {
    degSecSquared-000-01 (0),  -- if the accuracy is equal to or less than 0,01 degree/second^2
    degSecSquared-000-05 (1),  -- 1 if the accuracy is equal to or less than 0,05 degrees/second^2
    degSecSquared-000-10 (2),  -- if the accuracy is equal to or less than 0,1 degree/second^2
    degSecSquared-001-00 (3),  -- 3 if the accuracy is equal to or less than 1 degree/second^2
    degSecSquared-005-00 (4),  -- if the accuracy is equal to or less than 5 degrees/second^2
    degSecSquared-010-00 (5),  -- if the accuracy is equal to or less than 10 degrees/second^2
    degSecSquared-100-00 (6),  -- if the accuracy is equal to or less than 100 degrees/second^2
    outOfRange (7),     -- if the accuracy is out of range, i.e. greater than 100 degrees/second^2
    unavailable (8)     -- if the accuracy information is unavailable
    degSecSquared-000-01 (0),  --< if the accuracy is equal to or less than 0,01 degree/second^2
    degSecSquared-000-05 (1),  --< 1 if the accuracy is equal to or less than 0,05 degrees/second^2
    degSecSquared-000-10 (2),  --< if the accuracy is equal to or less than 0,1 degree/second^2
    degSecSquared-001-00 (3),  --< 3 if the accuracy is equal to or less than 1 degree/second^2
    degSecSquared-005-00 (4),  --< if the accuracy is equal to or less than 5 degrees/second^2
    degSecSquared-010-00 (5),  --< if the accuracy is equal to or less than 10 degrees/second^2
    degSecSquared-100-00 (6),  --< if the accuracy is equal to or less than 100 degrees/second^2
    outOfRange (7),     --< if the accuracy is out of range, i.e. greater than 100 degrees/second^2
    unavailable (8)     --< if the accuracy information is unavailable
}


@@ -628,8 +628,8 @@ Absolute accuracy of measurement to a confidence level of 95%.
DistanceConfidence ::= INTEGER {
    zeroPointZeroOneMeter   (1),
    oneMeter                (100),
    outOfRange              (4094),  -- shall be set if the accuracy is out of range
    unavailable             (4095)   -- shall be set if the accuracy data is unavailable
    outOfRange              (4094),  --< shall be set if the accuracy is out of range
    unavailable             (4095)   --< shall be set if the accuracy data is unavailable
} (0..4095)

/** @brief Dynamic Status
@@ -639,11 +639,11 @@ position.
@unit n/a
*/
DynamicStatus ::= INTEGER {
    dynamic             (0),    -- the object is moving
    hasBeenDynamic      (1),    -- indicates whether an object has been dynamic before, e.g., a car
                                -- stopping at a traffic light
    static              (2)     -- shall be used in case an object is identified to be not moving
                                -- throughout any previous observation
    dynamic             (0),    --< the object is moving
    hasBeenDynamic      (1),    --< indicates whether an object has been dynamic before, e.g., a car
                                --< stopping at a traffic light
    static              (2)     --< shall be used in case an object is identified to be not moving
                                --< throughout any previous observation
} (0..2)

/** @brief Hitch Point Offset
@@ -665,8 +665,8 @@ is not overhanging to the front with respect to the trailer reference point.
@unit 0,1 m
*/
FrontOverhang ::= INTEGER {
    noOverhang          (0),    -- trailer is not overhanging to the front with respect to the
                                -- trailer reference point
    noOverhang          (0),    --< trailer is not overhanging to the front with respect to the
                                --< trailer reference point
    zeroPointOneMeter   (1),
    oneMeter            (10)
} (0..50)
@@ -676,10 +676,10 @@ Confidence indicating that an area is not occupied by a traffic participant or o
@unit n/a
*/
FreeSpaceConfidence ::= INTEGER {
    unknown             (0),    -- if the free space confidence is unknown for the described area
    unknown             (0),    --< if the free space confidence is unknown for the described area
    onePercent          (1),
    oneHundredPercent   (100),
    unavailable         (101)   -- if the confidence could not be computed and does not apply.
    unavailable         (101)   --< if the confidence could not be computed and does not apply.
} (0..101)

/** @brief Longitudinal Lane Position Value
@@ -698,8 +698,8 @@ Absolute accuracy of longitudinal lane position measurement to a confidence leve
LongitudinalLanePositionConfidence ::= INTEGER {
    zeroPointZeroOneMeter   (1),
    oneMeter                (100),
    outOfRange              (101),  -- shall be set if the accuracy is out of range
    unavailable             (102)   -- shall be set if the accuracy data is unavailable
    outOfRange              (101),  --< shall be set if the accuracy is out of range
    unavailable             (102)   --< shall be set if the accuracy data is unavailable
} (0..102)

/** @brief Object Age
@@ -709,7 +709,7 @@ disseminating station.
*/
ObjectAge ::= INTEGER {
    oneMiliSec              (1),
    moreThan1Point5Second   (1500)  -- indicates that the object has been observed for more than 1.5s.
    moreThan1Point5Second   (1500)  --< indicates that the object has been observed for more than 1.5s.
} (0..1500)

/** @brief Object Confidence
@@ -719,9 +719,9 @@ on the computation.
@unit n/a
*/
ObjectConfidence ::= INTEGER {
    noConfidence        (0),    -- No confidence in detected object, e.g. for "ghost"-objects or
                                -- if confidence could not be computed
    fullConfidence      (15)    -- Full confidence in detected object
    noConfidence        (0),    --< No confidence in detected object, e.g. for "ghost"-objects or
                                --< if confidence could not be computed
    fullConfidence      (15)    --< Full confidence in detected object
} (0..15)

/** @brief Object Dimension Value
@@ -847,10 +847,10 @@ SensorType ::= INTEGER {
    nightvision     (5),
    ultrasonic      (6),
    pmd             (7),
    fusion          (8),    -- object information provided from sensor data fusion system
    fusion          (8),    --< object information provided from sensor data fusion system
    inductionloop   (9),
    sphericalCamera (10),
    itssaggregation (11)    -- object information gathered from other received ITS messages
    itssaggregation (11)    --< object information gathered from other received ITS messages
} (0..15)

/** @brief Segment Count
@@ -865,11 +865,11 @@ Value of a speed component.
@unit 0,01 m/s
*/
SpeedValueExtended ::= INTEGER {
    negativeSpeedMaximum   (-16383), -- shall be set for values equal to or smaller than -163,83 m/s
    negativeSpeedMaximum   (-16383), --< shall be set for values equal to or smaller than -163,83 m/s
    standstill             (0),
    oneCentimeterPerSec    (1),
    speedMaximum           (16382), -- shall be set for values equal to or greater than 163,82 m/s
    unavailable            (16383)  -- shall be set if information is not available
    speedMaximum           (16382), --< shall be set for values equal to or greater than 163,82 m/s
    unavailable            (16383)  --< shall be set if information is not available
} (-16383..16383)

/** @brief Acceleration Value
@@ -879,7 +879,7 @@ Value of an acceleration component.
AccelerationValue ::= INTEGER {
    pointOneMeterPerSecSquared          (1),
    minusPointOneMeterPerSecSquared (-1),
    unavailable                                     (161)  -- shall be set if information is not available
    unavailable                                     (161)  --< shall be set if information is not available
} (-160 .. 161)

/** @brief Time of Measurement
+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ VehicleSensor ::= SEQUENCE {
    ...
}

-- @brief Vehicle Sensor Property List
--! @brief Vehicle Sensor Property List
VehicleSensorPropertyList ::= SEQUENCE SIZE(1..10) OF VehicleSensorProperties

/** @brief Vehicle Sensor Properties
Loading