From c3ee9e9ced6569ea24c4eb1c893f9685aa7e0f05 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 15:38:29 +0200 Subject: [PATCH 01/85] CI script --- .gitlab-ci.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2dfb8a8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,15 @@ +# This file is a template, and might need editing before it works on your project. +# Full project: https://gitlab.com/pages/doxygen +image: alpine +variables: + GIT_STRATEGY: clone + GIT_SUBMODULE_STRATEGY: normal + +documentation: + script: mkdir -p docs && python asn2md.py docs `find . -iname '*.asn'` + only: + changes: + - *.asn + artifacts: + paths: + - docs -- GitLab From cc10ea97a12d9c4f300722ab9c8a8aa9c8088099 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 15:44:29 +0200 Subject: [PATCH 02/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2dfb8a8..301dbde 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,15 +1,12 @@ # This file is a template, and might need editing before it works on your project. # Full project: https://gitlab.com/pages/doxygen image: alpine -variables: - GIT_STRATEGY: clone - GIT_SUBMODULE_STRATEGY: normal documentation: script: mkdir -p docs && python asn2md.py docs `find . -iname '*.asn'` only: changes: - - *.asn + - ./*.asn artifacts: paths: - docs -- GitLab From ec54acf5c0a7dc1dce899656e7e4a3418ba925b8 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 15:49:06 +0200 Subject: [PATCH 03/85] update documentation --- IMZM-PDU-Descriptions.asn | 176 ++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 101 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 6e99718..0350b3a 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,5 +1,5 @@ ---! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 ---! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 +--! Specification of the Interference Management Zone Message ETSI TS 103 724
+--! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) @@ -10,168 +10,143 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS ---! @brief Include ETSI TS 102 894-2 ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn +--! Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } ---! brief Include ETSI EN 302 637-2 ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn +--! Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) } ---! @brief Include ETSI TS 103 300-3 ---! This is temporary ---! Import from VAM-Temp-Imports will be changed to CDD ETSI TS 102 894-2 Release 2 when available ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +--! Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +--! *This is temporary* +--! *Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) } ; ---! @defgroup IMZM Interference Management Zone Message ---! @{ +--! _Interference Management Zone Message Root_ ---! @brief DF- Interference Management Zone Message Root ---! This DF includes DEs for the IMZM protocolVersion, the IMZ message type identifier _messageID_ ---! and the station identifier _stationID_ of the originating ITS-S. +--! This DF includes DEs for the IMZM _protocolVersion_, the IMZ message type identifier _messageID_ +--! and the station identifier _stationID_ of the originating ITS-S. IMZM ::= SEQUENCE { - --! @details header - --! The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving - --! ITS-S. For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. - --! The DE _messageID_ shall be harmonized with other V2X message identifier definitions. - --! For IMZM, the DE messageID shall be set to @todo imzm(15). +--! * The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving ITS-S. +--! For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. +--! * The DE _messageID_ shall be harmonized with other V2X message identifier definitions. +--! For IMZM, the DE messageID shall be set to @todo imzm(15). header ItsPduHeader, imzm InterferenceManagementZoneMessage } ---! @brief DF- Interference Management Zone Message ---! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable ---! containers of type _BasicContainer_ and _ImzmContainer_. +--! This is the actual @ref IMZM Payload. It shall include the time stamp of the @ref IMZM and the applicable +--! containers of type @ref BasicContainer and @ref ImzmContainer. InterferenceManagementZoneMessage ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions imzmParameters ImzmParameters } ---! @brief DF- IMZM Parameters ---! The sequence of containers in the IMZM. Other containers may be added in the future. +--! The sequence of containers in the @ref IMZM. Other containers may be added in the future. + ImzmParameters ::= SEQUENCE { - --! @details basicContainer --! imported from CAM-PDU-Descriptions basicContainer BasicContainer, - --! @details imzmContainer - --! container specific to the IMZM + --! container specific to the @ref IMZM imzmContainer ImzmContainer, ... } ---! @brief DF- IMZM Container --! The IMZM container includes a sequence of up to 16 interference management communication zones. --! For each interference management communication zones, it contains a sequence of interference --! management zones per channel together with their characteristics. ImzmContainer ::= SEQUENCE { - --! @details interferenceManagementZones - --! mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 + --! Mapped to the DF @ref ProtectedCommunicationZone in ETSI TS 102 894-2 interferenceManagementZones InterferenceManagementZones, ... } ---! @brief DF- InterferenceManagementZones --! A list of up to 16 interference management communication zones. +--! --! EXAMPLE: An interference management communication zone may be defined around a ---! CEN DSRC road side equipment or an urban rail operational area. +--! CEN DSRC road side equipment or an urban rail operational area. +--! --! @category: Infrastructure information, Communication information InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone ---! @brief DF- InterferenceManagementZone ---! describes a zone of interferenceManagement inside which the ITS communication should +--! Describes a zone of interferenceManagement inside which the ITS communication should --! be restricted. +--! --! @category: Infrastructure information, Communication information InterferenceManagementZone ::= SEQUENCE { zoneDefinition ZoneDefinition, interferenceManagementInfo InterferenceManagementInfo } ---! @brief DF- ZoneDefinition ---! describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! --! @category: Infrastructure information, Communication information + ZoneDefinition::= SEQUENCE{ - --! @details interferenceManagementZoneLatitude - --! Latitude of the centre point of the interference management zone. + --! Latitude of the centre point of the interference management zone. interferenceManagementZoneLatitude Latitude, --! from ITS-Container - --! @details interferenceManagementZoneLongitude - --! Longitude of the centre point of the interference management zone. + --! Longitude of the centre point of the interference management zone. interferenceManagementZoneLongitude Longitude, --! from ITS-Container - --! @details interferenceManagementZoneRadius - --! Radius of the interference management zone in metres. - --! This DE is present if the data is available + --! Radius of the interference management zone in metres. interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - --! @details interferenceManagementZoneID - --! Identification of the interference management zone. - --! This DE is present if the data is available. + --! Identification of the interference management zone. interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container - --! @details interferenceManagementZoneShape - --! Shape of the interference management zone. - --! This DF is present if the data is available. + --! Shape of the interference management zone. interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, ... } ---! @brief DF- Interference Management Info +--! _Interference Management Info_ --! A list of up to 16 definitions of which interference management may be applied in the zone, ---! per affected frequency channels. ---! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated ---! by the value of interferenceManagementMitigationType set to unavailable. +--! per affected frequency channels. +--! NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated +--! by the value of interferenceManagementMitigationType set to unavailable. --! @category: Infrastructure information, Communication information InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ---! @brief DF- InterferenceManagementInfoPerChannel ---! A break up of the interference management information per affected frequency channels. +--! _InterferenceManagementInfoPerChannel_ +--! A break up of the interference management information per affected frequency channels. +--! --! @category: Infrastructure information, Communication information InterferenceManagementInfoPerChannel ::= SEQUENCE { - --! @details interferenceManagementChannel - --! Characteritics of the frequency channel for which the zone - --! should be applied interference management + --! Characteritics of the frequency channel for which the zone should be applied interference management interferenceManagementChannel InterferenceManagementChannel, - --! @details interferenceManagementZoneType - --! Type of the interference management zone. + --! Type of the interference management zone. interferenceManagementZoneType InterferenceManagementZoneType, - --! @details interferenceManagementMitigationType - --! Type of the mitigation to be used in the interference management zone. + --! Type of the mitigation to be used in the interference management zone. interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - --! @details expiryTime - --! Time at which the validity of the interference management communication zone will expire. - --! This DE is present when the interference management is temporarily valid + --! Time at which the validity of the interference management communication zone will expire.
+ --! _This DE is present when the interference management is temporarily valid._ expiryTime TimestampIts OPTIONAL, --! from ITS-Container ... } ---! @brief DF- InterferenceManagementChannel ---! indicates which shared frequency channel should be applied interference management in the zone. +--! Indicates which shared frequency channel should be applied interference management in the zone. +--! --! @category: Communication information InterferenceManagementChannel ::= SEQUENCE { - --! @details centre frequency of the channel - --! @unit: 10exp+2 Hz (where exp is exponent) +--! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) centreFrequency INTEGER (1 .. 99999), - --! @details width of the channel - --! @unit: 10exp Hz (where exp is exponent) +--! Width of the channel frequence band in 10exp Hz (where exp is exponent) channelWidth INTEGER (0 .. 9999), - --! @details exponent of the power of 10 - --! @unit: MHz +--! Exponent of the power of 10 in Mhz exponent INTEGER (0 .. 15) } ---! @brief DE- InterferenceManagementZoneType ---! DE that defines the type of an interference management zone, so that an ITS-S can +--! This DE defines the type of an interference management zone, so that an ITS-S can --! assert the actions to do while passing by such zone (e.g. reduce the transmit ---! power in case of a DSRC tolling station). ---! @unit: N/A +--! power in case of a DSRC tolling station).
--! @category: Communication information + InterferenceManagementZoneType ::= ENUMERATED { permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 @@ -182,44 +157,40 @@ InterferenceManagementZoneType ::= ENUMERATED { ... } ---! @brief DF- Mitigation type in the interference management zone +--! This DE defines the mitigation type in the interference management zone. +--! --! Information and commands defining the required mitigation type the --! receiving ITS-S has to use in the defined interference management zone. --! It indicates the type of mitigation and the parameters to be used to protect the --! potential victim in the interference management zone per channel access technology class. --! @category: Communication information InterferenceManagementMitigationType ::= SEQUENCE { - --! @details Default value to be used when data is not available. + --! Default value to be used when data is not available unavailable BOOLEAN OPTIONAL, mitigationForTechnologies MitigationForTechnologies } ---! @brief DF- Mitigation type container for the different channel access technology classes +--! This DE defines the mitigation type container for the different channel access technology classes.
--! Class of parameters for the relevant channel access technology classes, --! as specified in ETSI TS 103 724, clause 7. --! @category: Communication information MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass ---! @brief DF- Mitigation type container per channel access technology class +--! This DE defines the mitigation type container per channel access technology class
--! Class of parameters for the specific technology indicated in the container. --! All parameters are optional, as they may not apply to some of the technologies or --! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. --! @category: Communication information MitigationPerTechnologyClass ::= SEQUENCE { - --! @details channel access technology in which this mitigation is applied. - --! @unit: N/A + --! Channel access technology in which this mitigation is applied. accessTechnologyClass AccessTechnologyClass, - --! @details duty cycle limit. - --! @unit: 0.01% steps + --! Duty cycle limit in 0.01% steps lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - --! @details power reduction. - --! @unit: dB + --! Power reduction in dB powerReduction INTEGER (0 .. 30) OPTIONAL, - --! @details Idle time limit as defined in ETSI TS 103 175. - --! @unit: ms + --! Idle time limit in ms as defined in ETSI TS 103 175. dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - --! @details Transmission duration limit, as defined in ETSI EN 302 571. - --! @unit: ms + --! Transmission duration limit in ms, as defined in ETSI EN 302 571. dmcTonLimit INTEGER (0 .. 20) OPTIONAL, ... } @@ -228,10 +199,14 @@ MitigationPerTechnologyClass ::= SEQUENCE { --! Access technology to which the mitigation type applies. --! @category: Communication information AccessTechnologyClass ::= ENUMERATED { - unavailable(0), --! default value. - itsg5Class(1), --! ITS-G5 access technology class. - ltev2xClass(2), --! LTE-V2X access technology class. - nrv2xClass(3), --! NR-V2X access technology class. + --! default value. + unavailable(0), + --! ITS-G5 access technology class. + itsg5Class(1), + --! LTE-V2X access technology class. + ltev2xClass(2), + --! NR-V2X access technology class. + nrv2xClass(3), ... } @@ -239,10 +214,10 @@ AccessTechnologyClass ::= ENUMERATED { --! Bounding box of an interference management zone --! @category: GeoReference information InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, --! imported from VAM-Temp-Imports - circle AreaCircular, --! imported from VAM-Temp-Imports - polygon AreaPolygon, --! imported from VAM-Temp-Imports - ellipse AreaEllipse, --! could not be imported from another specification yet + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, --! could not be imported from another specification yet ... } @@ -266,5 +241,4 @@ AreaEllipse ::= SEQUENCE { --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. semiMajorRangeOrientation WGS84AngleValue } ---! @} END -- GitLab From fa1269c15601dfbca735ba9f28d4a2f4d71c847c Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 15:59:07 +0200 Subject: [PATCH 04/85] temporary CI script --- asn2md.py | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100755 asn2md.py diff --git a/asn2md.py b/asn2md.py new file mode 100755 index 0000000..0692b55 --- /dev/null +++ b/asn2md.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# asn1-doxygen-filter is an extension to the Doxygen utility for creating +# documents from ASN.1 files +# +# Copyright 2017 OnBoard Security, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUTNOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import argparse # parse arguments +import os.path # getting extension from file +import sys # output and stuff +import re # for regular expressions + +## extract doxygen-tag namespace +RE_MODULE = re.compile( + '^(\w[\w-]*)[\s{](?:.|\n)*DEFINITIONS(?:.|\n)*::=\s*BEGIN' + , re.IGNORECASE | re.VERBOSE | re.DOTALL | re.MULTILINE) +RE_EXPORTS = re.compile( + '^\s*EXPORTS .*?;' + , re.VERBOSE | re.DOTALL | re.MULTILINE) + +RE_IMPORTS = re.compile( + '^\s*IMPORTS .*?;' + , re.VERBOSE | re.DOTALL | re.MULTILINE) + +RE_END = re.compile( + '^\s*END\s*$' + , re.VERBOSE | re.MULTILINE) + +RE_DOXY_COMMENTS = re.compile( + '^\s*--[-#!*]\s?' + , re.VERBOSE | re.MULTILINE) + +RE_DOXY_C_COMMENTS = re.compile( + '^\s*/\*\*\s(.*?)\*/' + , re.VERBOSE | re.MULTILINE) + +RE_COMMENT = re.compile( + '--.*?(?:--|$)' + , re.VERBOSE | re.MULTILINE) + +RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w\s]+(?:{(.*?)})?.*?)\n\s*\n' + , re.VERBOSE | re.MULTILINE | re.DOTALL) + +extTypes = {} + +def indentString(s, indent): + lines = s.splitlines() + s = '' + for c in lines: + s += ''.ljust(indent, ' ') + c + '\n' + return s + +def parseText(content, indent=None): + c = RE_DOXY_COMMENTS.sub('', content) + if c is not None: + content = c + c = RE_DOXY_C_COMMENTS.sub(r'\g<1>', content) + if c is not None: + content = c + c = RE_COMMENT.sub('', content) + if c is not None: + content = c + if indent is not None: + content = indentString(content, indent) + def repl_ref(m): + return '[**{0}**]({1}#{0})'.format(m[1], extTypes.get(m[1],'')) + c = re.sub(r'@ref\s+([\w-]+)', repl_ref, content, 0, re.VERBOSE | re.MULTILINE) + if c is not None: + content = c + return content +cpos=0 +def parseModule(mname, content): + global cpos + cpos = 0 + def repl_import(m): + global cpos + cpos = m.start() + ret = '## Imports:\n' + pos = 0 + if m[1] is not None: + s = m[1] + for fm in re.finditer(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*})?', s, re.VERBOSE | re.MULTILINE): + imName = fm[2] + for im in re.finditer(r'[^,\s]+', fm[1], 0): + extTypes[im[0]] = imName+'.md' + ret += ' * **{}** *{}*
\n'.format(imName, re.sub(r'\s+', ' ', fm[3] or '', 0, 0)) + ret += parseText(s[pos:fm.start()], 3)+'\n' + pos = fm.end() + ret += parseText(s[pos:]) + cpos += len(ret) + return ret + + c = re.sub(r'^\s*IMPORTS\s*(.*?);', repl_import, content, 1, re.VERBOSE | re.DOTALL | re.MULTILINE) + if c is not None: + content = c + + def repl_exports(m): + global cpos + if cpos < m.start(): + cpos = m.start() + return '' + c = re.sub(r'^\s*EXPORTS.*?;', repl_exports, content, 1, re.VERBOSE | re.DOTALL | re.MULTILINE) + if c is not None: + content = c + + # parse types + def repl_type (m, doc): + ret = '## {0}\n\n'.format(m[2]) + if doc is not None: + ret += parseText(doc) + '\n\n' + # parse fields and get out fields descriptions + if m[3] is not None: + ret += 'Fields:\n' + pos = 0 + for fm in re.finditer('^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', m[3], re.VERBOSE | re.MULTILINE | re.DOTALL): + if fm[2] is not None: + t = fm[2].strip() + f = fm[1].strip() + if re.match('^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT', t, re.VERBOSE|re.MULTILINE) is not None: + ret += '* {0} **{1}** {2}
\n'.format(f, t, fm[3] or '') + else: + ret += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), fm[3] or '') + ret += parseText(fm.string[pos:fm.start()], 3) + pos = fm.end() + + return ret + '```asn1\n' + re.sub(r'^\s*--.*\n', '', m[1].strip(), 0, re.MULTILINE) +'\n```\n\n' + ret = content[:cpos] + pos = 0 + for m in RE_TYPE.finditer(content[cpos:]): + ret += repl_type (m, m.string[pos:m.start()]) + pos = m.end() + return ret + + +def parseAsn(outDir, content) : + # iterate modules in the file + pos= 0 + RE_MODULE=re.compile(r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) + cnt = 0 + for m in RE_MODULE.finditer(content): + ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m[1], re.sub(r'\s+', ' ', m[2])) + ret += parseText(content[pos:m.start()]) + '\n' + if m[3] is not None: + ret += parseModule(m[1], m[3]) + ret += '\n\n' + open(outDir + '/' + m[1] + '.md', "w").write(ret) + pos = m.end() + return cnt + +def main(): + argc = len(sys.argv) + if argc < 3: + sys.stderr.write("Usage: {} [ASN.1 files]\n".format(sys.argv[0])) + exit(1) + outDir = sys.argv[1] + cnt = 0 + for a in sys.argv[2:]: + try: + content = open(a).read() + cnt += parseAsn(outDir, content) + except IOError as e: + sys.stderr.write(e[1]+"\n") + print("{} modules porcessed\n".format(cnt)) + +if __name__ == '__main__': + main() -- GitLab From 1f5e0157a90d0bf6f51c7fca23e7b6444aed6f13 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 20:59:27 +0200 Subject: [PATCH 05/85] temp doc files --- docs/CAM-PDU-Descriptions.md | 305 +++++++ docs/IMZM-PDU-Descriptions.md | 338 ++++++++ docs/ITS-Container.md | 1493 +++++++++++++++++++++++++++++++++ docs/VAM-Temp-Imports.md | 183 ++++ 4 files changed, 2319 insertions(+) create mode 100755 docs/CAM-PDU-Descriptions.md create mode 100755 docs/IMZM-PDU-Descriptions.md create mode 100755 docs/ITS-Container.md create mode 100755 docs/VAM-Temp-Imports.md diff --git a/docs/CAM-PDU-Descriptions.md b/docs/CAM-PDU-Descriptions.md new file mode 100755 index 0000000..e3125c1 --- /dev/null +++ b/docs/CAM-PDU-Descriptions.md @@ -0,0 +1,305 @@ +# ASN.1 module CAM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }_ + +## Imports: + * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ +## CAM + + + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+* cam [**CoopAwareness**](#CoopAwareness)
+```asn1 +CAM ::= SEQUENCE { + header ItsPduHeader, + cam CoopAwareness +} +``` + +## CoopAwareness + + + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* camParameters [**CamParameters**](#CamParameters)
+```asn1 +CoopAwareness ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + camParameters CamParameters +} +``` + +## CamParameters + + + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+* highFrequencyContainer [**HighFrequencyContainer**](#HighFrequencyContainer)
+* lowFrequencyContainer [**LowFrequencyContainer**](#LowFrequencyContainer) OPTIONAL
+* specialVehicleContainer [**SpecialVehicleContainer**](#SpecialVehicleContainer) OPTIONAL
+```asn1 +CamParameters ::= SEQUENCE { + basicContainer BasicContainer, + highFrequencyContainer HighFrequencyContainer, + lowFrequencyContainer LowFrequencyContainer OPTIONAL, + specialVehicleContainer SpecialVehicleContainer OPTIONAL, + ... +} +``` + +## HighFrequencyContainer + + + +Fields: +* basicVehicleContainerHighFrequency [**BasicVehicleContainerHighFrequency**](#BasicVehicleContainerHighFrequency)
+* rsuContainerHighFrequency [**RSUContainerHighFrequency**](#RSUContainerHighFrequency)
+```asn1 +HighFrequencyContainer ::= CHOICE { + basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, + rsuContainerHighFrequency RSUContainerHighFrequency, + ... +} +``` + +## LowFrequencyContainer + + + +Fields: +* basicVehicleContainerLowFrequency [**BasicVehicleContainerLowFrequency**](#BasicVehicleContainerLowFrequency)
+```asn1 +LowFrequencyContainer ::= CHOICE { + basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, + ... +} +``` + +## SpecialVehicleContainer + + + +Fields: +* publicTransportContainer [**PublicTransportContainer**](#PublicTransportContainer)
+* specialTransportContainer [**SpecialTransportContainer**](#SpecialTransportContainer)
+* dangerousGoodsContainer [**DangerousGoodsContainer**](#DangerousGoodsContainer)
+* roadWorksContainerBasic [**RoadWorksContainerBasic**](#RoadWorksContainerBasic)
+* rescueContainer [**RescueContainer**](#RescueContainer)
+* emergencyContainer [**EmergencyContainer**](#EmergencyContainer)
+* safetyCarContainer [**SafetyCarContainer**](#SafetyCarContainer)
+```asn1 +SpecialVehicleContainer ::= CHOICE { + publicTransportContainer PublicTransportContainer, + specialTransportContainer SpecialTransportContainer, + dangerousGoodsContainer DangerousGoodsContainer, + roadWorksContainerBasic RoadWorksContainerBasic, + rescueContainer RescueContainer, + emergencyContainer EmergencyContainer, + safetyCarContainer SafetyCarContainer, + ... +} +``` + +## BasicContainer + + + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +BasicContainer ::= SEQUENCE { + stationType StationType, + referencePosition ReferencePosition, + ... +} +``` + +## BasicVehicleContainerHighFrequency + + + +Fields: +* heading [**Heading**](ITS-Container.md#Heading)
+* speed [**Speed**](ITS-Container.md#Speed)
+* driveDirection [**DriveDirection**](ITS-Container.md#DriveDirection)
+* vehicleLength [**VehicleLength**](ITS-Container.md#VehicleLength)
+* vehicleWidth [**VehicleWidth**](ITS-Container.md#VehicleWidth)
+* longitudinalAcceleration [**LongitudinalAcceleration**](ITS-Container.md#LongitudinalAcceleration)
+* curvature [**Curvature**](ITS-Container.md#Curvature)
+* curvatureCalculationMode [**CurvatureCalculationMode**](ITS-Container.md#CurvatureCalculationMode)
+* yawRate [**YawRate**](ITS-Container.md#YawRate)
+* accelerationControl [**AccelerationControl**](ITS-Container.md#AccelerationControl) OPTIONAL
+* lanePosition [**LanePosition**](ITS-Container.md#LanePosition) OPTIONAL
+* steeringWheelAngle [**SteeringWheelAngle**](ITS-Container.md#SteeringWheelAngle) OPTIONAL
+* lateralAcceleration [**LateralAcceleration**](ITS-Container.md#LateralAcceleration) OPTIONAL
+* verticalAcceleration [**VerticalAcceleration**](ITS-Container.md#VerticalAcceleration) OPTIONAL
+* performanceClass [**PerformanceClass**](ITS-Container.md#PerformanceClass) OPTIONAL
+* cenDsrcTollingZone [**CenDsrcTollingZone**](ITS-Container.md#CenDsrcTollingZone) OPTIONAL
+```asn1 +BasicVehicleContainerHighFrequency ::= SEQUENCE { + heading Heading, + speed Speed, + driveDirection DriveDirection, + vehicleLength VehicleLength, + vehicleWidth VehicleWidth, + longitudinalAcceleration LongitudinalAcceleration, + curvature Curvature, + curvatureCalculationMode CurvatureCalculationMode, + yawRate YawRate, + accelerationControl AccelerationControl OPTIONAL, + lanePosition LanePosition OPTIONAL, + steeringWheelAngle SteeringWheelAngle OPTIONAL, + lateralAcceleration LateralAcceleration OPTIONAL, + verticalAcceleration VerticalAcceleration OPTIONAL, + performanceClass PerformanceClass OPTIONAL, + cenDsrcTollingZone CenDsrcTollingZone OPTIONAL +} +``` + +## BasicVehicleContainerLowFrequency + + + +Fields: +* vehicleRole [**VehicleRole**](ITS-Container.md#VehicleRole)
+* exteriorLights [**ExteriorLights**](ITS-Container.md#ExteriorLights)
+* pathHistory [**PathHistory**](ITS-Container.md#PathHistory)
+```asn1 +BasicVehicleContainerLowFrequency ::= SEQUENCE { + vehicleRole VehicleRole, + exteriorLights ExteriorLights, + pathHistory PathHistory +} +``` + +## PublicTransportContainer + + + +Fields: +* embarkationStatus [**EmbarkationStatus**](ITS-Container.md#EmbarkationStatus)
+* ptActivation [**PtActivation**](ITS-Container.md#PtActivation) OPTIONAL
+```asn1 +PublicTransportContainer ::= SEQUENCE { + embarkationStatus EmbarkationStatus, + ptActivation PtActivation OPTIONAL +} +``` + +## SpecialTransportContainer + + + +Fields: +* specialTransportType [**SpecialTransportType**](ITS-Container.md#SpecialTransportType)
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+```asn1 +SpecialTransportContainer ::= SEQUENCE { + specialTransportType SpecialTransportType, + lightBarSirenInUse LightBarSirenInUse +} +``` + +## DangerousGoodsContainer + + + +Fields: +* dangerousGoodsBasic [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
+```asn1 +DangerousGoodsContainer ::= SEQUENCE { + dangerousGoodsBasic DangerousGoodsBasic + } +``` + +## RoadWorksContainerBasic + + + +Fields: +* roadworksSubCauseCode [**RoadworksSubCauseCode**](ITS-Container.md#RoadworksSubCauseCode) OPTIONAL
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* closedLanes [**ClosedLanes**](ITS-Container.md#ClosedLanes) OPTIONAL
+```asn1 +RoadWorksContainerBasic ::= SEQUENCE { + roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, + lightBarSirenInUse LightBarSirenInUse, + closedLanes ClosedLanes OPTIONAL + } +``` + +## RescueContainer + + + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+```asn1 +RescueContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse +} +``` + +## EmergencyContainer + + + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
+* emergencyPriority [**EmergencyPriority**](ITS-Container.md#EmergencyPriority) OPTIONAL
+```asn1 +EmergencyContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + emergencyPriority EmergencyPriority OPTIONAL +} +``` + +## SafetyCarContainer + + + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
+* trafficRule [**TrafficRule**](ITS-Container.md#TrafficRule) OPTIONAL
+* speedLimit [**SpeedLimit**](ITS-Container.md#SpeedLimit) OPTIONAL
+```asn1 +SafetyCarContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + trafficRule TrafficRule OPTIONAL, + speedLimit SpeedLimit OPTIONAL +} +``` + +## RSUContainerHighFrequency + + + +Fields: +* protectedCommunicationZonesRSU [**ProtectedCommunicationZonesRSU**](ITS-Container.md#ProtectedCommunicationZonesRSU) OPTIONAL
+```asn1 +RSUContainerHighFrequency ::= SEQUENCE { + protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, + ... +} +``` + +## GenerationDeltaTime + + + +Fields: +```asn1 +GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) +``` + + + diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md new file mode 100755 index 0000000..7c13f98 --- /dev/null +++ b/docs/IMZM-PDU-Descriptions.md @@ -0,0 +1,338 @@ +# ASN.1 module IMZM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ +Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + +## Imports: + * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + + * **CAM-PDU-Descriptions** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
+Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + + * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
+Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +This is temporary* +Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* + +## IMZM + +_Interference Management Zone Message Root_ +This DF includes DEs for the IMZM _protocolVersion_, the IMZ message type identifier _messageID_ +and the station identifier _stationID_ of the originating ITS-S. + + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+ The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving ITS-S. + For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. + The DE _messageID_ shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE messageID shall be set to @todo imzm(15). +* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
+```asn1 +IMZM ::= SEQUENCE { + header ItsPduHeader, + imzm InterferenceManagementZoneMessage +} +``` + +## InterferenceManagementZoneMessage + +This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable +containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). + + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* imzmParameters [**ImzmParameters**](#ImzmParameters)
+```asn1 +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions + imzmParameters ImzmParameters +} +``` + +## ImzmParameters + +The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. + + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+imported from CAM-PDU-Descriptions +* imzmContainer [**ImzmContainer**](#ImzmContainer)
+container specific to the [**IMZM**](#IMZM) +```asn1 +ImzmParameters ::= SEQUENCE { + basicContainer BasicContainer, + imzmContainer ImzmContainer, + ... +} +``` + +## ImzmContainer + +The IMZM container includes a sequence of up to 16 interference management communication zones. +For each interference management communication zones, it contains a sequence of interference +management zones per channel together with their characteristics. + + +Fields: +* interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
+Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 +```asn1 +ImzmContainer ::= SEQUENCE { + interferenceManagementZones InterferenceManagementZones, + ... +} +``` + +## InterferenceManagementZones + +A list of up to 16 interference management communication zones. +--! EXAMPLE: An interference management communication zone may be defined around a + CEN DSRC road side equipment or an urban rail operational area. +--! @category: Infrastructure information, Communication information + + +```asn1 +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone +``` + +## InterferenceManagementZone + +Describes a zone of interferenceManagement inside which the ITS communication should +be restricted. +--! @category: Infrastructure information, Communication information + + +Fields: +* zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
+* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
+```asn1 +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo +} +``` + +## ZoneDefinition + +Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! @category: Infrastructure information, Communication information + + +Fields: +* interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+Latitude of the centre point of the interference management zone. +* interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+from ITS-Container +Longitude of the centre point of the interference management zone. +* interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+from ITS-Container +Radius of the interference management zone in metres. +* interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+from ITS-Container +Identification of the interference management zone. +* interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
+from ITS-Container +Shape of the interference management zone. +```asn1 +ZoneDefinition::= SEQUENCE{ + interferenceManagementZoneLatitude Latitude, --! from ITS-Container + interferenceManagementZoneLongitude Longitude, --! from ITS-Container + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container + interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... +} +``` + +## InterferenceManagementInfo + +_Interference Management Info_ +A list of up to 16 definitions of which interference management may be applied in the zone, +per affected frequency channels. +NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated +by the value of interferenceManagementMitigationType set to unavailable. +@category: Infrastructure information, Communication information + + +```asn1 +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel +``` + +## InterferenceManagementInfoPerChannel + +_InterferenceManagementInfoPerChannel_ +A break up of the interference management information per affected frequency channels. +--! @category: Infrastructure information, Communication information + + +Fields: +* interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
+Characteritics of the frequency channel for which the zone should be applied interference management +* interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
+Type of the interference management zone. +* interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
+Type of the mitigation to be used in the interference management zone. +* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+Time at which the validity of the interference management communication zone will expire.
+_This DE is present when the interference management is temporarily valid._ +```asn1 +InterferenceManagementInfoPerChannel ::= SEQUENCE { + interferenceManagementChannel InterferenceManagementChannel, + interferenceManagementZoneType InterferenceManagementZoneType, + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + expiryTime TimestampIts OPTIONAL, --! from ITS-Container + ... +} +``` + +## InterferenceManagementChannel + +Indicates which shared frequency channel should be applied interference management in the zone. +--! @category: Communication information + + +Fields: +* centreFrequency **INTEGER** (1 .. 99999)
+ Center of the channel frequency in 10exp+2 Hz (where exp is exponent) +* channelWidth **INTEGER** (0 .. 9999)
+ Width of the channel frequence band in 10exp Hz (where exp is exponent) +* exponent **INTEGER** (0 .. 15)
+ Exponent of the power of 10 in Mhz +```asn1 +InterferenceManagementChannel ::= SEQUENCE { + centreFrequency INTEGER (1 .. 99999), + channelWidth INTEGER (0 .. 9999), + exponent INTEGER (0 .. 15) +} +``` + +## InterferenceManagementZoneType + +This DE defines the type of an interference management zone, so that an ITS-S can +assert the actions to do while passing by such zone (e.g. reduce the transmit +power in case of a DSRC tolling station).
+@category: Communication information + + +Fields: +```asn1 +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 + temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 + unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling + urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 + satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 + fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 + ... +} +``` + +## InterferenceManagementMitigationType + +This DE defines the mitigation type in the interference management zone. +--! Information and commands defining the required mitigation type the +receiving ITS-S has to use in the defined interference management zone. +It indicates the type of mitigation and the parameters to be used to protect the +potential victim in the interference management zone per channel access technology class. +@category: Communication information + + +Fields: +* unavailable **BOOLEAN** OPTIONAL
+Default value to be used when data is not available +* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
+```asn1 +InterferenceManagementMitigationType ::= SEQUENCE { + unavailable BOOLEAN OPTIONAL, + mitigationForTechnologies MitigationForTechnologies +} +``` + +## MitigationForTechnologies + +This DE defines the mitigation type container for the different channel access technology classes.
+Class of parameters for the relevant channel access technology classes, +as specified in ETSI TS 103 724, clause 7. +@category: Communication information + + +```asn1 +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass +``` + +## MitigationPerTechnologyClass + +This DE defines the mitigation type container per channel access technology class
+Class of parameters for the specific technology indicated in the container. +All parameters are optional, as they may not apply to some of the technologies or +interference management zone types. Specification details are in ETSI TS 103 724, clause 7. +@category: Communication information + + +Fields: +* accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
+Channel access technology in which this mitigation is applied. +* lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
+Duty cycle limit in 0.01% steps +* powerReduction **INTEGER** (0 .. 30) OPTIONAL
+Power reduction in dB +* dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
+Idle time limit in ms as defined in ETSI TS 103 175. +* dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
+Transmission duration limit in ms, as defined in ETSI EN 302 571. +```asn1 +MitigationPerTechnologyClass ::= SEQUENCE { + accessTechnologyClass AccessTechnologyClass, + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + powerReduction INTEGER (0 .. 30) OPTIONAL, + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} +``` + +## AccessTechnologyClass + +DE- channel access technology class +Access technology to which the mitigation type applies. +@category: Communication information + + +Fields: +```asn1 +AccessTechnologyClass ::= ENUMERATED { + unavailable(0), + itsg5Class(1), + ltev2xClass(2), + nrv2xClass(3), + ... +} +``` + +## InterferenceManagementZoneShape + +DF- Shape of the interference management zone +Bounding box of an interference management zone +@category: GeoReference information + + +Fields: +* rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
+* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
+* polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
+* ellipse [**AreaEllipse**](#AreaEllipse)
+```asn1 +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, --! could not be imported from another specification yet + ... +} +``` + + + diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md new file mode 100755 index 0000000..1b04979 --- /dev/null +++ b/docs/ITS-Container.md @@ -0,0 +1,1493 @@ +# ASN.1 module ITS-Container + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ + +## ItsPduHeader + + + +Fields: +* protocolVersion **INTEGER** (0..255)
+* messageID **INTEGER** { denm(1)
+```asn1 +ItsPduHeader ::= SEQUENCE { + protocolVersion INTEGER (0..255), + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 + stationID StationID +} +``` + +## StationID + + + +```asn1 +StationID ::= INTEGER(0..4294967295) +``` + +## ReferencePosition + + + +Fields: +* latitude [**Latitude**](ITS-Container.md#Latitude)
+* longitude [**Longitude**](ITS-Container.md#Longitude)
+* positionConfidenceEllipse [**PosConfidenceEllipse**](#PosConfidenceEllipse)
+* altitude [**Altitude**](#Altitude)
+```asn1 +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse , + altitude Altitude +} +``` + +## DeltaReferencePosition + + + +Fields: +* deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
+* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
+* deltaAltitude [**DeltaAltitude**](#DeltaAltitude)
+```asn1 +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} +``` + +## Longitude + + + +Fields: +```asn1 +Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) +``` + +## Latitude + + + +Fields: +```asn1 +Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) +``` + +## Altitude + + + +Fields: +* altitudeValue [**AltitudeValue**](#AltitudeValue)
+* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
+```asn1 +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} +``` + +## AltitudeValue + + + +Fields: +```asn1 +AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) +``` + +## AltitudeConfidence + + + +Fields: +```asn1 +AltitudeConfidence ::= ENUMERATED { + alt-000-01 (0), + alt-000-02 (1), + alt-000-05 (2), + alt-000-10 (3), + alt-000-20 (4), + alt-000-50 (5), + alt-001-00 (6), + alt-002-00 (7), + alt-005-00 (8), + alt-010-00 (9), + alt-020-00 (10), + alt-050-00 (11), + alt-100-00 (12), + alt-200-00 (13), + outOfRange (14), + unavailable (15) +} +``` + +## DeltaLongitude + + + +Fields: +```asn1 +DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) +``` + +## DeltaLatitude + + + +Fields: +```asn1 +DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) +``` + +## DeltaAltitude + + + +Fields: +```asn1 +DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) +``` + +## PosConfidenceEllipse + + + +Fields: +* semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
+* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
+* semiMajorOrientation [**HeadingValue**](#HeadingValue)
+```asn1 +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} +``` + +## PathPoint + + + +Fields: +* pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
+* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
+```asn1 +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} +``` + +## PathDeltaTime + + + +Fields: +```asn1 +PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) +``` + +## PtActivation + + + +Fields: +* ptActivationType [**PtActivationType**](#PtActivationType)
+* ptActivationData [**PtActivationData**](#PtActivationData)
+```asn1 +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} +``` + +## PtActivationType + + + +Fields: +```asn1 +PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) +``` + +## PtActivationData + + + +```asn1 +PtActivationData ::= OCTET STRING (SIZE(1..20)) +``` + +## AccelerationControl + + + +Fields: +```asn1 +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) +``` + +## SemiAxisLength + + + +Fields: +```asn1 +SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) +``` + +## CauseCode + + + +Fields: +* causeCode [**CauseCodeType**](#CauseCodeType)
+* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
+```asn1 +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} +``` + +## CauseCodeType + + + +Fields: +```asn1 +CauseCodeType ::= INTEGER { + reserved (0), + trafficCondition (1), + accident (2), + roadworks (3), + impassability (5), + adverseWeatherCondition-Adhesion (6), + aquaplannning (7), + hazardousLocation-SurfaceCondition (9), + hazardousLocation-ObstacleOnTheRoad (10), + hazardousLocation-AnimalOnTheRoad (11), + humanPresenceOnTheRoad (12), + wrongWayDriving (14), + rescueAndRecoveryWorkInProgress (15), + adverseWeatherCondition-ExtremeWeatherCondition (17), + adverseWeatherCondition-Visibility (18), + adverseWeatherCondition-Precipitation (19), + slowVehicle (26), + dangerousEndOfQueue (27), + vehicleBreakdown (91), + postCrash (92), + humanProblem (93), + stationaryVehicle (94), + emergencyVehicleApproaching (95), + hazardousLocation-DangerousCurve (96), + collisionRisk (97), + signalViolation (98), + dangerousSituation (99) +} (0..255) +``` + +## SubCauseCodeType + + + +```asn1 +SubCauseCodeType ::= INTEGER (0..255) +``` + +## TrafficConditionSubCauseCode + + + +Fields: +```asn1 +TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) +``` + +## AccidentSubCauseCode + + + +Fields: +```asn1 +AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) +``` + +## RoadworksSubCauseCode + + + +Fields: +```asn1 +RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) +``` + +## HumanPresenceOnTheRoadSubCauseCode + + + +Fields: +```asn1 +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) +``` + +## WrongWayDrivingSubCauseCode + + + +Fields: +```asn1 +WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) +``` + +## AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) +``` + +## AdverseWeatherCondition-AdhesionSubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255) +``` + +## AdverseWeatherCondition-VisibilitySubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) +``` + +## AdverseWeatherCondition-PrecipitationSubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) +``` + +## SlowVehicleSubCauseCode + + + +Fields: +```asn1 +SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) +``` + +## StationaryVehicleSubCauseCode + + + +Fields: +```asn1 +StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) +``` + +## HumanProblemSubCauseCode + + + +Fields: +```asn1 +HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) +``` + +## EmergencyVehicleApproachingSubCauseCode + + + +Fields: +```asn1 +EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) +``` + +## HazardousLocation-DangerousCurveSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) +``` + +## HazardousLocation-SurfaceConditionSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255) +``` + +## HazardousLocation-ObstacleOnTheRoadSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) +``` + +## HazardousLocation-AnimalOnTheRoadSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) +``` + +## CollisionRiskSubCauseCode + + + +Fields: +```asn1 +CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) +``` + +## SignalViolationSubCauseCode + + + +Fields: +```asn1 +SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) +``` + +## RescueAndRecoveryWorkInProgressSubCauseCode + + + +Fields: +```asn1 +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) +``` + +## DangerousEndOfQueueSubCauseCode + + + +Fields: +```asn1 +DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) +``` + +## DangerousSituationSubCauseCode + + + +Fields: +```asn1 +DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) +``` + +## VehicleBreakdownSubCauseCode + + + +Fields: +```asn1 +VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) +``` + +## PostCrashSubCauseCode + + + +Fields: +```asn1 +PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) +``` + +## Curvature + + + +Fields: +* curvatureValue [**CurvatureValue**](#CurvatureValue)
+* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
+```asn1 +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} +``` + +## CurvatureValue + + + +Fields: +```asn1 +CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) +``` + +## CurvatureConfidence + + + +Fields: +```asn1 +CurvatureConfidence ::= ENUMERATED { + onePerMeter-0-00002 (0), + onePerMeter-0-0001 (1), + onePerMeter-0-0005 (2), + onePerMeter-0-002 (3), + onePerMeter-0-01 (4), + onePerMeter-0-1 (5), + outOfRange (6), + unavailable (7) +} +``` + +## CurvatureCalculationMode + + + +Fields: +```asn1 +CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} +``` + +## Heading + + + +Fields: +* headingValue [**HeadingValue**](#HeadingValue)
+* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
+```asn1 +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} +``` + +## HeadingValue + + + +Fields: +```asn1 +HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) +``` + +## HeadingConfidence + + + +Fields: +```asn1 +HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) +``` + +## LanePosition + + + +Fields: +```asn1 +LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), +outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) +``` + +## ClosedLanes + + + +Fields: +* innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
+* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
+* drivingLaneStatus [**DrivingLaneStatus**](#DrivingLaneStatus) OPTIONAL
+```asn1 +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} +``` + +## HardShoulderStatus + + + +Fields: +```asn1 +HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} +``` + +## DrivingLaneStatus + + + +```asn1 +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) +``` + +## PerformanceClass + + + +Fields: +```asn1 +PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) +``` + +## SpeedValue + + + +Fields: +```asn1 +SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) +``` + +## SpeedConfidence + + + +Fields: +```asn1 +SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) +``` + +## VehicleMass + + + +Fields: +```asn1 +VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) +``` + +## Speed + + + +Fields: +* speedValue [**SpeedValue**](#SpeedValue)
+* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
+```asn1 +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} +``` + +## DriveDirection + + + +Fields: +```asn1 +DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} +``` + +## EmbarkationStatus + + + +```asn1 +EmbarkationStatus ::= BOOLEAN +``` + +## LongitudinalAcceleration + + + +Fields: +* longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
+* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} +``` + +## LongitudinalAccelerationValue + + + +Fields: +```asn1 +LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) +``` + +## AccelerationConfidence + + + +Fields: +```asn1 +AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) +``` + +## LateralAcceleration + + + +Fields: +* lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
+* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} +``` + +## LateralAccelerationValue + + + +Fields: +```asn1 +LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) +``` + +## VerticalAcceleration + + + +Fields: +* verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
+* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} +``` + +## VerticalAccelerationValue + + + +Fields: +```asn1 +VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) +``` + +## StationType + + + +Fields: +```asn1 +StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), +lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) +``` + +## ExteriorLights + + + +Fields: +```asn1 +ExteriorLights ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) +``` + +## DangerousGoodsBasic + + + +Fields: +```asn1 +DangerousGoodsBasic::= ENUMERATED { + explosives1(0), + explosives2(1), + explosives3(2), + explosives4(3), + explosives5(4), + explosives6(5), + flammableGases(6), + nonFlammableGases(7), + toxicGases(8), + flammableLiquids(9), + flammableSolids(10), + substancesLiableToSpontaneousCombustion(11), + substancesEmittingFlammableGasesUponContactWithWater(12), + oxidizingSubstances(13), + organicPeroxides(14), + toxicSubstances(15), + infectiousSubstances(16), + radioactiveMaterial(17), + corrosiveSubstances(18), + miscellaneousDangerousSubstances(19) +} +``` + +## DangerousGoodsExtended + + + +Fields: +* dangerousGoodsType [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
+* unNumber **INTEGER** (0..9999)
+* elevatedTemperature **BOOLEAN**
+* tunnelsRestricted **BOOLEAN**
+* limitedQuantity **BOOLEAN**
+* emergencyActionCode [**IA5String**](#IA5String) (SIZE (1..24)) OPTIONAL
+* phoneNumber [**PhoneNumber**](#PhoneNumber) OPTIONAL
+* companyName [**UTF8String**](#UTF8String) (SIZE (1..24)) OPTIONAL
+```asn1 +DangerousGoodsExtended ::= SEQUENCE { + dangerousGoodsType DangerousGoodsBasic, + unNumber INTEGER (0..9999), + elevatedTemperature BOOLEAN, + tunnelsRestricted BOOLEAN, + limitedQuantity BOOLEAN, + emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, + phoneNumber PhoneNumber OPTIONAL, + companyName UTF8String (SIZE (1..24)) OPTIONAL, + ... +} +``` + +## SpecialTransportType + + + +Fields: +```asn1 +SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) +``` + +## LightBarSirenInUse + + + +Fields: +```asn1 +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) +``` + +## HeightLonCarr + + + +Fields: +```asn1 +HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) +``` + +## PosLonCarr + + + +Fields: +```asn1 +PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) +``` + +## PosPillar + + + +Fields: +```asn1 +PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) +``` + +## PosCentMass + + + +Fields: +```asn1 +PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) +``` + +## RequestResponseIndication + + + +Fields: +```asn1 +RequestResponseIndication ::= ENUMERATED {request(0), response(1)} +``` + +## SpeedLimit + + + +Fields: +```asn1 +SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) +``` + +## StationarySince + + + +Fields: +```asn1 +StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} +``` + +## Temperature + + + +Fields: +```asn1 +Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) +``` + +## TrafficRule + + + +Fields: +```asn1 +TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... +} +``` + +## WheelBaseVehicle + + + +Fields: +```asn1 +WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) +``` + +## TurningRadius + + + +Fields: +```asn1 +TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) +``` + +## PosFrontAx + + + +Fields: +```asn1 +PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) +``` + +## PositionOfOccupants + + + +Fields: +```asn1 +PositionOfOccupants ::= BIT STRING { + row1LeftOccupied (0), + row1RightOccupied (1), + row1MidOccupied (2), + row1NotDetectable (3), + row1NotPresent (4), + row2LeftOccupied (5), + row2RightOccupied (6), + row2MidOccupied (7), + row2NotDetectable (8), + row2NotPresent (9), + row3LeftOccupied (10), + row3RightOccupied (11), + row3MidOccupied (12), + row3NotDetectable (13), + row3NotPresent (14), + row4LeftOccupied (15), + row4RightOccupied (16), + row4MidOccupied (17), + row4NotDetectable (18), + row4NotPresent (19)} (SIZE(20)) +``` + +## PositioningSolutionType + + + +Fields: +```asn1 +PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} +``` + +## VehicleIdentification + + + +Fields: +* wMInumber [**WMInumber**](#WMInumber) OPTIONAL
+* vDS [**VDS**](#VDS) OPTIONAL
+```asn1 +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} +``` + +## WMInumber + + + +```asn1 +WMInumber ::= IA5String (SIZE(1..3)) +``` + +## VDS + + + +```asn1 +VDS ::= IA5String (SIZE(6)) +``` + +## EnergyStorageType + + + +Fields: +```asn1 +EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) +``` + +## VehicleLength + + + +Fields: +* vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
+* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
+```asn1 +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} +``` + +## VehicleLengthValue + + + +Fields: +```asn1 +VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) +``` + +## VehicleLengthConfidenceIndication + + + +Fields: +```asn1 +VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} +``` + +## VehicleWidth + + + +Fields: +```asn1 +VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) +``` + +## PathHistory + + + +```asn1 +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint +``` + +## EmergencyPriority + + + +Fields: +```asn1 +EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) +``` + +## InformationQuality + + + +Fields: +```asn1 +InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) +``` + +## RoadType + + + +Fields: +```asn1 +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes(0), + urban-WithStructuralSeparationToOppositeLanes(1), + nonUrban-NoStructuralSeparationToOppositeLanes(2), + nonUrban-WithStructuralSeparationToOppositeLanes(3)} +``` + +## SteeringWheelAngle + + + +Fields: +* steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
+* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
+```asn1 +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} +``` + +## SteeringWheelAngleValue + + + +Fields: +```asn1 +SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) +``` + +## SteeringWheelAngleConfidence + + + +Fields: +```asn1 +SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) +``` + +## TimestampIts + + + +Fields: +```asn1 +TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) +``` + +## VehicleRole + + + +Fields: +```asn1 +VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} +``` + +## YawRate + + + +Fields: +* yawRateValue [**YawRateValue**](#YawRateValue)
+* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
+```asn1 +YawRate::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} +``` + +## YawRateValue + + + +Fields: +```asn1 +YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) +``` + +## YawRateConfidence + + + +Fields: +```asn1 +YawRateConfidence ::= ENUMERATED { + degSec-000-01 (0), + degSec-000-05 (1), + degSec-000-10 (2), + degSec-001-00 (3), + degSec-005-00 (4), + degSec-010-00 (5), + degSec-100-00 (6), + outOfRange (7), + unavailable (8) +} +``` + +## ProtectedZoneType + + + +Fields: +```asn1 +ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } +``` + +## RelevanceDistance + + + +Fields: +```asn1 +RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} +``` + +## RelevanceTrafficDirection + + + +Fields: +```asn1 +RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} +``` + +## TransmissionInterval + + + +Fields: +```asn1 +TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) +``` + +## ValidityDuration + + + +Fields: +```asn1 +ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) +``` + +## ActionID + + + +Fields: +* originatingStationID [**StationID**](ITS-Container.md#StationID)
+* sequenceNumber [**SequenceNumber**](#SequenceNumber)
+```asn1 +ActionID ::= SEQUENCE { + originatingStationID StationID, + sequenceNumber SequenceNumber +} +``` + +## ItineraryPath + + + +```asn1 +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition +``` + +## ProtectedCommunicationZone + + + +Fields: +* protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
+* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* protectedZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+* protectedZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+```asn1 +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneID ProtectedZoneID OPTIONAL, + ... +} +``` + +## Traces + + + +```asn1 +Traces ::= SEQUENCE SIZE(1..7) OF PathHistory +``` + +## NumberOfOccupants + + + +Fields: +```asn1 +NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) +``` + +## SequenceNumber + + + +```asn1 +SequenceNumber ::= INTEGER (0..65535) +``` + +## PositionOfPillars + + + +```asn1 +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar +``` + +## RestrictedTypes + + + +```asn1 +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType +``` + +## EventHistory + + + +```asn1 +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint +``` + +## EventPoint + + + +Fields: +* eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
+* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
+* informationQuality [**InformationQuality**](#InformationQuality)
+```asn1 +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} +``` + +## ProtectedCommunicationZonesRSU + + + +```asn1 +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone +``` + +## CenDsrcTollingZone + + + +Fields: +* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* cenDsrcTollingZoneID [**CenDsrcTollingZoneID**](#CenDsrcTollingZoneID) OPTIONAL
+```asn1 +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, + ... +} +``` + +## ProtectedZoneRadius + + + +Fields: +```asn1 +ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) +``` + +## ProtectedZoneID + + + +```asn1 +ProtectedZoneID ::= INTEGER (0.. 134217727) +``` + +## CenDsrcTollingZoneID + + + +```asn1 +CenDsrcTollingZoneID ::= ProtectedZoneID +``` + +## DigitalMap + + + +```asn1 +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition +``` + +## OpeningDaysHours + + + +```asn1 +OpeningDaysHours ::= UTF8String +``` + +## PhoneNumber + + + +```asn1 +PhoneNumber ::= NumericString (SIZE(1..16)) +``` + + + diff --git a/docs/VAM-Temp-Imports.md b/docs/VAM-Temp-Imports.md new file mode 100755 index 0000000..c0247f6 --- /dev/null +++ b/docs/VAM-Temp-Imports.md @@ -0,0 +1,183 @@ +# ASN.1 module VAM-Temp-Imports + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1)}_ + +## Imports: + * **ITS-Container** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}*
+ + * **DSRC** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)}*
+ +## BasicContainer + + + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +BasicContainer ::= SEQUENCE { + stationType StationType, -- from VAM-Temp-Imports + referencePosition ReferencePosition, -- from ITS-Container + ... +} +``` + +## ItsPduHeader + + + +Fields: +* protocolVersion **INTEGER** (0..255)
+* messageID **INTEGER** { denm(1)
+```asn1 +ItsPduHeader ::= SEQUENCE { + protocolVersion INTEGER (0..255), + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), -- Mantis #7209, #7005 + stationID StationID +} +``` + +## AreaCircular + + + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+* radius [**Radius**](#Radius)
+```asn1 +AreaCircular ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + radius Radius +} +``` + +## AreaPolygon + + + +Fields: +* polyPointList [**PolyPointList**](#PolyPointList)
+```asn1 +AreaPolygon ::= SEQUENCE { + polyPointList PolyPointList +} +``` + +## AreaRectangle + + + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+* semiHeight [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength) OPTIONAL
+```asn1 +AreaRectangle ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue, + semiHeight SemiRangeLength OPTIONAL +} +``` + +## OffsetPoint + + + +Fields: +* nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {...
+```asn1 +OffsetPoint ::= SEQUENCE{ + nodeOffsetPointXY NodeOffsetPointXY (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT}), + nodeOffsetPointZ NodeOffsetPointZ OPTIONAL +} +``` + +## NodeOffsetPointZ + + + +Fields: +* node-Z1 [**Offset-B10**](DSRC.md#Offset-B10)
+* node-Z2 [**Offset-B11**](DSRC.md#Offset-B11)
+* node-Z3 [**Offset-B12**](DSRC.md#Offset-B12)
+* node-Z4 [**Offset-B13**](DSRC.md#Offset-B13)
+* node-Z5 [**Offset-B14**](DSRC.md#Offset-B14)
+* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16) -- node is within 327.67m of last node
+```asn1 +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 +} +``` + +## Radius + + + +Fields: +```asn1 +Radius ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +## PolyPointList + + + +```asn1 +PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint +``` + +## SemiRangeLength + + + +Fields: +```asn1 +SemiRangeLength ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +## WGS84AngleValue + + + +Fields: +```asn1 +WGS84AngleValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + unavailable (3601) +} (0..3601) +``` + +## StationType + + + +Fields: +```asn1 +StationType ::= INTEGER { + unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), + passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), + specialVehicles(10), tram(11), lightVruVehicle(12), animal(13), + roadSideUnit(15) +} +(0..255) +``` + + + -- GitLab From 422e9da136054f502e35d99fc395d7661c766d36 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 21:13:48 +0200 Subject: [PATCH 06/85] temp doc files --- IMZM-PDU-Descriptions.asn | 50 +++++++++------------ asn2md.py | 85 +++++++++++++++++------------------ docs/IMZM-PDU-Descriptions.md | 39 +++++++--------- 3 files changed, 78 insertions(+), 96 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 0350b3a..c61a413 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -9,6 +9,8 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN +--! [[TOC]] + IMPORTS --! Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { @@ -22,24 +24,22 @@ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) } ---! Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn ---! *This is temporary* ---! *Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* +--! Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
+--! *This is temporary * :
+--! *Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) } ; ---! _Interference Management Zone Message Root_ - ---! This DF includes DEs for the IMZM _protocolVersion_, the IMZ message type identifier _messageID_ ---! and the station identifier _stationID_ of the originating ITS-S. +--! This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` +--! and the station identifier `stationID` of the originating ITS-S. IMZM ::= SEQUENCE { ---! * The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving ITS-S. ---! For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. ---! * The DE _messageID_ shall be harmonized with other V2X message identifier definitions. ---! For IMZM, the DE messageID shall be set to @todo imzm(15). +--! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. +--! For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. +--! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. +--! For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. header ItsPduHeader, imzm InterferenceManagementZoneMessage } @@ -52,9 +52,8 @@ InterferenceManagementZoneMessage ::= SEQUENCE { } --! The sequence of containers in the @ref IMZM. Other containers may be added in the future. - ImzmParameters ::= SEQUENCE { - --! imported from CAM-PDU-Descriptions + --! imported from @ref CAM-PDU-Descriptions basicContainer BasicContainer, --! container specific to the @ref IMZM imzmContainer ImzmContainer, @@ -72,8 +71,8 @@ ImzmContainer ::= SEQUENCE { --! A list of up to 16 interference management communication zones. --! ---! EXAMPLE: An interference management communication zone may be defined around a ---! CEN DSRC road side equipment or an urban rail operational area. +--! > EXAMPLE: An interference management communication zone may be defined around a +--! > CEN DSRC road side equipment or an urban rail operational area. --! --! @category: Infrastructure information, Communication information InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone @@ -105,7 +104,6 @@ ZoneDefinition::= SEQUENCE{ ... } ---! _Interference Management Info_ --! A list of up to 16 definitions of which interference management may be applied in the zone, --! per affected frequency channels. --! NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated @@ -113,7 +111,6 @@ ZoneDefinition::= SEQUENCE{ --! @category: Infrastructure information, Communication information InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ---! _InterferenceManagementInfoPerChannel_ --! A break up of the interference management information per affected frequency channels. --! --! @category: Infrastructure information, Communication information @@ -124,8 +121,8 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementZoneType InterferenceManagementZoneType, --! Type of the mitigation to be used in the interference management zone. interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - --! Time at which the validity of the interference management communication zone will expire.
- --! _This DE is present when the interference management is temporarily valid._ + --! Time at which the validity of the interference management communication zone will expire. + --! > This DE is present when the interference management is temporarily valid. expiryTime TimestampIts OPTIONAL, --! from ITS-Container ... } @@ -134,11 +131,11 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { --! --! @category: Communication information InterferenceManagementChannel ::= SEQUENCE { ---! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + --! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) centreFrequency INTEGER (1 .. 99999), ---! Width of the channel frequence band in 10exp Hz (where exp is exponent) + --! Width of the channel frequence band in 10exp Hz (where exp is exponent) channelWidth INTEGER (0 .. 9999), ---! Exponent of the power of 10 in Mhz + --! Exponent of the power of 10 in Mhz exponent INTEGER (0 .. 15) } @@ -195,7 +192,6 @@ MitigationPerTechnologyClass ::= SEQUENCE { ... } ---! @brief DE- channel access technology class --! Access technology to which the mitigation type applies. --! @category: Communication information AccessTechnologyClass ::= ENUMERATED { @@ -210,8 +206,7 @@ AccessTechnologyClass ::= ENUMERATED { ... } ---! @brief DF- Shape of the interference management zone ---! Bounding box of an interference management zone +--! Shape of the interference management zone. --! @category: GeoReference information InterferenceManagementZoneShape::= CHOICE { rectangle AreaRectangle, @@ -221,23 +216,18 @@ InterferenceManagementZoneShape::= CHOICE { ... } ---! @brief DF- Area Ellipse --! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. --! Describes an elliptical area. The ellipse is centred about the reference point --! of the ITS-S or about the nodeCenterPoint (if provided). --! @category: GeoReference information AreaEllipse ::= SEQUENCE { - --! @details nodeCenterPoint --! Optional offset point about which the ellipse is centred with respect to the reference --! position of the ITS-S. nodeCenterPoint OffsetPoint OPTIONAL, - --! @details semiMajorRangeLength --! Minor radius of the ellipse. semiMajorRangeLength SemiRangeLength, - --! @details semiMinorRangeLength --! Major radius of the ellipse. semiMinorRangeLength SemiRangeLength, - --! @details semiMajorRangeOrientation --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. semiMajorRangeOrientation WGS84AngleValue } diff --git a/asn2md.py b/asn2md.py index 0692b55..d82aa5f 100755 --- a/asn2md.py +++ b/asn2md.py @@ -30,34 +30,34 @@ import re # for regular expressions ## extract doxygen-tag namespace RE_MODULE = re.compile( - '^(\w[\w-]*)[\s{](?:.|\n)*DEFINITIONS(?:.|\n)*::=\s*BEGIN' + r'^(\w[\w-]*)[\s{](?:.|\n)*DEFINITIONS(?:.|\n)*::=\s*BEGIN' , re.IGNORECASE | re.VERBOSE | re.DOTALL | re.MULTILINE) RE_EXPORTS = re.compile( - '^\s*EXPORTS .*?;' + r'^\s*EXPORTS .*?;' , re.VERBOSE | re.DOTALL | re.MULTILINE) RE_IMPORTS = re.compile( - '^\s*IMPORTS .*?;' + r'^\s*IMPORTS .*?;' , re.VERBOSE | re.DOTALL | re.MULTILINE) RE_END = re.compile( - '^\s*END\s*$' + r'^\s*END\s*$' , re.VERBOSE | re.MULTILINE) RE_DOXY_COMMENTS = re.compile( - '^\s*--[-#!*]\s?' + r'^\s*--[-#!]\s' , re.VERBOSE | re.MULTILINE) RE_DOXY_C_COMMENTS = re.compile( - '^\s*/\*\*\s(.*?)\*/' - , re.VERBOSE | re.MULTILINE) + r'^\s*/\*\*\s(.*?)\*/' + , re.VERBOSE | re.MULTILINE | re.DOTALL) RE_COMMENT = re.compile( - '--.*?(?:--|$)' + r'--.*?(?:--|\n)' , re.VERBOSE | re.MULTILINE) -RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w\s]+(?:{(.*?)})?.*?)\n\s*\n' - , re.VERBOSE | re.MULTILINE | re.DOTALL) +RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{(.*?)})?.*?)\n\s*\n' + , re.VERBOSE | re.MULTILINE | re.DOTALL) extTypes = {} @@ -69,35 +69,40 @@ def indentString(s, indent): return s def parseText(content, indent=None): - c = RE_DOXY_COMMENTS.sub('', content) - if c is not None: - content = c - c = RE_DOXY_C_COMMENTS.sub(r'\g<1>', content) - if c is not None: - content = c - c = RE_COMMENT.sub('', content) + # we need to keep only documenting text under the /** */ and --! + c = re.sub(r'^\s*--[-!#]\s(.*)', '/** \g<1>*/', content, 0, re.MULTILINE) if c is not None: content = c - if indent is not None: - content = indentString(content, indent) + ret = '' + for m in RE_DOXY_C_COMMENTS.finditer(content): + lines = m[1].splitlines() + for l in lines: + l = re.sub(r'\s*\*', '', l, 1).rstrip() + ret += l + '\n' def repl_ref(m): return '[**{0}**]({1}#{0})'.format(m[1], extTypes.get(m[1],'')) - c = re.sub(r'@ref\s+([\w-]+)', repl_ref, content, 0, re.VERBOSE | re.MULTILINE) + c = re.sub(r'@ref\s+([\w-]+)', repl_ref, ret, 0, re.VERBOSE | re.MULTILINE) if c is not None: - content = c - return content + ret = c + c = re.sub(r'@class\s+([\w-]+)', '', ret, 0, re.VERBOSE | re.MULTILINE) + if c is not None: + ret = c + c = re.sub(r'@brief\s+', '', ret, 0, re.VERBOSE | re.MULTILINE) + if c is not None: + ret = c + return ret cpos=0 def parseModule(mname, content): global cpos cpos = 0 - def repl_import(m): - global cpos - cpos = m.start() - ret = '## Imports:\n' + ret = '' + m = re.search(r'^\s*IMPORTS\s*(.*?);', content, re.VERBOSE | re.DOTALL | re.MULTILINE) + if m is not None: pos = 0 if m[1] is not None: + ret += '## Imports:\n' s = m[1] - for fm in re.finditer(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*})?', s, re.VERBOSE | re.MULTILINE): + for fm in re.finditer(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', s, re.VERBOSE | re.MULTILINE): imName = fm[2] for im in re.finditer(r'[^,\s]+', fm[1], 0): extTypes[im[0]] = imName+'.md' @@ -105,21 +110,12 @@ def parseModule(mname, content): ret += parseText(s[pos:fm.start()], 3)+'\n' pos = fm.end() ret += parseText(s[pos:]) - cpos += len(ret) - return ret - - c = re.sub(r'^\s*IMPORTS\s*(.*?);', repl_import, content, 1, re.VERBOSE | re.DOTALL | re.MULTILINE) - if c is not None: - content = c + cpos = m.end() - def repl_exports(m): - global cpos - if cpos < m.start(): - cpos = m.start() - return '' - c = re.sub(r'^\s*EXPORTS.*?;', repl_exports, content, 1, re.VERBOSE | re.DOTALL | re.MULTILINE) - if c is not None: - content = c + m = re.search(r'^\s*EXPORTS.*?;', content, re.VERBOSE | re.DOTALL | re.MULTILINE) + if m is not None: + if cpos < m.end(): + cpos = m.end() # parse types def repl_type (m, doc): @@ -132,8 +128,8 @@ def parseModule(mname, content): pos = 0 for fm in re.finditer('^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', m[3], re.VERBOSE | re.MULTILINE | re.DOTALL): if fm[2] is not None: - t = fm[2].strip() f = fm[1].strip() + t = fm[2].strip() if re.match('^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT', t, re.VERBOSE|re.MULTILINE) is not None: ret += '* {0} **{1}** {2}
\n'.format(f, t, fm[3] or '') else: @@ -142,10 +138,11 @@ def parseModule(mname, content): pos = fm.end() return ret + '```asn1\n' + re.sub(r'^\s*--.*\n', '', m[1].strip(), 0, re.MULTILINE) +'\n```\n\n' - ret = content[:cpos] + pos = 0 for m in RE_TYPE.finditer(content[cpos:]): - ret += repl_type (m, m.string[pos:m.start()]) + ss = repl_type (m, m.string[pos:m.start()]) + ret += ss pos = m.end() return ret diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 7c13f98..b4471db 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -10,23 +10,22 @@ Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cd Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
-Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn -This is temporary* +Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
+This is temporary * :
Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* ## IMZM -_Interference Management Zone Message Root_ -This DF includes DEs for the IMZM _protocolVersion_, the IMZ message type identifier _messageID_ -and the station identifier _stationID_ of the originating ITS-S. +This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` +and the station identifier `stationID` of the originating ITS-S. Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving ITS-S. - For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. - The DE _messageID_ shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE messageID shall be set to @todo imzm(15). + The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. + For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. + The DE `messageID` shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -58,7 +57,7 @@ The sequence of containers in the [**IMZM**](#IMZM). Other containers may be add Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
-imported from CAM-PDU-Descriptions +imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) * imzmContainer [**ImzmContainer**](#ImzmContainer)
container specific to the [**IMZM**](#IMZM) ```asn1 @@ -89,8 +88,8 @@ ImzmContainer ::= SEQUENCE { ## InterferenceManagementZones A list of up to 16 interference management communication zones. ---! EXAMPLE: An interference management communication zone may be defined around a - CEN DSRC road side equipment or an urban rail operational area. +--! > EXAMPLE: An interference management communication zone may be defined around a +> CEN DSRC road side equipment or an urban rail operational area. --! @category: Infrastructure information, Communication information @@ -149,7 +148,6 @@ ZoneDefinition::= SEQUENCE{ ## InterferenceManagementInfo -_Interference Management Info_ A list of up to 16 definitions of which interference management may be applied in the zone, per affected frequency channels. NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated @@ -163,7 +161,6 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ## InterferenceManagementInfoPerChannel -_InterferenceManagementInfoPerChannel_ A break up of the interference management information per affected frequency channels. --! @category: Infrastructure information, Communication information @@ -176,8 +173,8 @@ Type of the interference management zone. * interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
Type of the mitigation to be used in the interference management zone. * expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
-Time at which the validity of the interference management communication zone will expire.
-_This DE is present when the interference management is temporarily valid._ +Time at which the validity of the interference management communication zone will expire. +> This DE is present when the interference management is temporarily valid. ```asn1 InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementChannel InterferenceManagementChannel, @@ -196,11 +193,11 @@ Indicates which shared frequency channel should be applied interference manageme Fields: * centreFrequency **INTEGER** (1 .. 99999)
- Center of the channel frequency in 10exp+2 Hz (where exp is exponent) +Center of the channel frequency in 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
- Width of the channel frequence band in 10exp Hz (where exp is exponent) +Width of the channel frequence band in 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15)
- Exponent of the power of 10 in Mhz +Exponent of the power of 10 in Mhz ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -296,7 +293,6 @@ MitigationPerTechnologyClass ::= SEQUENCE { ## AccessTechnologyClass -DE- channel access technology class Access technology to which the mitigation type applies. @category: Communication information @@ -314,8 +310,7 @@ AccessTechnologyClass ::= ENUMERATED { ## InterferenceManagementZoneShape -DF- Shape of the interference management zone -Bounding box of an interference management zone +Shape of the interference management zone. @category: GeoReference information -- GitLab From fcdcb5b06520d4effe9e872d70ebf35ae0170c93 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 21:25:12 +0200 Subject: [PATCH 07/85] temp doc files --- IMZM-PDU-Descriptions.asn | 3 +- asn2md.py | 2 +- docs/IMZM-PDU-Descriptions.md | 163 +++++++++++++++++----------------- 3 files changed, 85 insertions(+), 83 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index c61a413..7666951 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,5 +1,7 @@ --! Specification of the Interference Management Zone Message ETSI TS 103 724
--! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 +--! +--! [[TOC]] IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) @@ -9,7 +11,6 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN ---! [[TOC]] IMPORTS --! Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn diff --git a/asn2md.py b/asn2md.py index d82aa5f..5d115e5 100755 --- a/asn2md.py +++ b/asn2md.py @@ -70,7 +70,7 @@ def indentString(s, indent): def parseText(content, indent=None): # we need to keep only documenting text under the /** */ and --! - c = re.sub(r'^\s*--[-!#]\s(.*)', '/** \g<1>*/', content, 0, re.MULTILINE) + c = re.sub(r'^\s*--[-!#](:?$|(.*))', '/** \g<1>*/', content, 0, re.MULTILINE) if c is not None: content = c ret = '' diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index b4471db..95f5af1 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,31 +1,32 @@ # ASN.1 module IMZM-PDU-Descriptions OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ -Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + [[TOC]] ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
-Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn * **CAM-PDU-Descriptions** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
-Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
-Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
+ Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
This is temporary * :
Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* ## IMZM -This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` -and the station identifier `stationID` of the originating ITS-S. + This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` + and the station identifier `stationID` of the originating ITS-S. Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. - For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. + For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. + For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -36,8 +37,8 @@ IMZM ::= SEQUENCE { ## InterferenceManagementZoneMessage -This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable -containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). + This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable + containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). Fields: @@ -52,14 +53,14 @@ InterferenceManagementZoneMessage ::= SEQUENCE { ## ImzmParameters -The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. + The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
-imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) + imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) * imzmContainer [**ImzmContainer**](#ImzmContainer)
-container specific to the [**IMZM**](#IMZM) + container specific to the [**IMZM**](#IMZM) ```asn1 ImzmParameters ::= SEQUENCE { basicContainer BasicContainer, @@ -70,14 +71,14 @@ ImzmParameters ::= SEQUENCE { ## ImzmContainer -The IMZM container includes a sequence of up to 16 interference management communication zones. -For each interference management communication zones, it contains a sequence of interference -management zones per channel together with their characteristics. + The IMZM container includes a sequence of up to 16 interference management communication zones. + For each interference management communication zones, it contains a sequence of interference + management zones per channel together with their characteristics. Fields: * interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
-Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 + Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 ```asn1 ImzmContainer ::= SEQUENCE { interferenceManagementZones InterferenceManagementZones, @@ -87,10 +88,10 @@ ImzmContainer ::= SEQUENCE { ## InterferenceManagementZones -A list of up to 16 interference management communication zones. ---! > EXAMPLE: An interference management communication zone may be defined around a -> CEN DSRC road side equipment or an urban rail operational area. ---! @category: Infrastructure information, Communication information + A list of up to 16 interference management communication zones. + > EXAMPLE: An interference management communication zone may be defined around a + > CEN DSRC road side equipment or an urban rail operational area. + @category: Infrastructure information, Communication information ```asn1 @@ -99,9 +100,9 @@ InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagement ## InterferenceManagementZone -Describes a zone of interferenceManagement inside which the ITS communication should -be restricted. ---! @category: Infrastructure information, Communication information + Describes a zone of interferenceManagement inside which the ITS communication should + be restricted. + @category: Infrastructure information, Communication information Fields: @@ -116,25 +117,25 @@ InterferenceManagementZone ::= SEQUENCE { ## ZoneDefinition -Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. ---! @category: Infrastructure information, Communication information + Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + @category: Infrastructure information, Communication information Fields: * interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
-Latitude of the centre point of the interference management zone. + Latitude of the centre point of the interference management zone. * interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
-from ITS-Container -Longitude of the centre point of the interference management zone. + from ITS-Container + Longitude of the centre point of the interference management zone. * interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
-from ITS-Container -Radius of the interference management zone in metres. + from ITS-Container + Radius of the interference management zone in metres. * interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
-from ITS-Container -Identification of the interference management zone. + from ITS-Container + Identification of the interference management zone. * interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
-from ITS-Container -Shape of the interference management zone. + from ITS-Container + Shape of the interference management zone. ```asn1 ZoneDefinition::= SEQUENCE{ interferenceManagementZoneLatitude Latitude, --! from ITS-Container @@ -148,11 +149,11 @@ ZoneDefinition::= SEQUENCE{ ## InterferenceManagementInfo -A list of up to 16 definitions of which interference management may be applied in the zone, -per affected frequency channels. -NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated -by the value of interferenceManagementMitigationType set to unavailable. -@category: Infrastructure information, Communication information + A list of up to 16 definitions of which interference management may be applied in the zone, + per affected frequency channels. + NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated + by the value of interferenceManagementMitigationType set to unavailable. + @category: Infrastructure information, Communication information ```asn1 @@ -161,20 +162,20 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ## InterferenceManagementInfoPerChannel -A break up of the interference management information per affected frequency channels. ---! @category: Infrastructure information, Communication information + A break up of the interference management information per affected frequency channels. + @category: Infrastructure information, Communication information Fields: * interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
-Characteritics of the frequency channel for which the zone should be applied interference management + Characteritics of the frequency channel for which the zone should be applied interference management * interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
-Type of the interference management zone. + Type of the interference management zone. * interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
-Type of the mitigation to be used in the interference management zone. + Type of the mitigation to be used in the interference management zone. * expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
-Time at which the validity of the interference management communication zone will expire. -> This DE is present when the interference management is temporarily valid. + Time at which the validity of the interference management communication zone will expire. + > This DE is present when the interference management is temporarily valid. ```asn1 InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementChannel InterferenceManagementChannel, @@ -187,17 +188,17 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ## InterferenceManagementChannel -Indicates which shared frequency channel should be applied interference management in the zone. ---! @category: Communication information + Indicates which shared frequency channel should be applied interference management in the zone. + @category: Communication information Fields: * centreFrequency **INTEGER** (1 .. 99999)
-Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + Center of the channel frequency in 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
-Width of the channel frequence band in 10exp Hz (where exp is exponent) + Width of the channel frequence band in 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15)
-Exponent of the power of 10 in Mhz + Exponent of the power of 10 in Mhz ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -208,10 +209,10 @@ InterferenceManagementChannel ::= SEQUENCE { ## InterferenceManagementZoneType -This DE defines the type of an interference management zone, so that an ITS-S can -assert the actions to do while passing by such zone (e.g. reduce the transmit -power in case of a DSRC tolling station).
-@category: Communication information + This DE defines the type of an interference management zone, so that an ITS-S can + assert the actions to do while passing by such zone (e.g. reduce the transmit + power in case of a DSRC tolling station).
+ @category: Communication information Fields: @@ -229,17 +230,17 @@ InterferenceManagementZoneType ::= ENUMERATED { ## InterferenceManagementMitigationType -This DE defines the mitigation type in the interference management zone. ---! Information and commands defining the required mitigation type the -receiving ITS-S has to use in the defined interference management zone. -It indicates the type of mitigation and the parameters to be used to protect the -potential victim in the interference management zone per channel access technology class. -@category: Communication information + This DE defines the mitigation type in the interference management zone. + Information and commands defining the required mitigation type the + receiving ITS-S has to use in the defined interference management zone. + It indicates the type of mitigation and the parameters to be used to protect the + potential victim in the interference management zone per channel access technology class. + @category: Communication information Fields: * unavailable **BOOLEAN** OPTIONAL
-Default value to be used when data is not available + Default value to be used when data is not available * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
```asn1 InterferenceManagementMitigationType ::= SEQUENCE { @@ -250,10 +251,10 @@ InterferenceManagementMitigationType ::= SEQUENCE { ## MitigationForTechnologies -This DE defines the mitigation type container for the different channel access technology classes.
-Class of parameters for the relevant channel access technology classes, -as specified in ETSI TS 103 724, clause 7. -@category: Communication information + This DE defines the mitigation type container for the different channel access technology classes.
+ Class of parameters for the relevant channel access technology classes, + as specified in ETSI TS 103 724, clause 7. + @category: Communication information ```asn1 @@ -262,24 +263,24 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl ## MitigationPerTechnologyClass -This DE defines the mitigation type container per channel access technology class
-Class of parameters for the specific technology indicated in the container. -All parameters are optional, as they may not apply to some of the technologies or -interference management zone types. Specification details are in ETSI TS 103 724, clause 7. -@category: Communication information + This DE defines the mitigation type container per channel access technology class
+ Class of parameters for the specific technology indicated in the container. + All parameters are optional, as they may not apply to some of the technologies or + interference management zone types. Specification details are in ETSI TS 103 724, clause 7. + @category: Communication information Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
-Channel access technology in which this mitigation is applied. + Channel access technology in which this mitigation is applied. * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
-Duty cycle limit in 0.01% steps + Duty cycle limit in 0.01% steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL
-Power reduction in dB + Power reduction in dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
-Idle time limit in ms as defined in ETSI TS 103 175. + Idle time limit in ms as defined in ETSI TS 103 175. * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
-Transmission duration limit in ms, as defined in ETSI EN 302 571. + Transmission duration limit in ms, as defined in ETSI EN 302 571. ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, @@ -293,8 +294,8 @@ MitigationPerTechnologyClass ::= SEQUENCE { ## AccessTechnologyClass -Access technology to which the mitigation type applies. -@category: Communication information + Access technology to which the mitigation type applies. + @category: Communication information Fields: @@ -310,8 +311,8 @@ AccessTechnologyClass ::= ENUMERATED { ## InterferenceManagementZoneShape -Shape of the interference management zone. -@category: GeoReference information + Shape of the interference management zone. + @category: GeoReference information Fields: -- GitLab From 1ab8c74c69943be54f55bbfb82463de9e0a25311 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 10 May 2021 21:33:55 +0200 Subject: [PATCH 08/85] temp doc files --- IMZM-PDU-Descriptions.asn | 2 +- asn2md.py | 2 +- docs/IMZM-PDU-Descriptions.md | 70 +++++++++++++++++------------------ 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 7666951..0dbad1b 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -123,7 +123,7 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { --! Type of the mitigation to be used in the interference management zone. interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, --! Time at which the validity of the interference management communication zone will expire. - --! > This DE is present when the interference management is temporarily valid. + --! > The `expiryTime` DE is present when the interference management is temporarily valid. expiryTime TimestampIts OPTIONAL, --! from ITS-Container ... } diff --git a/asn2md.py b/asn2md.py index 5d115e5..d5d4d46 100755 --- a/asn2md.py +++ b/asn2md.py @@ -78,7 +78,7 @@ def parseText(content, indent=None): lines = m[1].splitlines() for l in lines: l = re.sub(r'\s*\*', '', l, 1).rstrip() - ret += l + '\n' + ret += ''.ljust(indent or 0) + l + '\n' def repl_ref(m): return '[**{0}**]({1}#{0})'.format(m[1], extTypes.get(m[1],'')) c = re.sub(r'@ref\s+([\w-]+)', repl_ref, ret, 0, re.VERBOSE | re.MULTILINE) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 95f5af1..cf077b7 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -5,15 +5,15 @@ ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn * **CAM-PDU-Descriptions** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
- Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
- Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
-This is temporary * :
-Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* + Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
+ This is temporary * :
+ Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* ## IMZM @@ -23,10 +23,10 @@ Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Releas Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. - For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. - The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. + The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. + For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. + The DE `messageID` shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -58,9 +58,9 @@ InterferenceManagementZoneMessage ::= SEQUENCE { Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
- imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) + imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) * imzmContainer [**ImzmContainer**](#ImzmContainer)
- container specific to the [**IMZM**](#IMZM) + container specific to the [**IMZM**](#IMZM) ```asn1 ImzmParameters ::= SEQUENCE { basicContainer BasicContainer, @@ -78,7 +78,7 @@ ImzmParameters ::= SEQUENCE { Fields: * interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
- Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 + Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 ```asn1 ImzmContainer ::= SEQUENCE { interferenceManagementZones InterferenceManagementZones, @@ -123,19 +123,19 @@ InterferenceManagementZone ::= SEQUENCE { Fields: * interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
- Latitude of the centre point of the interference management zone. + Latitude of the centre point of the interference management zone. * interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
- from ITS-Container - Longitude of the centre point of the interference management zone. + from ITS-Container + Longitude of the centre point of the interference management zone. * interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
- from ITS-Container - Radius of the interference management zone in metres. + from ITS-Container + Radius of the interference management zone in metres. * interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
- from ITS-Container - Identification of the interference management zone. + from ITS-Container + Identification of the interference management zone. * interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
- from ITS-Container - Shape of the interference management zone. + from ITS-Container + Shape of the interference management zone. ```asn1 ZoneDefinition::= SEQUENCE{ interferenceManagementZoneLatitude Latitude, --! from ITS-Container @@ -168,14 +168,14 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme Fields: * interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
- Characteritics of the frequency channel for which the zone should be applied interference management + Characteritics of the frequency channel for which the zone should be applied interference management * interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
- Type of the interference management zone. + Type of the interference management zone. * interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
- Type of the mitigation to be used in the interference management zone. + Type of the mitigation to be used in the interference management zone. * expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
- Time at which the validity of the interference management communication zone will expire. - > This DE is present when the interference management is temporarily valid. + Time at which the validity of the interference management communication zone will expire. + > The `expiryTime` DE is present when the interference management is temporarily valid. ```asn1 InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementChannel InterferenceManagementChannel, @@ -194,11 +194,11 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { Fields: * centreFrequency **INTEGER** (1 .. 99999)
- Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + Center of the channel frequency in 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
- Width of the channel frequence band in 10exp Hz (where exp is exponent) + Width of the channel frequence band in 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15)
- Exponent of the power of 10 in Mhz + Exponent of the power of 10 in Mhz ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -240,7 +240,7 @@ InterferenceManagementZoneType ::= ENUMERATED { Fields: * unavailable **BOOLEAN** OPTIONAL
- Default value to be used when data is not available + Default value to be used when data is not available * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
```asn1 InterferenceManagementMitigationType ::= SEQUENCE { @@ -272,15 +272,15 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
- Channel access technology in which this mitigation is applied. + Channel access technology in which this mitigation is applied. * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
- Duty cycle limit in 0.01% steps + Duty cycle limit in 0.01% steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL
- Power reduction in dB + Power reduction in dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
- Idle time limit in ms as defined in ETSI TS 103 175. + Idle time limit in ms as defined in ETSI TS 103 175. * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
- Transmission duration limit in ms, as defined in ETSI EN 302 571. + Transmission duration limit in ms, as defined in ETSI EN 302 571. ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, -- GitLab From c528718b981ec10cc47339155348da7b24227909 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 11:20:34 +0200 Subject: [PATCH 09/85] fix groups in re --- asn2md.py | 63 +++++++++++++++++++------------------------------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/asn2md.py b/asn2md.py index d5d4d46..205e0b0 100755 --- a/asn2md.py +++ b/asn2md.py @@ -1,27 +1,5 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# asn1-doxygen-filter is an extension to the Doxygen utility for creating -# documents from ASN.1 files -# -# Copyright 2017 OnBoard Security, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUTNOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. import argparse # parse arguments import os.path # getting extension from file @@ -75,12 +53,12 @@ def parseText(content, indent=None): content = c ret = '' for m in RE_DOXY_C_COMMENTS.finditer(content): - lines = m[1].splitlines() + lines = m.group(1).splitlines() for l in lines: l = re.sub(r'\s*\*', '', l, 1).rstrip() ret += ''.ljust(indent or 0) + l + '\n' def repl_ref(m): - return '[**{0}**]({1}#{0})'.format(m[1], extTypes.get(m[1],'')) + return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) c = re.sub(r'@ref\s+([\w-]+)', repl_ref, ret, 0, re.VERBOSE | re.MULTILINE) if c is not None: ret = c @@ -99,14 +77,14 @@ def parseModule(mname, content): m = re.search(r'^\s*IMPORTS\s*(.*?);', content, re.VERBOSE | re.DOTALL | re.MULTILINE) if m is not None: pos = 0 - if m[1] is not None: + if m.group(1) is not None: ret += '## Imports:\n' - s = m[1] + s = m.group(1) for fm in re.finditer(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', s, re.VERBOSE | re.MULTILINE): - imName = fm[2] - for im in re.finditer(r'[^,\s]+', fm[1], 0): + imName = fm.group(2) + for im in re.finditer(r'[^,\s]+', fm.group(1), 0): extTypes[im[0]] = imName+'.md' - ret += ' * **{}** *{}*
\n'.format(imName, re.sub(r'\s+', ' ', fm[3] or '', 0, 0)) + ret += ' * **{}** *{}*
\n'.format(imName, re.sub(r'\s+', ' ', fm.group(3) or '', 0, 0)) ret += parseText(s[pos:fm.start()], 3)+'\n' pos = fm.end() ret += parseText(s[pos:]) @@ -119,25 +97,25 @@ def parseModule(mname, content): # parse types def repl_type (m, doc): - ret = '## {0}\n\n'.format(m[2]) + ret = '## {0}\n\n'.format(m.group(2)) if doc is not None: ret += parseText(doc) + '\n\n' # parse fields and get out fields descriptions - if m[3] is not None: + if m.group(3) is not None: ret += 'Fields:\n' pos = 0 - for fm in re.finditer('^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', m[3], re.VERBOSE | re.MULTILINE | re.DOTALL): - if fm[2] is not None: - f = fm[1].strip() - t = fm[2].strip() + for fm in re.finditer('^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', m.group(3), re.VERBOSE | re.MULTILINE | re.DOTALL): + if fm.group(2) is not None: + f = fm.group(1).strip() + t = fm.group(2).strip() if re.match('^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT', t, re.VERBOSE|re.MULTILINE) is not None: - ret += '* {0} **{1}** {2}
\n'.format(f, t, fm[3] or '') + ret += '* {0} **{1}** {2}
\n'.format(f, t, fm.group(3) or '') else: - ret += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), fm[3] or '') + ret += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), fm.group(3) or '') ret += parseText(fm.string[pos:fm.start()], 3) pos = fm.end() - return ret + '```asn1\n' + re.sub(r'^\s*--.*\n', '', m[1].strip(), 0, re.MULTILINE) +'\n```\n\n' + return ret + '```asn1\n' + re.sub(r'^\s*--.*\n', '', m.group(1).strip(), 0, re.MULTILINE) +'\n```\n\n' pos = 0 for m in RE_TYPE.finditer(content[cpos:]): @@ -153,13 +131,14 @@ def parseAsn(outDir, content) : RE_MODULE=re.compile(r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) cnt = 0 for m in RE_MODULE.finditer(content): - ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m[1], re.sub(r'\s+', ' ', m[2])) + ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), re.sub(r'\s+', ' ', m.group(2))) ret += parseText(content[pos:m.start()]) + '\n' - if m[3] is not None: - ret += parseModule(m[1], m[3]) + if m.group(3) is not None: + ret += parseModule(m.group(1), m.group(3)) ret += '\n\n' - open(outDir + '/' + m[1] + '.md', "w").write(ret) + open(outDir + '/' + m.group(1) + '.md', "w").write(ret) pos = m.end() + cnt += 1 return cnt def main(): -- GitLab From 9caeb2923f5d74c3b69fa1d6a7a3a155b6332b5b Mon Sep 17 00:00:00 2001 From: wetterwald Date: Tue, 11 May 2021 11:59:29 +0200 Subject: [PATCH 10/85] Update IMZM-PDU-Descriptions.asn with comments from the remote consensus --- IMZM-PDU-Descriptions.asn | 540 +++++++++++++++++++------------------- 1 file changed, 270 insertions(+), 270 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 6e99718..e5c07d3 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,270 +1,270 @@ ---! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 ---! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - -IMZM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) -} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS ---! @brief Include ETSI TS 102 894-2 ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn -ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -ts (102894) cdd (2) version (2) -} - ---! brief Include ETSI EN 302 637-2 ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn -BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -en (302637) cam (2) version (2) -} - ---! @brief Include ETSI TS 103 300-3 ---! This is temporary ---! Import from VAM-Temp-Imports will be changed to CDD ETSI TS 102 894-2 Release 2 when available ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn -AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { -itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) -ts(103300) temp-imports(255) version1(1) -} -; - ---! @defgroup IMZM Interference Management Zone Message ---! @{ - ---! @brief DF- Interference Management Zone Message Root ---! This DF includes DEs for the IMZM protocolVersion, the IMZ message type identifier _messageID_ ---! and the station identifier _stationID_ of the originating ITS-S. -IMZM ::= SEQUENCE { - --! @details header - --! The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving - --! ITS-S. For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. - --! The DE _messageID_ shall be harmonized with other V2X message identifier definitions. - --! For IMZM, the DE messageID shall be set to @todo imzm(15). - header ItsPduHeader, - imzm InterferenceManagementZoneMessage -} - ---! @brief DF- Interference Management Zone Message ---! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable ---! containers of type _BasicContainer_ and _ImzmContainer_. -InterferenceManagementZoneMessage ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions - imzmParameters ImzmParameters -} - ---! @brief DF- IMZM Parameters ---! The sequence of containers in the IMZM. Other containers may be added in the future. -ImzmParameters ::= SEQUENCE { - --! @details basicContainer - --! imported from CAM-PDU-Descriptions - basicContainer BasicContainer, - --! @details imzmContainer - --! container specific to the IMZM - imzmContainer ImzmContainer, - ... -} - ---! @brief DF- IMZM Container ---! The IMZM container includes a sequence of up to 16 interference management communication zones. ---! For each interference management communication zones, it contains a sequence of interference ---! management zones per channel together with their characteristics. -ImzmContainer ::= SEQUENCE { - --! @details interferenceManagementZones - --! mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 - interferenceManagementZones InterferenceManagementZones, - ... -} - ---! @brief DF- InterferenceManagementZones ---! A list of up to 16 interference management communication zones. ---! EXAMPLE: An interference management communication zone may be defined around a ---! CEN DSRC road side equipment or an urban rail operational area. ---! @category: Infrastructure information, Communication information -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone - ---! @brief DF- InterferenceManagementZone ---! describes a zone of interferenceManagement inside which the ITS communication should ---! be restricted. ---! @category: Infrastructure information, Communication information -InterferenceManagementZone ::= SEQUENCE { - zoneDefinition ZoneDefinition, - interferenceManagementInfo InterferenceManagementInfo -} - ---! @brief DF- ZoneDefinition ---! describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. ---! @category: Infrastructure information, Communication information -ZoneDefinition::= SEQUENCE{ - --! @details interferenceManagementZoneLatitude - --! Latitude of the centre point of the interference management zone. - interferenceManagementZoneLatitude Latitude, --! from ITS-Container - --! @details interferenceManagementZoneLongitude - --! Longitude of the centre point of the interference management zone. - interferenceManagementZoneLongitude Longitude, --! from ITS-Container - --! @details interferenceManagementZoneRadius - --! Radius of the interference management zone in metres. - --! This DE is present if the data is available - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - --! @details interferenceManagementZoneID - --! Identification of the interference management zone. - --! This DE is present if the data is available. - interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container - --! @details interferenceManagementZoneShape - --! Shape of the interference management zone. - --! This DF is present if the data is available. - interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, - ... -} - ---! @brief DF- Interference Management Info ---! A list of up to 16 definitions of which interference management may be applied in the zone, ---! per affected frequency channels. ---! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated ---! by the value of interferenceManagementMitigationType set to unavailable. ---! @category: Infrastructure information, Communication information -InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel - ---! @brief DF- InterferenceManagementInfoPerChannel ---! A break up of the interference management information per affected frequency channels. ---! @category: Infrastructure information, Communication information -InterferenceManagementInfoPerChannel ::= SEQUENCE { - --! @details interferenceManagementChannel - --! Characteritics of the frequency channel for which the zone - --! should be applied interference management - interferenceManagementChannel InterferenceManagementChannel, - --! @details interferenceManagementZoneType - --! Type of the interference management zone. - interferenceManagementZoneType InterferenceManagementZoneType, - --! @details interferenceManagementMitigationType - --! Type of the mitigation to be used in the interference management zone. - interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - --! @details expiryTime - --! Time at which the validity of the interference management communication zone will expire. - --! This DE is present when the interference management is temporarily valid - expiryTime TimestampIts OPTIONAL, --! from ITS-Container - ... -} - ---! @brief DF- InterferenceManagementChannel ---! indicates which shared frequency channel should be applied interference management in the zone. ---! @category: Communication information -InterferenceManagementChannel ::= SEQUENCE { - --! @details centre frequency of the channel - --! @unit: 10exp+2 Hz (where exp is exponent) - centreFrequency INTEGER (1 .. 99999), - --! @details width of the channel - --! @unit: 10exp Hz (where exp is exponent) - channelWidth INTEGER (0 .. 9999), - --! @details exponent of the power of 10 - --! @unit: MHz - exponent INTEGER (0 .. 15) -} - ---! @brief DE- InterferenceManagementZoneType ---! DE that defines the type of an interference management zone, so that an ITS-S can ---! assert the actions to do while passing by such zone (e.g. reduce the transmit ---! power in case of a DSRC tolling station). ---! @unit: N/A ---! @category: Communication information -InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 - temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 - unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling - urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 - satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 - fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 - ... -} - ---! @brief DF- Mitigation type in the interference management zone ---! Information and commands defining the required mitigation type the ---! receiving ITS-S has to use in the defined interference management zone. ---! It indicates the type of mitigation and the parameters to be used to protect the ---! potential victim in the interference management zone per channel access technology class. ---! @category: Communication information -InterferenceManagementMitigationType ::= SEQUENCE { - --! @details Default value to be used when data is not available. - unavailable BOOLEAN OPTIONAL, - mitigationForTechnologies MitigationForTechnologies -} - ---! @brief DF- Mitigation type container for the different channel access technology classes ---! Class of parameters for the relevant channel access technology classes, ---! as specified in ETSI TS 103 724, clause 7. ---! @category: Communication information -MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass - ---! @brief DF- Mitigation type container per channel access technology class ---! Class of parameters for the specific technology indicated in the container. ---! All parameters are optional, as they may not apply to some of the technologies or ---! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. ---! @category: Communication information -MitigationPerTechnologyClass ::= SEQUENCE { - --! @details channel access technology in which this mitigation is applied. - --! @unit: N/A - accessTechnologyClass AccessTechnologyClass, - --! @details duty cycle limit. - --! @unit: 0.01% steps - lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - --! @details power reduction. - --! @unit: dB - powerReduction INTEGER (0 .. 30) OPTIONAL, - --! @details Idle time limit as defined in ETSI TS 103 175. - --! @unit: ms - dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - --! @details Transmission duration limit, as defined in ETSI EN 302 571. - --! @unit: ms - dmcTonLimit INTEGER (0 .. 20) OPTIONAL, - ... -} - ---! @brief DE- channel access technology class ---! Access technology to which the mitigation type applies. ---! @category: Communication information -AccessTechnologyClass ::= ENUMERATED { - unavailable(0), --! default value. - itsg5Class(1), --! ITS-G5 access technology class. - ltev2xClass(2), --! LTE-V2X access technology class. - nrv2xClass(3), --! NR-V2X access technology class. - ... -} - ---! @brief DF- Shape of the interference management zone ---! Bounding box of an interference management zone ---! @category: GeoReference information -InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, --! imported from VAM-Temp-Imports - circle AreaCircular, --! imported from VAM-Temp-Imports - polygon AreaPolygon, --! imported from VAM-Temp-Imports - ellipse AreaEllipse, --! could not be imported from another specification yet - ... -} - ---! @brief DF- Area Ellipse ---! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. ---! Describes an elliptical area. The ellipse is centred about the reference point ---! of the ITS-S or about the nodeCenterPoint (if provided). ---! @category: GeoReference information -AreaEllipse ::= SEQUENCE { - --! @details nodeCenterPoint - --! Optional offset point about which the ellipse is centred with respect to the reference - --! position of the ITS-S. - nodeCenterPoint OffsetPoint OPTIONAL, - --! @details semiMajorRangeLength - --! Minor radius of the ellipse. - semiMajorRangeLength SemiRangeLength, - --! @details semiMinorRangeLength - --! Major radius of the ellipse. - semiMinorRangeLength SemiRangeLength, - --! @details semiMajorRangeOrientation - --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. - semiMajorRangeOrientation WGS84AngleValue -} ---! @} -END +--! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 +--! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + +IMZM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS +--! @brief Include ETSI TS 102 894-2 +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn +ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) +ts (102894) cdd (2) version (2) +} + +--! brief Include ETSI EN 302 637-2 +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn +BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) +en (302637) cam (2) version (2) +} + +--! @brief Include ETSI TS 103 300-3 +--! This is temporary +--! Import from VAM-Temp-Imports will be changed to CDD ETSI TS 102 894-2 Release 2 when available +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { +itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) +ts(103300) temp-imports(255) version1(1) +} +; + +--! @defgroup IMZM Interference Management Zone Message +--! @{ + +--! @brief DF- Interference Management Zone Message Root +--! This DF includes DEs for the IMZM protocolVersion, the IMZ message type identifier _messageID_ +--! and the station identifier _stationID_ of the originating ITS-S. +IMZM ::= SEQUENCE { + --! @details header + --! The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving + --! ITS-S. For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. + --! The DE _messageID_ shall be harmonized with other V2X message identifier definitions. + --! For IMZM, the DE messageID shall be set to imzm(15). + header ItsPduHeader, + imzm InterferenceManagementZoneMessage +} + +--! @brief DF- Interference Management Zone Message +--! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable +--! containers of type _BasicContainer_ and _ImzmContainer_. +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions + imzmParameters ImzmParameters +} + +--! @brief DF- IMZM Parameters +--! The sequence of containers in the IMZM. Other containers may be added in the future. +ImzmParameters ::= SEQUENCE { + --! @details basicContainer + --! imported from CAM-PDU-Descriptions + basicContainer BasicContainer, + --! @details imzmContainer + --! container specific to the IMZM + imzmContainer ImzmContainer, + ... +} + +--! @brief DF- IMZM Container +--! The IMZM container includes a sequence of up to 16 interference management zones. +--! For each interference management zones, it contains a sequence of interference +--! management zones per channel together with their characteristics. +ImzmContainer ::= SEQUENCE { + --! @details interferenceManagementZones + --! mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 + interferenceManagementZones InterferenceManagementZones, + ... +} + +--! @brief DF- InterferenceManagementZones +--! A list of up to 16 interference management zones. +--! EXAMPLE: An interference management communication zone may be defined around a +--! CEN DSRC road side equipment or an urban rail operational area. +--! @category: Infrastructure information, Communication information +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone + +--! @brief DF- InterferenceManagementZone +--! describes a zone of interferenceManagement inside which the ITS communication should +--! be restricted. +--! @category: Infrastructure information, Communication information +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo +} + +--! @brief DF- ZoneDefinition +--! describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! @category: Infrastructure information, Communication information +ZoneDefinition::= SEQUENCE{ + --! @details interferenceManagementZoneLatitude + --! Latitude of the centre point of the interference management zone. + interferenceManagementZoneLatitude Latitude, --! from ITS-Container + --! @details interferenceManagementZoneLongitude + --! Longitude of the centre point of the interference management zone. + interferenceManagementZoneLongitude Longitude, --! from ITS-Container + --! @details interferenceManagementZoneRadius + --! Radius of the interference management zone in metres. + --! This DE is present if the data is available + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container + --! @details interferenceManagementZoneID + --! Identification of the interference management zone. + --! This DE is present if the data is available. + interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container + --! @details interferenceManagementZoneShape + --! Shape of the interference management zone. + --! This DF is present if the data is available. + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... +} + +--! @brief DF- Interference Management Info +--! A list of up to 16 definitions of which interference management may be applied in the zone, +--! per affected frequency channels. +--! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated +--! by the value of interferenceManagementMitigationType set to unavailable. +--! @category: Infrastructure information, Communication information +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel + +--! @brief DF- InterferenceManagementInfoPerChannel +--! A break up of the interference management information per affected frequency channels. +--! @category: Infrastructure information, Communication information +InterferenceManagementInfoPerChannel ::= SEQUENCE { + --! @details interferenceManagementChannel + --! Characteritics of the frequency channel for which the zone + --! should be applied interference management + interferenceManagementChannel InterferenceManagementChannel, + --! @details interferenceManagementZoneType + --! Type of the interference management zone. + interferenceManagementZoneType InterferenceManagementZoneType, + --! @details interferenceManagementMitigationType + --! Type of the mitigation to be used in the interference management zone. + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + --! @details expiryTime + --! Time at which the validity of the interference management communication zone will expire. + --! This DE is present when the interference management is temporarily valid + expiryTime TimestampIts OPTIONAL, --! from ITS-Container + ... +} + +--! @brief DF- InterferenceManagementChannel +--! indicates which shared frequency channel should be applied interference management in the zone. +--! @category: Communication information +InterferenceManagementChannel ::= SEQUENCE { + --! @details centre frequency of the channel + --! @unit: 10exp+2 Hz (where exp is exponent) + centreFrequency INTEGER (1 .. 99999), + --! @details width of the channel + --! @unit: 10exp Hz (where exp is exponent) + channelWidth INTEGER (0 .. 9999), + --! @details exponent of the power of 10 + --! @unit: N/A + exponent INTEGER (0 .. 15) +} + +--! @brief DE- InterferenceManagementZoneType +--! DE that defines the type of an interference management zone, so that an ITS-S can +--! assert the actions to do while passing by such zone (e.g. reduce the transmit +--! power in case of a DSRC tolling station). +--! @unit: N/A +--! @category: Communication information +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 + temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 + unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling + urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 + satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 + fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 + ... +} + +--! @brief DF- Mitigation type in the interference management zone +--! Information and commands defining the required mitigation type the +--! receiving ITS-S has to use in the defined interference management zone. +--! It indicates the type of mitigation and the parameters to be used to protect the +--! potential victim in the interference management zone per channel access technology class. +--! @category: Communication information +InterferenceManagementMitigationType ::= CHOICE { + --! @details Default value to be used when data is not available. + unavailable BOOLEAN OPTIONAL, + mitigationForTechnologies MitigationForTechnologies +} + +--! @brief DF- Mitigation type container for the different channel access technology classes +--! Class of parameters for the relevant channel access technology classes, +--! as specified in ETSI TS 103 724, clause 7. +--! @category: Communication information +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass + +--! @brief DF- Mitigation type container per channel access technology class +--! Class of parameters for the specific technology indicated in the container. +--! All parameters are optional, as they may not apply to some of the technologies or +--! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. +--! @category: Communication information +MitigationPerTechnologyClass ::= SEQUENCE { + --! @details channel access technology in which this mitigation is applied. + --! @unit: N/A + accessTechnologyClass AccessTechnologyClass, + --! @details duty cycle limit. + --! @unit: 0.01% steps + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + --! @details power reduction. + --! @unit: dB + powerReduction INTEGER (0 .. 30) OPTIONAL, + --! @details Idle time limit as defined in ETSI TS 103 175. + --! @unit: ms + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + --! @details Transmission duration limit, as defined in ETSI EN 302 571. + --! @unit: ms + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} + +--! @brief DE- channel access technology class +--! Access technology to which the mitigation type applies. +--! @category: Communication information +AccessTechnologyClass ::= ENUMERATED { + any(0), --! any access technology class (see clause 7 of TS 103 724). + itsg5Class(1), --! ITS-G5 access technology class. + ltev2xClass(2), --! LTE-V2X access technology class. + nrv2xClass(3), --! NR-V2X access technology class. + ... +} + +--! @brief DF- Shape of the interference management zone +--! Bounding box of an interference management zone +--! @category: GeoReference information +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, --! imported from VAM-Temp-Imports + circle AreaCircular, --! imported from VAM-Temp-Imports + polygon AreaPolygon, --! imported from VAM-Temp-Imports + ellipse AreaEllipse, --! could not be imported from another specification yet + ... +} + +--! @brief DF- Area Ellipse +--! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. +--! Describes an elliptical area. The ellipse is centred about the reference point +--! of the ITS-S or about the nodeCenterPoint (if provided). +--! @category: GeoReference information +AreaEllipse ::= SEQUENCE { + --! @details nodeCenterPoint + --! Optional offset point about which the ellipse is centred with respect to the reference + --! position of the ITS-S. + nodeCenterPoint OffsetPoint OPTIONAL, + --! @details semiMajorRangeLength + --! Minor radius of the ellipse. + semiMajorRangeLength SemiRangeLength, + --! @details semiMinorRangeLength + --! Major radius of the ellipse. + semiMinorRangeLength SemiRangeLength, + --! @details semiMajorRangeOrientation + --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. + semiMajorRangeOrientation WGS84AngleValue +} +--! @} +END -- GitLab From ec3669a44e0eed5a7e0b9b773cdff6c053e353ce Mon Sep 17 00:00:00 2001 From: wetterwald Date: Tue, 11 May 2021 12:09:53 +0200 Subject: [PATCH 11/85] Update IMZM-PDU-Descriptions.asn added tag for EN 302 637-2 --- IMZM-PDU-Descriptions.asn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index e5c07d3..ef3bada 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -17,7 +17,7 @@ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } ---! brief Include ETSI EN 302 637-2 +--! @brief Include ETSI EN 302 637-2 --! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -- GitLab From d24a74c734da2541610a06ffe2d2c511cc8949cd Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 12:14:36 +0200 Subject: [PATCH 12/85] fix groups[0] in re --- asn2md.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/asn2md.py b/asn2md.py index 205e0b0..3048011 100755 --- a/asn2md.py +++ b/asn2md.py @@ -83,7 +83,7 @@ def parseModule(mname, content): for fm in re.finditer(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', s, re.VERBOSE | re.MULTILINE): imName = fm.group(2) for im in re.finditer(r'[^,\s]+', fm.group(1), 0): - extTypes[im[0]] = imName+'.md' + extTypes[im.group(0)] = imName+'.md' ret += ' * **{}** *{}*
\n'.format(imName, re.sub(r'\s+', ' ', fm.group(3) or '', 0, 0)) ret += parseText(s[pos:fm.start()], 3)+'\n' pos = fm.end() -- GitLab From e12beef3bede98865a0d8f8b4e5bca79067bab27 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 12:17:03 +0200 Subject: [PATCH 13/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 301dbde..8e70648 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,4 +9,4 @@ documentation: - ./*.asn artifacts: paths: - - docs + - docs/* -- GitLab From 09fa93bbe0809d3969554a5cbf1a3ba748bef7da Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 15:40:49 +0200 Subject: [PATCH 14/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e70648..66f9029 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,10 +3,18 @@ image: alpine documentation: - script: mkdir -p docs && python asn2md.py docs `find . -iname '*.asn'` + variables: + GIT_STRATEGY: clone + stage: build + script: + - mkdir -p docs + - python asn2md.py docs `find . -iname '*.asn'` + - git add docs/*.md + - git commit -m "Documentation update" + - git push only: changes: - ./*.asn - artifacts: - paths: - - docs/* +# artifacts: +# paths: +# - docs/* -- GitLab From e28c8b5a1e00961c4a4491ae0415b95424eab53e Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 15:48:42 +0200 Subject: [PATCH 15/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 66f9029..fd9bf26 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,7 @@ documentation: - python asn2md.py docs `find . -iname '*.asn'` - git add docs/*.md - git commit -m "Documentation update" - - git push + - git push origin HEAD:$CI_COMMIT_REF_NAME only: changes: - ./*.asn -- GitLab From 8f81c29a4daa1ef8b8712e2a0164bccce7afa9a6 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 16:26:22 +0200 Subject: [PATCH 16/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fd9bf26..a009096 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,8 @@ documentation: - python asn2md.py docs `find . -iname '*.asn'` - git add docs/*.md - git commit -m "Documentation update" - - git push origin HEAD:$CI_COMMIT_REF_NAME + - git remote rm origin && git remote add origin https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git + - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger only: changes: - ./*.asn -- GitLab From 4a1dd41509d7dd63545051648b6ffd4871634816 Mon Sep 17 00:00:00 2001 From: Gitlab runner Date: Tue, 11 May 2021 17:22:36 +0200 Subject: [PATCH 17/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 550 +++++++++++++++++----------------- 1 file changed, 279 insertions(+), 271 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index cf077b7..c5755d2 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,142 +1,147 @@ -# ASN.1 module IMZM-PDU-Descriptions - OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ - Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - [[TOC]] - -## Imports: - * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn - - * **CAM-PDU-Descriptions** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
- Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn - - * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
- Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
- This is temporary * :
- Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* - -## IMZM - - This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` - and the station identifier `stationID` of the originating ITS-S. - - -Fields: -* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. - For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. - The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. -* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
-```asn1 +# ASN.1 module IMZM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ + Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + + [[TOC]] + +## Imports: + * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + + * **CAM-PDU-Descriptions** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
+ Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + + * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
+ Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
+ This is temporary * :
+ Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* + +## IMZM + + This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` + and the station identifier `stationID` of the originating ITS-S. + + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+ The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. + For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. + The DE `messageID` shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. +* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
+```asn1 IMZM ::= SEQUENCE { header ItsPduHeader, imzm InterferenceManagementZoneMessage -} -``` - -## InterferenceManagementZoneMessage - - This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable - containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). - - -Fields: -* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
-* imzmParameters [**ImzmParameters**](#ImzmParameters)
-```asn1 +} +``` + +## InterferenceManagementZoneMessage + + This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable + containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). + + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* imzmParameters [**ImzmParameters**](#ImzmParameters)
+```asn1 InterferenceManagementZoneMessage ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions imzmParameters ImzmParameters -} -``` - -## ImzmParameters - - The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. - - -Fields: -* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
- imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) -* imzmContainer [**ImzmContainer**](#ImzmContainer)
- container specific to the [**IMZM**](#IMZM) -```asn1 +} +``` + +## ImzmParameters + + The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. + + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+ imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) +* imzmContainer [**ImzmContainer**](#ImzmContainer)
+ container specific to the [**IMZM**](#IMZM) +```asn1 ImzmParameters ::= SEQUENCE { basicContainer BasicContainer, imzmContainer ImzmContainer, ... -} -``` - -## ImzmContainer - - The IMZM container includes a sequence of up to 16 interference management communication zones. - For each interference management communication zones, it contains a sequence of interference - management zones per channel together with their characteristics. - - -Fields: -* interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
- Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 -```asn1 +} +``` + +## ImzmContainer + + The IMZM container includes a sequence of up to 16 interference management communication zones. + For each interference management communication zones, it contains a sequence of interference + management zones per channel together with their characteristics. + + +Fields: +* interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
+ Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 +```asn1 ImzmContainer ::= SEQUENCE { interferenceManagementZones InterferenceManagementZones, ... -} -``` - -## InterferenceManagementZones - - A list of up to 16 interference management communication zones. - > EXAMPLE: An interference management communication zone may be defined around a - > CEN DSRC road side equipment or an urban rail operational area. - @category: Infrastructure information, Communication information - - -```asn1 -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone -``` - -## InterferenceManagementZone - - Describes a zone of interferenceManagement inside which the ITS communication should - be restricted. - @category: Infrastructure information, Communication information - - -Fields: -* zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
-* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
-```asn1 +} +``` + +## InterferenceManagementZones + + A list of up to 16 interference management communication zones. + + > EXAMPLE: An interference management communication zone may be defined around a + > CEN DSRC road side equipment or an urban rail operational area. + + @category: Infrastructure information, Communication information + + +```asn1 +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone +``` + +## InterferenceManagementZone + + Describes a zone of interferenceManagement inside which the ITS communication should + be restricted. + + @category: Infrastructure information, Communication information + + +Fields: +* zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
+* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
+```asn1 InterferenceManagementZone ::= SEQUENCE { zoneDefinition ZoneDefinition, interferenceManagementInfo InterferenceManagementInfo -} -``` - -## ZoneDefinition - - Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. - @category: Infrastructure information, Communication information - - -Fields: -* interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
- Latitude of the centre point of the interference management zone. -* interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
- from ITS-Container - Longitude of the centre point of the interference management zone. -* interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
- from ITS-Container - Radius of the interference management zone in metres. -* interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
- from ITS-Container - Identification of the interference management zone. -* interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
- from ITS-Container - Shape of the interference management zone. -```asn1 +} +``` + +## ZoneDefinition + + Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + + @category: Infrastructure information, Communication information + + +Fields: +* interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+ Latitude of the centre point of the interference management zone. +* interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+ from ITS-Container + Longitude of the centre point of the interference management zone. +* interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+ from ITS-Container + Radius of the interference management zone in metres. +* interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+ from ITS-Container + Identification of the interference management zone. +* interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
+ from ITS-Container + Shape of the interference management zone. +```asn1 ZoneDefinition::= SEQUENCE{ interferenceManagementZoneLatitude Latitude, --! from ITS-Container interferenceManagementZoneLongitude Longitude, --! from ITS-Container @@ -144,79 +149,81 @@ ZoneDefinition::= SEQUENCE{ interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, ... -} -``` - -## InterferenceManagementInfo - - A list of up to 16 definitions of which interference management may be applied in the zone, - per affected frequency channels. - NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated - by the value of interferenceManagementMitigationType set to unavailable. - @category: Infrastructure information, Communication information - - -```asn1 -InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel -``` - -## InterferenceManagementInfoPerChannel - - A break up of the interference management information per affected frequency channels. - @category: Infrastructure information, Communication information - - -Fields: -* interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
- Characteritics of the frequency channel for which the zone should be applied interference management -* interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
- Type of the interference management zone. -* interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
- Type of the mitigation to be used in the interference management zone. -* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
- Time at which the validity of the interference management communication zone will expire. - > The `expiryTime` DE is present when the interference management is temporarily valid. -```asn1 +} +``` + +## InterferenceManagementInfo + + A list of up to 16 definitions of which interference management may be applied in the zone, + per affected frequency channels. + NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated + by the value of interferenceManagementMitigationType set to unavailable. + @category: Infrastructure information, Communication information + + +```asn1 +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel +``` + +## InterferenceManagementInfoPerChannel + + A break up of the interference management information per affected frequency channels. + + @category: Infrastructure information, Communication information + + +Fields: +* interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
+ Characteritics of the frequency channel for which the zone should be applied interference management +* interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
+ Type of the interference management zone. +* interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
+ Type of the mitigation to be used in the interference management zone. +* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+ Time at which the validity of the interference management communication zone will expire. + > The `expiryTime` DE is present when the interference management is temporarily valid. +```asn1 InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementChannel InterferenceManagementChannel, interferenceManagementZoneType InterferenceManagementZoneType, interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, expiryTime TimestampIts OPTIONAL, --! from ITS-Container ... -} -``` - -## InterferenceManagementChannel - - Indicates which shared frequency channel should be applied interference management in the zone. - @category: Communication information - - -Fields: -* centreFrequency **INTEGER** (1 .. 99999)
- Center of the channel frequency in 10exp+2 Hz (where exp is exponent) -* channelWidth **INTEGER** (0 .. 9999)
- Width of the channel frequence band in 10exp Hz (where exp is exponent) -* exponent **INTEGER** (0 .. 15)
- Exponent of the power of 10 in Mhz -```asn1 +} +``` + +## InterferenceManagementChannel + + Indicates which shared frequency channel should be applied interference management in the zone. + + @category: Communication information + + +Fields: +* centreFrequency **INTEGER** (1 .. 99999)
+ Center of the channel frequency in 10exp+2 Hz (where exp is exponent) +* channelWidth **INTEGER** (0 .. 9999)
+ Width of the channel frequence band in 10exp Hz (where exp is exponent) +* exponent **INTEGER** (0 .. 15)
+ Exponent of the power of 10 in Mhz +```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), channelWidth INTEGER (0 .. 9999), exponent INTEGER (0 .. 15) -} -``` - -## InterferenceManagementZoneType - - This DE defines the type of an interference management zone, so that an ITS-S can - assert the actions to do while passing by such zone (e.g. reduce the transmit - power in case of a DSRC tolling station).
- @category: Communication information - - -Fields: -```asn1 +} +``` + +## InterferenceManagementZoneType + + This DE defines the type of an interference management zone, so that an ITS-S can + assert the actions to do while passing by such zone (e.g. reduce the transmit + power in case of a DSRC tolling station).
+ @category: Communication information + + +Fields: +```asn1 InterferenceManagementZoneType ::= ENUMERATED { permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 @@ -225,63 +232,64 @@ InterferenceManagementZoneType ::= ENUMERATED { satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 ... -} -``` - -## InterferenceManagementMitigationType - - This DE defines the mitigation type in the interference management zone. - Information and commands defining the required mitigation type the - receiving ITS-S has to use in the defined interference management zone. - It indicates the type of mitigation and the parameters to be used to protect the - potential victim in the interference management zone per channel access technology class. - @category: Communication information - - -Fields: -* unavailable **BOOLEAN** OPTIONAL
- Default value to be used when data is not available -* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
-```asn1 +} +``` + +## InterferenceManagementMitigationType + + This DE defines the mitigation type in the interference management zone. + + Information and commands defining the required mitigation type the + receiving ITS-S has to use in the defined interference management zone. + It indicates the type of mitigation and the parameters to be used to protect the + potential victim in the interference management zone per channel access technology class. + @category: Communication information + + +Fields: +* unavailable **BOOLEAN** OPTIONAL
+ Default value to be used when data is not available +* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
+```asn1 InterferenceManagementMitigationType ::= SEQUENCE { unavailable BOOLEAN OPTIONAL, mitigationForTechnologies MitigationForTechnologies -} -``` - -## MitigationForTechnologies - - This DE defines the mitigation type container for the different channel access technology classes.
- Class of parameters for the relevant channel access technology classes, - as specified in ETSI TS 103 724, clause 7. - @category: Communication information - - -```asn1 -MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass -``` - -## MitigationPerTechnologyClass - - This DE defines the mitigation type container per channel access technology class
- Class of parameters for the specific technology indicated in the container. - All parameters are optional, as they may not apply to some of the technologies or - interference management zone types. Specification details are in ETSI TS 103 724, clause 7. - @category: Communication information - - -Fields: -* accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
- Channel access technology in which this mitigation is applied. -* lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
- Duty cycle limit in 0.01% steps -* powerReduction **INTEGER** (0 .. 30) OPTIONAL
- Power reduction in dB -* dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
- Idle time limit in ms as defined in ETSI TS 103 175. -* dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
- Transmission duration limit in ms, as defined in ETSI EN 302 571. -```asn1 +} +``` + +## MitigationForTechnologies + + This DE defines the mitigation type container for the different channel access technology classes.
+ Class of parameters for the relevant channel access technology classes, + as specified in ETSI TS 103 724, clause 7. + @category: Communication information + + +```asn1 +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass +``` + +## MitigationPerTechnologyClass + + This DE defines the mitigation type container per channel access technology class
+ Class of parameters for the specific technology indicated in the container. + All parameters are optional, as they may not apply to some of the technologies or + interference management zone types. Specification details are in ETSI TS 103 724, clause 7. + @category: Communication information + + +Fields: +* accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
+ Channel access technology in which this mitigation is applied. +* lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
+ Duty cycle limit in 0.01% steps +* powerReduction **INTEGER** (0 .. 30) OPTIONAL
+ Power reduction in dB +* dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
+ Idle time limit in ms as defined in ETSI TS 103 175. +* dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
+ Transmission duration limit in ms, as defined in ETSI EN 302 571. +```asn1 MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, @@ -289,46 +297,46 @@ MitigationPerTechnologyClass ::= SEQUENCE { dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, dmcTonLimit INTEGER (0 .. 20) OPTIONAL, ... -} -``` - -## AccessTechnologyClass - - Access technology to which the mitigation type applies. - @category: Communication information - - -Fields: -```asn1 +} +``` + +## AccessTechnologyClass + + Access technology to which the mitigation type applies. + @category: Communication information + + +Fields: +```asn1 AccessTechnologyClass ::= ENUMERATED { unavailable(0), itsg5Class(1), ltev2xClass(2), nrv2xClass(3), ... -} -``` - -## InterferenceManagementZoneShape - - Shape of the interference management zone. - @category: GeoReference information - - -Fields: -* rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
-* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
-* polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
-* ellipse [**AreaEllipse**](#AreaEllipse)
-```asn1 +} +``` + +## InterferenceManagementZoneShape + + Shape of the interference management zone. + @category: GeoReference information + + +Fields: +* rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
+* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
+* polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
+* ellipse [**AreaEllipse**](#AreaEllipse)
+```asn1 InterferenceManagementZoneShape::= CHOICE { rectangle AreaRectangle, circle AreaCircular, polygon AreaPolygon, ellipse AreaEllipse, --! could not be imported from another specification yet ... -} -``` - - - +} +``` + + + -- GitLab From cba49d92302c8bae209cf165a27e9eacb04c079a Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 17:56:19 +0200 Subject: [PATCH 18/85] Update .gitlab-ci.yml Try to remove GIT_STRATEGY --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a009096..d2ee488 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,8 +3,8 @@ image: alpine documentation: - variables: - GIT_STRATEGY: clone +# variables: +# GIT_STRATEGY: clone stage: build script: - mkdir -p docs -- GitLab From a7c7c5033f70b8327b19545040033a6e575f81f3 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 18:26:30 +0200 Subject: [PATCH 19/85] fix Categories parse --- asn2md.py | 92 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/asn2md.py b/asn2md.py index 3048011..3066f36 100755 --- a/asn2md.py +++ b/asn2md.py @@ -5,67 +5,70 @@ import argparse # parse arguments import os.path # getting extension from file import sys # output and stuff import re # for regular expressions +import urllib # ## extract doxygen-tag namespace -RE_MODULE = re.compile( - r'^(\w[\w-]*)[\s{](?:.|\n)*DEFINITIONS(?:.|\n)*::=\s*BEGIN' - , re.IGNORECASE | re.VERBOSE | re.DOTALL | re.MULTILINE) -RE_EXPORTS = re.compile( - r'^\s*EXPORTS .*?;' - , re.VERBOSE | re.DOTALL | re.MULTILINE) +RE_MODULE = re.compile( r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) -RE_IMPORTS = re.compile( - r'^\s*IMPORTS .*?;' - , re.VERBOSE | re.DOTALL | re.MULTILINE) +RE_SPACES = re.compile(r'\s+') -RE_END = re.compile( - r'^\s*END\s*$' - , re.VERBOSE | re.MULTILINE) +RE_COMMENTS = re.compile(r'^\s*--.*\n', re.MULTILINE) -RE_DOXY_COMMENTS = re.compile( - r'^\s*--[-#!]\s' - , re.VERBOSE | re.MULTILINE) +RE_BASIC_TYPES = re.compile(r'^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT') -RE_DOXY_C_COMMENTS = re.compile( - r'^\s*/\*\*\s(.*?)\*/' - , re.VERBOSE | re.MULTILINE | re.DOTALL) +RE_FIELDS = re.compile(r'^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', re.MULTILINE | re.DOTALL) -RE_COMMENT = re.compile( - r'--.*?(?:--|\n)' - , re.VERBOSE | re.MULTILINE) +RE_EXPORTS = re.compile(r'^\s*EXPORTS.*?;', re.DOTALL | re.MULTILINE) -RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{(.*?)})?.*?)\n\s*\n' - , re.VERBOSE | re.MULTILINE | re.DOTALL) +RE_IMPORTS = re.compile(r'^\s*IMPORTS\s*(.*?);', re.DOTALL | re.MULTILINE) -extTypes = {} +RE_IMPORT_ELEMENTS = re.compile(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', re.MULTILINE) + +RE_IMPORT_ELEMENT_TYPE = re.compile(r'[^,\s]+') + +RE_DOXY_COMMENTS = re.compile(r'^\s*--[-!#](:?$|\s(.*))', re.MULTILINE) + +RE_DOXY_C_COMMENTS = re.compile(r'^\s*/\*\*\s(.*?)\*/', re.MULTILINE | re.DOTALL) + +RE_DOXY_C_COMMENTS_I = re.compile(r'\s*\*') -def indentString(s, indent): - lines = s.splitlines() - s = '' - for c in lines: - s += ''.ljust(indent, ' ') + c + '\n' - return s +RE_DOXY_REF = re.compile(r'@ref\s+([\w-]+)') +RE_DOXY_CLASS = re.compile(r'@class\s+([\w-]+)') +RE_DOXY_BRIEF = re.compile(r'@brief\s+') + +RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{(.*?)})?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) + +extTypes = {} def parseText(content, indent=None): # we need to keep only documenting text under the /** */ and --! - c = re.sub(r'^\s*--[-!#](:?$|(.*))', '/** \g<1>*/', content, 0, re.MULTILINE) + # convert --! comments to C-style ones + c = RE_DOXY_COMMENTS.sub(r'/** \g<1>*/', content) if c is not None: content = c ret = '' for m in RE_DOXY_C_COMMENTS.finditer(content): lines = m.group(1).splitlines() for l in lines: - l = re.sub(r'\s*\*', '', l, 1).rstrip() + l = RE_DOXY_C_COMMENTS_I.sub('', l, 1).rstrip() ret += ''.ljust(indent or 0) + l + '\n' def repl_ref(m): return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) - c = re.sub(r'@ref\s+([\w-]+)', repl_ref, ret, 0, re.VERBOSE | re.MULTILINE) + c = RE_DOXY_REF.sub(repl_ref, ret) + if c is not None: + ret = c + c = RE_DOXY_CLASS.sub('', ret) if c is not None: ret = c - c = re.sub(r'@class\s+([\w-]+)', '', ret, 0, re.VERBOSE | re.MULTILINE) + c = RE_DOXY_BRIEF.sub('', ret) if c is not None: ret = c - c = re.sub(r'@brief\s+', '', ret, 0, re.VERBOSE | re.MULTILINE) + def repl_category(m): + ret = '\n    Categories: ' + for l in m.group(1).split(','): + ret += '[{0}](#{1}) '.format(l.strip(), urllib.quote_plus(l.strip())) + return ret + '\n\n' + c = re.sub(r'@category:\s+(.+)', repl_category, ret, re.MULTILINE) if c is not None: ret = c return ret @@ -74,23 +77,23 @@ def parseModule(mname, content): global cpos cpos = 0 ret = '' - m = re.search(r'^\s*IMPORTS\s*(.*?);', content, re.VERBOSE | re.DOTALL | re.MULTILINE) + m = RE_IMPORTS.search(content) if m is not None: pos = 0 if m.group(1) is not None: ret += '## Imports:\n' s = m.group(1) - for fm in re.finditer(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', s, re.VERBOSE | re.MULTILINE): + for fm in RE_IMPORT_ELEMENTS.finditer(s): imName = fm.group(2) - for im in re.finditer(r'[^,\s]+', fm.group(1), 0): + for im in RE_IMPORT_ELEMENT_TYPE.finditer(fm.group(1)): extTypes[im.group(0)] = imName+'.md' - ret += ' * **{}** *{}*
\n'.format(imName, re.sub(r'\s+', ' ', fm.group(3) or '', 0, 0)) + ret += ' * **{}** *{}*
\n'.format(imName, RE_SPACES.sub(' ', fm.group(3) or '')) ret += parseText(s[pos:fm.start()], 3)+'\n' pos = fm.end() ret += parseText(s[pos:]) cpos = m.end() - m = re.search(r'^\s*EXPORTS.*?;', content, re.VERBOSE | re.DOTALL | re.MULTILINE) + m = RE_EXPORTS.search(content) if m is not None: if cpos < m.end(): cpos = m.end() @@ -104,18 +107,18 @@ def parseModule(mname, content): if m.group(3) is not None: ret += 'Fields:\n' pos = 0 - for fm in re.finditer('^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', m.group(3), re.VERBOSE | re.MULTILINE | re.DOTALL): + for fm in RE_FIELDS.finditer(m.group(3)): if fm.group(2) is not None: f = fm.group(1).strip() t = fm.group(2).strip() - if re.match('^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT', t, re.VERBOSE|re.MULTILINE) is not None: + if RE_BASIC_TYPES.match(t) is not None: ret += '* {0} **{1}** {2}
\n'.format(f, t, fm.group(3) or '') else: ret += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), fm.group(3) or '') ret += parseText(fm.string[pos:fm.start()], 3) pos = fm.end() - return ret + '```asn1\n' + re.sub(r'^\s*--.*\n', '', m.group(1).strip(), 0, re.MULTILINE) +'\n```\n\n' + return ret + '```asn1\n' + RE_COMMENTS.sub('', m.group(1).strip()) +'\n```\n\n' pos = 0 for m in RE_TYPE.finditer(content[cpos:]): @@ -128,10 +131,9 @@ def parseModule(mname, content): def parseAsn(outDir, content) : # iterate modules in the file pos= 0 - RE_MODULE=re.compile(r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) cnt = 0 for m in RE_MODULE.finditer(content): - ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), re.sub(r'\s+', ' ', m.group(2))) + ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), RE_SPACES.sub(' ', m.group(2))) ret += parseText(content[pos:m.start()]) + '\n' if m.group(3) is not None: ret += parseModule(m.group(1), m.group(3)) -- GitLab From 4d7b7efa84cd9b1d3c1e31961505294ba490aa3b Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 18:29:25 +0200 Subject: [PATCH 20/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 471 +++++++++++++++++++------------------- 1 file changed, 236 insertions(+), 235 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 0dbad1b..bc24930 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,235 +1,236 @@ ---! Specification of the Interference Management Zone Message ETSI TS 103 724
---! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ---! ---! [[TOC]] - -IMZM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) -} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - - -IMPORTS ---! Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn -ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -ts (102894) cdd (2) version (2) -} - ---! Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn -BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -en (302637) cam (2) version (2) -} - ---! Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
---! *This is temporary * :
---! *Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* -AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { -itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) -ts(103300) temp-imports(255) version1(1) -} -; - ---! This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` ---! and the station identifier `stationID` of the originating ITS-S. -IMZM ::= SEQUENCE { ---! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. ---! For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. ---! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. ---! For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. - header ItsPduHeader, - imzm InterferenceManagementZoneMessage -} - ---! This is the actual @ref IMZM Payload. It shall include the time stamp of the @ref IMZM and the applicable ---! containers of type @ref BasicContainer and @ref ImzmContainer. -InterferenceManagementZoneMessage ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions - imzmParameters ImzmParameters -} - ---! The sequence of containers in the @ref IMZM. Other containers may be added in the future. -ImzmParameters ::= SEQUENCE { - --! imported from @ref CAM-PDU-Descriptions - basicContainer BasicContainer, - --! container specific to the @ref IMZM - imzmContainer ImzmContainer, - ... -} - ---! The IMZM container includes a sequence of up to 16 interference management communication zones. ---! For each interference management communication zones, it contains a sequence of interference ---! management zones per channel together with their characteristics. -ImzmContainer ::= SEQUENCE { - --! Mapped to the DF @ref ProtectedCommunicationZone in ETSI TS 102 894-2 - interferenceManagementZones InterferenceManagementZones, - ... -} - ---! A list of up to 16 interference management communication zones. ---! ---! > EXAMPLE: An interference management communication zone may be defined around a ---! > CEN DSRC road side equipment or an urban rail operational area. ---! ---! @category: Infrastructure information, Communication information -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone - ---! Describes a zone of interferenceManagement inside which the ITS communication should ---! be restricted. ---! ---! @category: Infrastructure information, Communication information -InterferenceManagementZone ::= SEQUENCE { - zoneDefinition ZoneDefinition, - interferenceManagementInfo InterferenceManagementInfo -} - ---! Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. ---! ---! @category: Infrastructure information, Communication information - -ZoneDefinition::= SEQUENCE{ - --! Latitude of the centre point of the interference management zone. - interferenceManagementZoneLatitude Latitude, --! from ITS-Container - --! Longitude of the centre point of the interference management zone. - interferenceManagementZoneLongitude Longitude, --! from ITS-Container - --! Radius of the interference management zone in metres. - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - --! Identification of the interference management zone. - interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container - --! Shape of the interference management zone. - interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, - ... -} - ---! A list of up to 16 definitions of which interference management may be applied in the zone, ---! per affected frequency channels. ---! NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated ---! by the value of interferenceManagementMitigationType set to unavailable. ---! @category: Infrastructure information, Communication information -InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel - ---! A break up of the interference management information per affected frequency channels. ---! ---! @category: Infrastructure information, Communication information -InterferenceManagementInfoPerChannel ::= SEQUENCE { - --! Characteritics of the frequency channel for which the zone should be applied interference management - interferenceManagementChannel InterferenceManagementChannel, - --! Type of the interference management zone. - interferenceManagementZoneType InterferenceManagementZoneType, - --! Type of the mitigation to be used in the interference management zone. - interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - --! Time at which the validity of the interference management communication zone will expire. - --! > The `expiryTime` DE is present when the interference management is temporarily valid. - expiryTime TimestampIts OPTIONAL, --! from ITS-Container - ... -} - ---! Indicates which shared frequency channel should be applied interference management in the zone. ---! ---! @category: Communication information -InterferenceManagementChannel ::= SEQUENCE { - --! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) - centreFrequency INTEGER (1 .. 99999), - --! Width of the channel frequence band in 10exp Hz (where exp is exponent) - channelWidth INTEGER (0 .. 9999), - --! Exponent of the power of 10 in Mhz - exponent INTEGER (0 .. 15) -} - ---! This DE defines the type of an interference management zone, so that an ITS-S can ---! assert the actions to do while passing by such zone (e.g. reduce the transmit ---! power in case of a DSRC tolling station).
---! @category: Communication information - -InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 - temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 - unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling - urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 - satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 - fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 - ... -} - ---! This DE defines the mitigation type in the interference management zone. ---! ---! Information and commands defining the required mitigation type the ---! receiving ITS-S has to use in the defined interference management zone. ---! It indicates the type of mitigation and the parameters to be used to protect the ---! potential victim in the interference management zone per channel access technology class. ---! @category: Communication information -InterferenceManagementMitigationType ::= SEQUENCE { - --! Default value to be used when data is not available - unavailable BOOLEAN OPTIONAL, - mitigationForTechnologies MitigationForTechnologies -} - ---! This DE defines the mitigation type container for the different channel access technology classes.
---! Class of parameters for the relevant channel access technology classes, ---! as specified in ETSI TS 103 724, clause 7. ---! @category: Communication information -MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass - ---! This DE defines the mitigation type container per channel access technology class
---! Class of parameters for the specific technology indicated in the container. ---! All parameters are optional, as they may not apply to some of the technologies or ---! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. ---! @category: Communication information -MitigationPerTechnologyClass ::= SEQUENCE { - --! Channel access technology in which this mitigation is applied. - accessTechnologyClass AccessTechnologyClass, - --! Duty cycle limit in 0.01% steps - lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - --! Power reduction in dB - powerReduction INTEGER (0 .. 30) OPTIONAL, - --! Idle time limit in ms as defined in ETSI TS 103 175. - dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - --! Transmission duration limit in ms, as defined in ETSI EN 302 571. - dmcTonLimit INTEGER (0 .. 20) OPTIONAL, - ... -} - ---! Access technology to which the mitigation type applies. ---! @category: Communication information -AccessTechnologyClass ::= ENUMERATED { - --! default value. - unavailable(0), - --! ITS-G5 access technology class. - itsg5Class(1), - --! LTE-V2X access technology class. - ltev2xClass(2), - --! NR-V2X access technology class. - nrv2xClass(3), - ... -} - ---! Shape of the interference management zone. ---! @category: GeoReference information -InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, - circle AreaCircular, - polygon AreaPolygon, - ellipse AreaEllipse, --! could not be imported from another specification yet - ... -} - ---! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. ---! Describes an elliptical area. The ellipse is centred about the reference point ---! of the ITS-S or about the nodeCenterPoint (if provided). ---! @category: GeoReference information -AreaEllipse ::= SEQUENCE { - --! Optional offset point about which the ellipse is centred with respect to the reference - --! position of the ITS-S. - nodeCenterPoint OffsetPoint OPTIONAL, - --! Minor radius of the ellipse. - semiMajorRangeLength SemiRangeLength, - --! Major radius of the ellipse. - semiMinorRangeLength SemiRangeLength, - --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. - semiMajorRangeOrientation WGS84AngleValue -} -END +--! Specification of the Interference Management Zone Message ETSI TS 103 724
+--! +--! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 +--! +--! [[TOC]] + +IMZM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + + +IMPORTS +--! Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn +ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) +ts (102894) cdd (2) version (2) +} + +--! Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn +BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) +en (302637) cam (2) version (2) +} + +--! Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
+--! *This is temporary * :
+--! *Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* +AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { +itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) +ts(103300) temp-imports(255) version1(1) +} +; + +--! This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` +--! and the station identifier `stationID` of the originating ITS-S. +IMZM ::= SEQUENCE { +--! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. +--! For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. +--! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. +--! For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. + header ItsPduHeader, + imzm InterferenceManagementZoneMessage +} + +--! This is the actual @ref IMZM Payload. It shall include the time stamp of the @ref IMZM and the applicable +--! containers of type @ref BasicContainer and @ref ImzmContainer. +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions + imzmParameters ImzmParameters +} + +--! The sequence of containers in the @ref IMZM. Other containers may be added in the future. +ImzmParameters ::= SEQUENCE { + --! imported from @ref CAM-PDU-Descriptions + basicContainer BasicContainer, + --! container specific to the @ref IMZM + imzmContainer ImzmContainer, + ... +} + +--! The IMZM container includes a sequence of up to 16 interference management communication zones. +--! For each interference management communication zones, it contains a sequence of interference +--! management zones per channel together with their characteristics. +ImzmContainer ::= SEQUENCE { + --! Mapped to the DF @ref ProtectedCommunicationZone in ETSI TS 102 894-2 + interferenceManagementZones InterferenceManagementZones, + ... +} + +--! A list of up to 16 interference management communication zones. +--! +--! > EXAMPLE: An interference management communication zone may be defined around a +--! > CEN DSRC road side equipment or an urban rail operational area. +--! +--! @category: Infrastructure information, Communication information +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone + +--! Describes a zone of interferenceManagement inside which the ITS communication should +--! be restricted. +--! +--! @category: Infrastructure information, Communication information +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo +} + +--! Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! +--! @category: Infrastructure information, Communication information + +ZoneDefinition::= SEQUENCE{ + --! Latitude of the centre point of the interference management zone. + interferenceManagementZoneLatitude Latitude, --! from ITS-Container + --! Longitude of the centre point of the interference management zone. + interferenceManagementZoneLongitude Longitude, --! from ITS-Container + --! Radius of the interference management zone in metres. + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container + --! Identification of the interference management zone. + interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container + --! Shape of the interference management zone. + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... +} + +--! A list of up to 16 definitions of which interference management may be applied in the zone, +--! per affected frequency channels. +--! NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated +--! by the value of interferenceManagementMitigationType set to unavailable. +--! @category: Infrastructure information, Communication information +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel + +--! A break up of the interference management information per affected frequency channels. +--! +--! @category: Infrastructure information, Communication information +InterferenceManagementInfoPerChannel ::= SEQUENCE { + --! Characteritics of the frequency channel for which the zone should be applied interference management + interferenceManagementChannel InterferenceManagementChannel, + --! Type of the interference management zone. + interferenceManagementZoneType InterferenceManagementZoneType, + --! Type of the mitigation to be used in the interference management zone. + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + --! Time at which the validity of the interference management communication zone will expire. + --! > The `expiryTime` DE is present when the interference management is temporarily valid. + expiryTime TimestampIts OPTIONAL, --! from ITS-Container + ... +} + +--! Indicates which shared frequency channel should be applied interference management in the zone. +--! +--! @category: Communication information +InterferenceManagementChannel ::= SEQUENCE { + --! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + centreFrequency INTEGER (1 .. 99999), + --! Width of the channel frequence band in 10exp Hz (where exp is exponent) + channelWidth INTEGER (0 .. 9999), + --! Exponent of the power of 10 in Mhz + exponent INTEGER (0 .. 15) +} + +--! This DE defines the type of an interference management zone, so that an ITS-S can +--! assert the actions to do while passing by such zone (e.g. reduce the transmit +--! power in case of a DSRC tolling station).
+--! @category: Communication information + +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 + temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 + unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling + urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 + satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 + fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 + ... +} + +--! This DE defines the mitigation type in the interference management zone. +--! +--! Information and commands defining the required mitigation type the +--! receiving ITS-S has to use in the defined interference management zone. +--! It indicates the type of mitigation and the parameters to be used to protect the +--! potential victim in the interference management zone per channel access technology class. +--! @category: Communication information +InterferenceManagementMitigationType ::= SEQUENCE { + --! Default value to be used when data is not available + unavailable BOOLEAN OPTIONAL, + mitigationForTechnologies MitigationForTechnologies +} + +--! This DE defines the mitigation type container for the different channel access technology classes.
+--! Class of parameters for the relevant channel access technology classes, +--! as specified in ETSI TS 103 724, clause 7. +--! @category: Communication information +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass + +--! This DE defines the mitigation type container per channel access technology class
+--! Class of parameters for the specific technology indicated in the container. +--! All parameters are optional, as they may not apply to some of the technologies or +--! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. +--! @category: Communication information +MitigationPerTechnologyClass ::= SEQUENCE { + --! Channel access technology in which this mitigation is applied. + accessTechnologyClass AccessTechnologyClass, + --! Duty cycle limit in 0.01% steps + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + --! Power reduction in dB + powerReduction INTEGER (0 .. 30) OPTIONAL, + --! Idle time limit in ms as defined in ETSI TS 103 175. + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + --! Transmission duration limit in ms, as defined in ETSI EN 302 571. + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} + +--! Access technology to which the mitigation type applies. +--! @category: Communication information +AccessTechnologyClass ::= ENUMERATED { + --! default value. + unavailable(0), + --! ITS-G5 access technology class. + itsg5Class(1), + --! LTE-V2X access technology class. + ltev2xClass(2), + --! NR-V2X access technology class. + nrv2xClass(3), + ... +} + +--! Shape of the interference management zone. +--! @category: GeoReference information +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, --! could not be imported from another specification yet + ... +} + +--! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. +--! Describes an elliptical area. The ellipse is centred about the reference point +--! of the ITS-S or about the nodeCenterPoint (if provided). +--! @category: GeoReference information +AreaEllipse ::= SEQUENCE { + --! Optional offset point about which the ellipse is centred with respect to the reference + --! position of the ITS-S. + nodeCenterPoint OffsetPoint OPTIONAL, + --! Minor radius of the ellipse. + semiMajorRangeLength SemiRangeLength, + --! Major radius of the ellipse. + semiMinorRangeLength SemiRangeLength, + --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. + semiMajorRangeOrientation WGS84AngleValue +} +END -- GitLab From 73e88b6520b90197782c9c39ba52907f44b4eaf6 Mon Sep 17 00:00:00 2001 From: Gitlab runner Date: Tue, 11 May 2021 18:30:11 +0200 Subject: [PATCH 21/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 196 ++++++++++++++++++++-------------- 1 file changed, 113 insertions(+), 83 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index c5755d2..cb37029 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,7 +1,8 @@ # ASN.1 module IMZM-PDU-Descriptions OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ - Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + Specification of the Interference Management Zone Message ETSI TS 103 724
+ Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 [[TOC]] ## Imports: @@ -28,11 +29,11 @@ Fields: For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. The DE `messageID` shall be harmonized with other V2X message identifier definitions. For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. -* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
+* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 -IMZM ::= SEQUENCE { - header ItsPduHeader, - imzm InterferenceManagementZoneMessage +IMZM ::= SEQUENCE { + header ItsPduHeader, + imzm InterferenceManagementZoneMessage } ``` @@ -44,11 +45,11 @@ IMZM ::= SEQUENCE { Fields: * generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
-* imzmParameters [**ImzmParameters**](#ImzmParameters)
+* imzmParameters [**ImzmParameters**](#ImzmParameters)
```asn1 -InterferenceManagementZoneMessage ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions - imzmParameters ImzmParameters +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions + imzmParameters ImzmParameters } ``` @@ -63,10 +64,10 @@ Fields: * imzmContainer [**ImzmContainer**](#ImzmContainer)
container specific to the [**IMZM**](#IMZM) ```asn1 -ImzmParameters ::= SEQUENCE { - basicContainer BasicContainer, - imzmContainer ImzmContainer, - ... +ImzmParameters ::= SEQUENCE { + basicContainer BasicContainer, + imzmContainer ImzmContainer, + ... } ``` @@ -81,20 +82,21 @@ Fields: * interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 ```asn1 -ImzmContainer ::= SEQUENCE { - interferenceManagementZones InterferenceManagementZones, - ... +ImzmContainer ::= SEQUENCE { + interferenceManagementZones InterferenceManagementZones, + ... } ``` ## InterferenceManagementZones A list of up to 16 interference management communication zones. - > EXAMPLE: An interference management communication zone may be defined around a > CEN DSRC road side equipment or an urban rail operational area. + +    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + - @category: Infrastructure information, Communication information ```asn1 @@ -105,25 +107,29 @@ InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagement Describes a zone of interferenceManagement inside which the ITS communication should be restricted. + +    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + - @category: Infrastructure information, Communication information Fields: * zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
-* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
+* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
```asn1 -InterferenceManagementZone ::= SEQUENCE { - zoneDefinition ZoneDefinition, - interferenceManagementInfo InterferenceManagementInfo +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo } ``` ## ZoneDefinition Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + +    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + - @category: Infrastructure information, Communication information Fields: @@ -142,13 +148,13 @@ Fields: from ITS-Container Shape of the interference management zone. ```asn1 -ZoneDefinition::= SEQUENCE{ - interferenceManagementZoneLatitude Latitude, --! from ITS-Container - interferenceManagementZoneLongitude Longitude, --! from ITS-Container - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container - interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, - ... +ZoneDefinition::= SEQUENCE{ + interferenceManagementZoneLatitude Latitude, --! from ITS-Container + interferenceManagementZoneLongitude Longitude, --! from ITS-Container + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container + interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... } ``` @@ -158,7 +164,10 @@ ZoneDefinition::= SEQUENCE{ per affected frequency channels. NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated by the value of interferenceManagementMitigationType set to unavailable. - @category: Infrastructure information, Communication information + +    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + + ```asn1 @@ -168,8 +177,10 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ## InterferenceManagementInfoPerChannel A break up of the interference management information per affected frequency channels. + +    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + - @category: Infrastructure information, Communication information Fields: @@ -183,20 +194,22 @@ Fields: Time at which the validity of the interference management communication zone will expire. > The `expiryTime` DE is present when the interference management is temporarily valid. ```asn1 -InterferenceManagementInfoPerChannel ::= SEQUENCE { - interferenceManagementChannel InterferenceManagementChannel, - interferenceManagementZoneType InterferenceManagementZoneType, - interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - expiryTime TimestampIts OPTIONAL, --! from ITS-Container - ... +InterferenceManagementInfoPerChannel ::= SEQUENCE { + interferenceManagementChannel InterferenceManagementChannel, + interferenceManagementZoneType InterferenceManagementZoneType, + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + expiryTime TimestampIts OPTIONAL, --! from ITS-Container + ... } ``` ## InterferenceManagementChannel Indicates which shared frequency channel should be applied interference management in the zone. + +    Categories: [Communication information](#Communication+information) + - @category: Communication information Fields: @@ -204,13 +217,13 @@ Fields: Center of the channel frequency in 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
Width of the channel frequence band in 10exp Hz (where exp is exponent) -* exponent **INTEGER** (0 .. 15)
+* exponent **INTEGER** (0 .. 15)
Exponent of the power of 10 in Mhz ```asn1 -InterferenceManagementChannel ::= SEQUENCE { - centreFrequency INTEGER (1 .. 99999), - channelWidth INTEGER (0 .. 9999), - exponent INTEGER (0 .. 15) +InterferenceManagementChannel ::= SEQUENCE { + centreFrequency INTEGER (1 .. 99999), + channelWidth INTEGER (0 .. 9999), + exponent INTEGER (0 .. 15) } ``` @@ -219,41 +232,46 @@ InterferenceManagementChannel ::= SEQUENCE { This DE defines the type of an interference management zone, so that an ITS-S can assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
- @category: Communication information + +    Categories: [Communication information](#Communication+information) + + Fields: ```asn1 -InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 - temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 - unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling - urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 - satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 - fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 - ... +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 + temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 + unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling + urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 + satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 + fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 + ... } ``` ## InterferenceManagementMitigationType This DE defines the mitigation type in the interference management zone. - Information and commands defining the required mitigation type the receiving ITS-S has to use in the defined interference management zone. It indicates the type of mitigation and the parameters to be used to protect the potential victim in the interference management zone per channel access technology class. - @category: Communication information + +    Categories: [Communication information](#Communication+information) + + Fields: * unavailable **BOOLEAN** OPTIONAL
Default value to be used when data is not available -* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
+* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
```asn1 -InterferenceManagementMitigationType ::= SEQUENCE { - unavailable BOOLEAN OPTIONAL, - mitigationForTechnologies MitigationForTechnologies +InterferenceManagementMitigationType ::= SEQUENCE { + unavailable BOOLEAN OPTIONAL, + mitigationForTechnologies MitigationForTechnologies } ``` @@ -262,7 +280,10 @@ InterferenceManagementMitigationType ::= SEQUENCE { This DE defines the mitigation type container for the different channel access technology classes.
Class of parameters for the relevant channel access technology classes, as specified in ETSI TS 103 724, clause 7. - @category: Communication information + +    Categories: [Communication information](#Communication+information) + + ```asn1 @@ -275,7 +296,10 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl Class of parameters for the specific technology indicated in the container. All parameters are optional, as they may not apply to some of the technologies or interference management zone types. Specification details are in ETSI TS 103 724, clause 7. - @category: Communication information + +    Categories: [Communication information](#Communication+information) + + Fields: @@ -290,37 +314,43 @@ Fields: * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
Transmission duration limit in ms, as defined in ETSI EN 302 571. ```asn1 -MitigationPerTechnologyClass ::= SEQUENCE { - accessTechnologyClass AccessTechnologyClass, - lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - powerReduction INTEGER (0 .. 30) OPTIONAL, - dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - dmcTonLimit INTEGER (0 .. 20) OPTIONAL, - ... +MitigationPerTechnologyClass ::= SEQUENCE { + accessTechnologyClass AccessTechnologyClass, + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + powerReduction INTEGER (0 .. 30) OPTIONAL, + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... } ``` ## AccessTechnologyClass Access technology to which the mitigation type applies. - @category: Communication information + +    Categories: [Communication information](#Communication+information) + + Fields: ```asn1 -AccessTechnologyClass ::= ENUMERATED { - unavailable(0), - itsg5Class(1), - ltev2xClass(2), - nrv2xClass(3), - ... +AccessTechnologyClass ::= ENUMERATED { + unavailable(0), + itsg5Class(1), + ltev2xClass(2), + nrv2xClass(3), + ... } ``` ## InterferenceManagementZoneShape Shape of the interference management zone. - @category: GeoReference information + +    Categories: [GeoReference information](#GeoReference+information) + + Fields: @@ -329,12 +359,12 @@ Fields: * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
* ellipse [**AreaEllipse**](#AreaEllipse)
```asn1 -InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, - circle AreaCircular, - polygon AreaPolygon, - ellipse AreaEllipse, --! could not be imported from another specification yet - ... +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, --! could not be imported from another specification yet + ... } ``` -- GitLab From 8661527678e7d171c1943c742f0fb898466387b4 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 11 May 2021 19:00:46 +0200 Subject: [PATCH 22/85] Update IMZM-PDU-Descriptions.md --- docs/IMZM-PDU-Descriptions.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index cb37029..98367d8 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -3,7 +3,8 @@ Specification of the Interference Management Zone Message ETSI TS 103 724
Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - [[TOC]] + + [[_TOC_]] ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
-- GitLab From 6ce2a38919f822af10d6aa6b5453c6458f239526 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 08:36:24 +0200 Subject: [PATCH 23/85] Update docs/IMZM-PDU-Descriptions.md --- docs/IMZM-PDU-Descriptions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 98367d8..3771f57 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -4,7 +4,7 @@ Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - [[_TOC_]] +[[_TOC_]] ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
-- GitLab From 99705af064d4d324675ed84c3028d88fc1c0d269 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 10:11:45 +0200 Subject: [PATCH 24/85] Makefile to validate --- .gitlab-ci.yml | 19 ++++-- Makefile | 45 ++++++++++++++ asn2md.py | 162 ------------------------------------------------- 3 files changed, 58 insertions(+), 168 deletions(-) create mode 100755 Makefile delete mode 100755 asn2md.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2ee488..504678f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,14 +1,21 @@ -# This file is a template, and might need editing before it works on your project. -# Full project: https://gitlab.com/pages/doxygen image: alpine +validate: + stage: test + script: make validate + cache: + paths: + - asn2md.py + - iso/* + only: + changes: + - ./*.asn + documentation: -# variables: -# GIT_STRATEGY: clone stage: build script: - - mkdir -p docs - - python asn2md.py docs `find . -iname '*.asn'` + - curl https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/forge-tools/asn2md/raw/master/asn2md.py + - make doc - git add docs/*.md - git commit -m "Documentation update" - git remote rm origin && git remote add origin https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..dd66e86 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +ASN1_SRC := IMZM-PDU-Descriptions.asn \ + cam/CAM-PDU-Descriptions.asn \ + vam/VAM-Temp-Imports.asn \ + cdd/ITS-Container.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 := IMZM + + +ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs +ifneq (,$(ASN1CDIR)) + ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons +else + ASN1C := asn1c +endif + +validate: build iso build/gen_flag + +doc: docs + python asn2md.py docs $(ASN1_SRC) + +build iso docs: + mkdir -p $@ + +build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) + $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ +clean: + rm -rf build + +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' diff --git a/asn2md.py b/asn2md.py deleted file mode 100755 index 3066f36..0000000 --- a/asn2md.py +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse # parse arguments -import os.path # getting extension from file -import sys # output and stuff -import re # for regular expressions -import urllib # - -## extract doxygen-tag namespace -RE_MODULE = re.compile( r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) - -RE_SPACES = re.compile(r'\s+') - -RE_COMMENTS = re.compile(r'^\s*--.*\n', re.MULTILINE) - -RE_BASIC_TYPES = re.compile(r'^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT') - -RE_FIELDS = re.compile(r'^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,|$)', re.MULTILINE | re.DOTALL) - -RE_EXPORTS = re.compile(r'^\s*EXPORTS.*?;', re.DOTALL | re.MULTILINE) - -RE_IMPORTS = re.compile(r'^\s*IMPORTS\s*(.*?);', re.DOTALL | re.MULTILINE) - -RE_IMPORT_ELEMENTS = re.compile(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', re.MULTILINE) - -RE_IMPORT_ELEMENT_TYPE = re.compile(r'[^,\s]+') - -RE_DOXY_COMMENTS = re.compile(r'^\s*--[-!#](:?$|\s(.*))', re.MULTILINE) - -RE_DOXY_C_COMMENTS = re.compile(r'^\s*/\*\*\s(.*?)\*/', re.MULTILINE | re.DOTALL) - -RE_DOXY_C_COMMENTS_I = re.compile(r'\s*\*') - -RE_DOXY_REF = re.compile(r'@ref\s+([\w-]+)') -RE_DOXY_CLASS = re.compile(r'@class\s+([\w-]+)') -RE_DOXY_BRIEF = re.compile(r'@brief\s+') - -RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{(.*?)})?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) - -extTypes = {} - -def parseText(content, indent=None): - # we need to keep only documenting text under the /** */ and --! - # convert --! comments to C-style ones - c = RE_DOXY_COMMENTS.sub(r'/** \g<1>*/', content) - if c is not None: - content = c - ret = '' - for m in RE_DOXY_C_COMMENTS.finditer(content): - lines = m.group(1).splitlines() - for l in lines: - l = RE_DOXY_C_COMMENTS_I.sub('', l, 1).rstrip() - ret += ''.ljust(indent or 0) + l + '\n' - def repl_ref(m): - return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) - c = RE_DOXY_REF.sub(repl_ref, ret) - if c is not None: - ret = c - c = RE_DOXY_CLASS.sub('', ret) - if c is not None: - ret = c - c = RE_DOXY_BRIEF.sub('', ret) - if c is not None: - ret = c - def repl_category(m): - ret = '\n    Categories: ' - for l in m.group(1).split(','): - ret += '[{0}](#{1}) '.format(l.strip(), urllib.quote_plus(l.strip())) - return ret + '\n\n' - c = re.sub(r'@category:\s+(.+)', repl_category, ret, re.MULTILINE) - if c is not None: - ret = c - return ret -cpos=0 -def parseModule(mname, content): - global cpos - cpos = 0 - ret = '' - m = RE_IMPORTS.search(content) - if m is not None: - pos = 0 - if m.group(1) is not None: - ret += '## Imports:\n' - s = m.group(1) - for fm in RE_IMPORT_ELEMENTS.finditer(s): - imName = fm.group(2) - for im in RE_IMPORT_ELEMENT_TYPE.finditer(fm.group(1)): - extTypes[im.group(0)] = imName+'.md' - ret += ' * **{}** *{}*
\n'.format(imName, RE_SPACES.sub(' ', fm.group(3) or '')) - ret += parseText(s[pos:fm.start()], 3)+'\n' - pos = fm.end() - ret += parseText(s[pos:]) - cpos = m.end() - - m = RE_EXPORTS.search(content) - if m is not None: - if cpos < m.end(): - cpos = m.end() - - # parse types - def repl_type (m, doc): - ret = '## {0}\n\n'.format(m.group(2)) - if doc is not None: - ret += parseText(doc) + '\n\n' - # parse fields and get out fields descriptions - if m.group(3) is not None: - ret += 'Fields:\n' - pos = 0 - for fm in RE_FIELDS.finditer(m.group(3)): - if fm.group(2) is not None: - f = fm.group(1).strip() - t = fm.group(2).strip() - if RE_BASIC_TYPES.match(t) is not None: - ret += '* {0} **{1}** {2}
\n'.format(f, t, fm.group(3) or '') - else: - ret += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), fm.group(3) or '') - ret += parseText(fm.string[pos:fm.start()], 3) - pos = fm.end() - - return ret + '```asn1\n' + RE_COMMENTS.sub('', m.group(1).strip()) +'\n```\n\n' - - pos = 0 - for m in RE_TYPE.finditer(content[cpos:]): - ss = repl_type (m, m.string[pos:m.start()]) - ret += ss - pos = m.end() - return ret - - -def parseAsn(outDir, content) : - # iterate modules in the file - pos= 0 - cnt = 0 - for m in RE_MODULE.finditer(content): - ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), RE_SPACES.sub(' ', m.group(2))) - ret += parseText(content[pos:m.start()]) + '\n' - if m.group(3) is not None: - ret += parseModule(m.group(1), m.group(3)) - ret += '\n\n' - open(outDir + '/' + m.group(1) + '.md', "w").write(ret) - pos = m.end() - cnt += 1 - return cnt - -def main(): - argc = len(sys.argv) - if argc < 3: - sys.stderr.write("Usage: {} [ASN.1 files]\n".format(sys.argv[0])) - exit(1) - outDir = sys.argv[1] - cnt = 0 - for a in sys.argv[2:]: - try: - content = open(a).read() - cnt += parseAsn(outDir, content) - except IOError as e: - sys.stderr.write(e[1]+"\n") - print("{} modules porcessed\n".format(cnt)) - -if __name__ == '__main__': - main() -- GitLab From 460b9cabaa389eebd67e6d95a65336b39ff95d62 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 10:16:00 +0200 Subject: [PATCH 25/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 504678f..4854970 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,11 +14,11 @@ validate: documentation: stage: build script: - - curl https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/forge-tools/asn2md/raw/master/asn2md.py + - curl https://oauth2:$CI_DOC_TOKEN@forge.etsi.org/rep/forge-tools/asn2md/raw/master/asn2md.py - make doc - git add docs/*.md - git commit -m "Documentation update" - - git remote rm origin && git remote add origin https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git + - 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 # Pushes to the same branch as the trigger only: changes: -- GitLab From 45183112d7683e8076e88eccc2a057dbab2fc7f8 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 10:37:07 +0200 Subject: [PATCH 26/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4854970..e94d5e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,6 @@ validate: script: make validate cache: paths: - - asn2md.py - iso/* only: changes: @@ -13,12 +12,13 @@ validate: documentation: stage: build + script: - - curl https://oauth2:$CI_DOC_TOKEN@forge.etsi.org/rep/forge-tools/asn2md/raw/master/asn2md.py + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; sys.stdout.buffer.write(base64.b64decode(json.load(sys.stdin)['content']))" - make doc - 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 remote rm origin && git remote add origin https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger only: changes: -- GitLab From 2104ba0a8f355cfc04808c66531ebcdcb8c1f26e Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 10:41:51 +0200 Subject: [PATCH 27/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e94d5e9..bea2a6d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,7 +14,7 @@ documentation: stage: build script: - - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; sys.stdout.buffer.write(base64.b64decode(json.load(sys.stdin)['content']))" + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -u -c "import sys, json, base64; sys.stdout.write(base64.b64decode(json.load(sys.stdin)['content']))" - make doc - git add docs/*.md - git commit -m "Documentation update" -- GitLab From e2479ff76755a3c9ae62a86ba3541c5828876ee5 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 10:45:44 +0200 Subject: [PATCH 28/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bea2a6d..cf32e64 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,11 +14,11 @@ documentation: stage: build script: - - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -u -c "import sys, json, base64; sys.stdout.write(base64.b64decode(json.load(sys.stdin)['content']))" + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - make doc - git add docs/*.md - git commit -m "Documentation update" - - git remote rm origin && git remote add origin https://gitlab-ci-token:$CI_DOC_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git + - 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 # Pushes to the same branch as the trigger only: changes: -- GitLab From d28e78e7ea98327355a1d9a86e381aac48cd4695 Mon Sep 17 00:00:00 2001 From: Gitlab runner Date: Wed, 12 May 2021 10:46:02 +0200 Subject: [PATCH 29/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 3771f57..58fee51 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -3,8 +3,7 @@ Specification of the Interference Management Zone Message ETSI TS 103 724
Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - -[[_TOC_]] + [[TOC]] ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
@@ -18,7 +17,8 @@ This is temporary * :
Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* -## IMZM +## Data Elements: +### IMZM This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` and the station identifier `stationID` of the originating ITS-S. @@ -38,7 +38,7 @@ IMZM ::= SEQUENCE { } ``` -## InterferenceManagementZoneMessage +### InterferenceManagementZoneMessage This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). @@ -54,7 +54,7 @@ InterferenceManagementZoneMessage ::= SEQUENCE { } ``` -## ImzmParameters +### ImzmParameters The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. @@ -72,7 +72,7 @@ ImzmParameters ::= SEQUENCE { } ``` -## ImzmContainer +### ImzmContainer The IMZM container includes a sequence of up to 16 interference management communication zones. For each interference management communication zones, it contains a sequence of interference @@ -89,7 +89,7 @@ ImzmContainer ::= SEQUENCE { } ``` -## InterferenceManagementZones +### InterferenceManagementZones A list of up to 16 interference management communication zones. > EXAMPLE: An interference management communication zone may be defined around a @@ -104,7 +104,7 @@ ImzmContainer ::= SEQUENCE { InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone ``` -## InterferenceManagementZone +### InterferenceManagementZone Describes a zone of interferenceManagement inside which the ITS communication should be restricted. @@ -124,7 +124,7 @@ InterferenceManagementZone ::= SEQUENCE { } ``` -## ZoneDefinition +### ZoneDefinition Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. @@ -159,7 +159,7 @@ ZoneDefinition::= SEQUENCE{ } ``` -## InterferenceManagementInfo +### InterferenceManagementInfo A list of up to 16 definitions of which interference management may be applied in the zone, per affected frequency channels. @@ -175,7 +175,7 @@ ZoneDefinition::= SEQUENCE{ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ``` -## InterferenceManagementInfoPerChannel +### InterferenceManagementInfoPerChannel A break up of the interference management information per affected frequency channels. @@ -204,7 +204,7 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { } ``` -## InterferenceManagementChannel +### InterferenceManagementChannel Indicates which shared frequency channel should be applied interference management in the zone. @@ -228,7 +228,7 @@ InterferenceManagementChannel ::= SEQUENCE { } ``` -## InterferenceManagementZoneType +### InterferenceManagementZoneType This DE defines the type of an interference management zone, so that an ITS-S can assert the actions to do while passing by such zone (e.g. reduce the transmit @@ -252,7 +252,7 @@ InterferenceManagementZoneType ::= ENUMERATED { } ``` -## InterferenceManagementMitigationType +### InterferenceManagementMitigationType This DE defines the mitigation type in the interference management zone. Information and commands defining the required mitigation type the @@ -276,7 +276,7 @@ InterferenceManagementMitigationType ::= SEQUENCE { } ``` -## MitigationForTechnologies +### MitigationForTechnologies This DE defines the mitigation type container for the different channel access technology classes.
Class of parameters for the relevant channel access technology classes, @@ -291,7 +291,7 @@ InterferenceManagementMitigationType ::= SEQUENCE { MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass ``` -## MitigationPerTechnologyClass +### MitigationPerTechnologyClass This DE defines the mitigation type container per channel access technology class
Class of parameters for the specific technology indicated in the container. @@ -325,7 +325,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { } ``` -## AccessTechnologyClass +### AccessTechnologyClass Access technology to which the mitigation type applies. @@ -345,7 +345,7 @@ AccessTechnologyClass ::= ENUMERATED { } ``` -## InterferenceManagementZoneShape +### InterferenceManagementZoneShape Shape of the interference management zone. -- GitLab From ea3cd018d19b64f5c2ac6be87c4d5d979c0fb23d Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 11:43:33 +0200 Subject: [PATCH 30/85] Remove [[TOC]] --- IMZM-PDU-Descriptions.asn | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index bc24930..7137a15 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,8 +1,7 @@ --! Specification of the Interference Management Zone Message ETSI TS 103 724
--! --! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ---! ---! [[TOC]] + IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) -- GitLab From c4a1830c1136ea3f21ac9d119ebb9a3e77137220 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 11:44:41 +0200 Subject: [PATCH 31/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cf32e64..e076b88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,7 +11,7 @@ validate: - ./*.asn documentation: - stage: build + stage: deploy script: - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" -- GitLab From 281441ae6641b39d00da9215b607e76b603200f3 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 11:48:37 +0200 Subject: [PATCH 32/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 7137a15..8a0ccaf 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -3,6 +3,8 @@ --! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + + IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) } -- GitLab From 7a06cf2d4425a29ba2462ba89746db5761c3180e Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 12:00:23 +0200 Subject: [PATCH 33/85] try to run tests only when asn file is changed --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e076b88..6abf7ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ validate: - iso/* only: changes: - - ./*.asn + - "*.asn" documentation: stage: deploy @@ -22,7 +22,7 @@ documentation: - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger only: changes: - - ./*.asn + - "*.asn" # artifacts: # paths: # - docs/* -- GitLab From 5b8fdf7a657bf2ce221a858610d8861579923ff8 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 12:00:43 +0200 Subject: [PATCH 34/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 2 -- 1 file changed, 2 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 8a0ccaf..7137a15 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -3,8 +3,6 @@ --! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - - IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) } -- GitLab From db4f5da6805baf46c976df2fabaeb151bb83d2b1 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 12:07:23 +0200 Subject: [PATCH 35/85] use submodules --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6abf7ef..33558d3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,6 @@ image: alpine +variables: + GIT_SUBMODULE_STRATEGY: normal validate: stage: test -- GitLab From 1c302e6f5b2a6eafbb5d942c2df11da95ed59920 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 12:08:00 +0200 Subject: [PATCH 36/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 1 - 1 file changed, 1 deletion(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 7137a15..6179d95 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -2,7 +2,6 @@ --! --! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) } -- GitLab From 9ff6d4eaf2bbef10dbe37e427739a82e4874cb6f Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 15:20:30 +0200 Subject: [PATCH 37/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 33558d3..dabd73c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,13 +1,39 @@ image: alpine + +stages: + - setup + - test + - deploy + variables: GIT_SUBMODULE_STRATEGY: normal +prepare: + stage: setup + script: + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" + - mkdir -p asn1c + - git clone https://github.com/fillabs/asn1c.git asn1c-build + - cd asn1c-build && autoreconf -iv && ./configure --prefix=./asn1c && make && make install + - rm -rf asn1c-build + cache: + key: asn1c + when: always + paths: + - asn1c/ + validate: stage: test script: make validate cache: - paths: - - iso/* + - key: asn1c + policy: pull + paths: + - asn1c/ + - key: iso + when: 'always' + paths: + - iso/* only: changes: - "*.asn" -- GitLab From 809a13639ec5bc655c312b7f4eca6a42e813a8ff Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 15:23:39 +0200 Subject: [PATCH 38/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dabd73c..04d40cb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,7 @@ variables: prepare: stage: setup + when: manual script: - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - mkdir -p asn1c @@ -18,7 +19,6 @@ prepare: - rm -rf asn1c-build cache: key: asn1c - when: always paths: - asn1c/ @@ -31,7 +31,6 @@ validate: paths: - asn1c/ - key: iso - when: 'always' paths: - iso/* only: -- GitLab From 5313ba5bf70c45692e92a3e133779c663e3902f2 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 19:10:15 +0200 Subject: [PATCH 39/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 04d40cb..806b094 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,45 +1,19 @@ -image: alpine - -stages: - - setup - - test - - deploy - variables: GIT_SUBMODULE_STRATEGY: normal -prepare: - stage: setup - when: manual - script: - - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - - mkdir -p asn1c - - git clone https://github.com/fillabs/asn1c.git asn1c-build - - cd asn1c-build && autoreconf -iv && ./configure --prefix=./asn1c && make && make install - - rm -rf asn1c-build - cache: - key: asn1c - paths: - - asn1c/ - validate: + image: danya25/asn1c stage: test script: make validate cache: - - key: asn1c - policy: pull - paths: - - asn1c/ - - key: iso - paths: - - iso/* + paths: + - iso/* only: changes: - "*.asn" documentation: stage: deploy - script: - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - make doc @@ -50,6 +24,3 @@ documentation: only: changes: - "*.asn" -# artifacts: -# paths: -# - docs/* -- GitLab From 878e586b324b30da8c335c3d16207e4522654552 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 12 May 2021 19:18:17 +0200 Subject: [PATCH 40/85] Update Makefile --- Makefile | 90 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/Makefile b/Makefile index dd66e86..89dd1d9 100755 --- a/Makefile +++ b/Makefile @@ -1,45 +1,45 @@ -ASN1_SRC := IMZM-PDU-Descriptions.asn \ - cam/CAM-PDU-Descriptions.asn \ - vam/VAM-Temp-Imports.asn \ - cdd/ITS-Container.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 := IMZM - - -ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs -ifneq (,$(ASN1CDIR)) - ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons -else - ASN1C := asn1c -endif - -validate: build iso build/gen_flag - -doc: docs - python asn2md.py docs $(ASN1_SRC) - -build iso docs: - mkdir -p $@ - -build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) - $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ -clean: - rm -rf build - -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' +ASN1_SRC := IMZM-PDU-Descriptions.asn \ + cam/CAM-PDU-Descriptions.asn \ + vam/VAM-Temp-Imports.asn \ + cdd/ITS-Container.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 := IMZM + + +#ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs +ifneq (,$(ASN1CDIR)) + ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons +else + ASN1C := asn1c +endif + +validate: build iso build/gen_flag + +doc: docs + python asn2md.py docs $(ASN1_SRC) + +build iso docs: + mkdir -p $@ + +build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) + $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ +clean: + rm -rf build + +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' -- GitLab From dd40bacc0de2ca961cb2e1f57d9aef34c2a21794 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:14:19 +0200 Subject: [PATCH 41/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 806b094..6b4301a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ variables: GIT_SUBMODULE_STRATEGY: normal validate: - image: danya25/asn1c + image: danya25/asn1c:0.0.2 stage: test script: make validate cache: -- GitLab From 7fce8158ae3293d1ea96198e371e66379ca02f67 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:16:51 +0200 Subject: [PATCH 42/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6b4301a..7dbd8fd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ variables: GIT_SUBMODULE_STRATEGY: normal validate: - image: danya25/asn1c:0.0.2 + image: danya25/asn1c:0.0.3 stage: test script: make validate cache: -- GitLab From 88b814bca931b90ed44ff48447cee436c4150067 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:20:33 +0200 Subject: [PATCH 43/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7dbd8fd..9e70a7b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,9 @@ variables: GIT_SUBMODULE_STRATEGY: normal +image: danya25/asn1c:0.0.3 + validate: - image: danya25/asn1c:0.0.3 stage: test script: make validate cache: -- GitLab From 1467052392479f4035a4d50d9e65d6ee867d4481 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:26:51 +0200 Subject: [PATCH 44/85] Update Makefile --- Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 89dd1d9..71eed6d 100755 --- a/Makefile +++ b/Makefile @@ -28,8 +28,7 @@ build iso docs: mkdir -p $@ build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) - $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ -clean: + $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null rm -rf build iso/iso19091_2018.asn: -- GitLab From 2dc93a1b49294882e09d4ae7fa4ed00d1e89f3bf Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:31:39 +0200 Subject: [PATCH 45/85] Update Makefile --- Makefile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 71eed6d..d6106c4 100755 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ ASN1_SRC_VALIDATE := \ iso/ISO14816_AVIAEINumberingAndDataStructures.asn ASN1_PDU := IMZM - +ASN1_KNOWN := DATE #ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs ifneq (,$(ASN1CDIR)) @@ -19,17 +19,18 @@ else ASN1C := asn1c endif -validate: build iso build/gen_flag +.PHONY: validate doc build + +validate: iso build doc: docs python asn2md.py docs $(ASN1_SRC) -build iso docs: +iso docs: mkdir -p $@ -build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) - $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null - rm -rf build +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' -- GitLab From b7658f191c4a571390671acb94343706db7bf2ea Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:34:46 +0200 Subject: [PATCH 46/85] Update Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d6106c4..e7f2871 100755 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ endif validate: iso build doc: docs - python asn2md.py docs $(ASN1_SRC) + python3 asn2md.py docs $(ASN1_SRC) iso docs: mkdir -p $@ -- GitLab From e3cd06f14e6cdef2695633c447eadef5c294f4f1 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:55:23 +0200 Subject: [PATCH 47/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9e70a7b..5f9c2c2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,7 @@ validate: documentation: stage: deploy script: - - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python3 -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - make doc - git add docs/*.md - git commit -m "Documentation update" -- GitLab From 75fc4e80483a2ae2e6e30f61048385c72d44b357 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 14:56:27 +0200 Subject: [PATCH 48/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5f9c2c2..47ac97e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ variables: GIT_SUBMODULE_STRATEGY: normal -image: danya25/asn1c:0.0.3 +image: danya25/asn1c:0.0.4 validate: stage: test -- GitLab From 8d4751347346339ce6ffd7c80a99be2f72b8cf90 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 18 May 2021 16:05:45 +0200 Subject: [PATCH 49/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 47ac97e..81df06d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ variables: GIT_SUBMODULE_STRATEGY: normal -image: danya25/asn1c:0.0.4 +image: danya25/asn1c:0.0.5 validate: stage: test -- GitLab From 12ddbd19ca0ff22f30170f27638cc0a68c3d91eb Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Tue, 18 May 2021 14:06:56 +0000 Subject: [PATCH 50/85] Documentation update --- docs/CAM-PDU-Descriptions.md | 611 +++---- docs/IMZM-PDU-Descriptions.md | 1 - docs/ITS-Container.md | 2987 +++++++++++++++++---------------- docs/VAM-Temp-Imports.md | 367 ++-- 4 files changed, 1984 insertions(+), 1982 deletions(-) diff --git a/docs/CAM-PDU-Descriptions.md b/docs/CAM-PDU-Descriptions.md index e3125c1..3c46eb0 100755 --- a/docs/CAM-PDU-Descriptions.md +++ b/docs/CAM-PDU-Descriptions.md @@ -1,305 +1,306 @@ -# ASN.1 module CAM-PDU-Descriptions - OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }_ - -## Imports: - * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- -## CAM - - - -Fields: -* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
-* cam [**CoopAwareness**](#CoopAwareness)
-```asn1 -CAM ::= SEQUENCE { - header ItsPduHeader, - cam CoopAwareness -} -``` - -## CoopAwareness - - - -Fields: -* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
-* camParameters [**CamParameters**](#CamParameters)
-```asn1 -CoopAwareness ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, - camParameters CamParameters -} -``` - -## CamParameters - - - -Fields: -* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
-* highFrequencyContainer [**HighFrequencyContainer**](#HighFrequencyContainer)
-* lowFrequencyContainer [**LowFrequencyContainer**](#LowFrequencyContainer) OPTIONAL
-* specialVehicleContainer [**SpecialVehicleContainer**](#SpecialVehicleContainer) OPTIONAL
-```asn1 -CamParameters ::= SEQUENCE { - basicContainer BasicContainer, - highFrequencyContainer HighFrequencyContainer, - lowFrequencyContainer LowFrequencyContainer OPTIONAL, - specialVehicleContainer SpecialVehicleContainer OPTIONAL, - ... -} -``` - -## HighFrequencyContainer - - - -Fields: -* basicVehicleContainerHighFrequency [**BasicVehicleContainerHighFrequency**](#BasicVehicleContainerHighFrequency)
-* rsuContainerHighFrequency [**RSUContainerHighFrequency**](#RSUContainerHighFrequency)
-```asn1 -HighFrequencyContainer ::= CHOICE { - basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, - rsuContainerHighFrequency RSUContainerHighFrequency, - ... -} -``` - -## LowFrequencyContainer - - - -Fields: -* basicVehicleContainerLowFrequency [**BasicVehicleContainerLowFrequency**](#BasicVehicleContainerLowFrequency)
-```asn1 -LowFrequencyContainer ::= CHOICE { - basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, - ... -} -``` - -## SpecialVehicleContainer - - - -Fields: -* publicTransportContainer [**PublicTransportContainer**](#PublicTransportContainer)
-* specialTransportContainer [**SpecialTransportContainer**](#SpecialTransportContainer)
-* dangerousGoodsContainer [**DangerousGoodsContainer**](#DangerousGoodsContainer)
-* roadWorksContainerBasic [**RoadWorksContainerBasic**](#RoadWorksContainerBasic)
-* rescueContainer [**RescueContainer**](#RescueContainer)
-* emergencyContainer [**EmergencyContainer**](#EmergencyContainer)
-* safetyCarContainer [**SafetyCarContainer**](#SafetyCarContainer)
-```asn1 -SpecialVehicleContainer ::= CHOICE { - publicTransportContainer PublicTransportContainer, - specialTransportContainer SpecialTransportContainer, - dangerousGoodsContainer DangerousGoodsContainer, - roadWorksContainerBasic RoadWorksContainerBasic, - rescueContainer RescueContainer, - emergencyContainer EmergencyContainer, - safetyCarContainer SafetyCarContainer, - ... -} -``` - -## BasicContainer - - - -Fields: -* stationType [**StationType**](ITS-Container.md#StationType)
-* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
-```asn1 -BasicContainer ::= SEQUENCE { - stationType StationType, - referencePosition ReferencePosition, - ... -} -``` - -## BasicVehicleContainerHighFrequency - - - -Fields: -* heading [**Heading**](ITS-Container.md#Heading)
-* speed [**Speed**](ITS-Container.md#Speed)
-* driveDirection [**DriveDirection**](ITS-Container.md#DriveDirection)
-* vehicleLength [**VehicleLength**](ITS-Container.md#VehicleLength)
-* vehicleWidth [**VehicleWidth**](ITS-Container.md#VehicleWidth)
-* longitudinalAcceleration [**LongitudinalAcceleration**](ITS-Container.md#LongitudinalAcceleration)
-* curvature [**Curvature**](ITS-Container.md#Curvature)
-* curvatureCalculationMode [**CurvatureCalculationMode**](ITS-Container.md#CurvatureCalculationMode)
-* yawRate [**YawRate**](ITS-Container.md#YawRate)
-* accelerationControl [**AccelerationControl**](ITS-Container.md#AccelerationControl) OPTIONAL
-* lanePosition [**LanePosition**](ITS-Container.md#LanePosition) OPTIONAL
-* steeringWheelAngle [**SteeringWheelAngle**](ITS-Container.md#SteeringWheelAngle) OPTIONAL
-* lateralAcceleration [**LateralAcceleration**](ITS-Container.md#LateralAcceleration) OPTIONAL
-* verticalAcceleration [**VerticalAcceleration**](ITS-Container.md#VerticalAcceleration) OPTIONAL
-* performanceClass [**PerformanceClass**](ITS-Container.md#PerformanceClass) OPTIONAL
-* cenDsrcTollingZone [**CenDsrcTollingZone**](ITS-Container.md#CenDsrcTollingZone) OPTIONAL
-```asn1 -BasicVehicleContainerHighFrequency ::= SEQUENCE { - heading Heading, - speed Speed, - driveDirection DriveDirection, - vehicleLength VehicleLength, - vehicleWidth VehicleWidth, - longitudinalAcceleration LongitudinalAcceleration, - curvature Curvature, - curvatureCalculationMode CurvatureCalculationMode, - yawRate YawRate, - accelerationControl AccelerationControl OPTIONAL, - lanePosition LanePosition OPTIONAL, - steeringWheelAngle SteeringWheelAngle OPTIONAL, - lateralAcceleration LateralAcceleration OPTIONAL, - verticalAcceleration VerticalAcceleration OPTIONAL, - performanceClass PerformanceClass OPTIONAL, - cenDsrcTollingZone CenDsrcTollingZone OPTIONAL -} -``` - -## BasicVehicleContainerLowFrequency - - - -Fields: -* vehicleRole [**VehicleRole**](ITS-Container.md#VehicleRole)
-* exteriorLights [**ExteriorLights**](ITS-Container.md#ExteriorLights)
-* pathHistory [**PathHistory**](ITS-Container.md#PathHistory)
-```asn1 -BasicVehicleContainerLowFrequency ::= SEQUENCE { - vehicleRole VehicleRole, - exteriorLights ExteriorLights, - pathHistory PathHistory -} -``` - -## PublicTransportContainer - - - -Fields: -* embarkationStatus [**EmbarkationStatus**](ITS-Container.md#EmbarkationStatus)
-* ptActivation [**PtActivation**](ITS-Container.md#PtActivation) OPTIONAL
-```asn1 -PublicTransportContainer ::= SEQUENCE { - embarkationStatus EmbarkationStatus, - ptActivation PtActivation OPTIONAL -} -``` - -## SpecialTransportContainer - - - -Fields: -* specialTransportType [**SpecialTransportType**](ITS-Container.md#SpecialTransportType)
-* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
-```asn1 -SpecialTransportContainer ::= SEQUENCE { - specialTransportType SpecialTransportType, - lightBarSirenInUse LightBarSirenInUse -} -``` - -## DangerousGoodsContainer - - - -Fields: -* dangerousGoodsBasic [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
-```asn1 -DangerousGoodsContainer ::= SEQUENCE { - dangerousGoodsBasic DangerousGoodsBasic - } -``` - -## RoadWorksContainerBasic - - - -Fields: -* roadworksSubCauseCode [**RoadworksSubCauseCode**](ITS-Container.md#RoadworksSubCauseCode) OPTIONAL
-* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
-* closedLanes [**ClosedLanes**](ITS-Container.md#ClosedLanes) OPTIONAL
-```asn1 -RoadWorksContainerBasic ::= SEQUENCE { - roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, - lightBarSirenInUse LightBarSirenInUse, - closedLanes ClosedLanes OPTIONAL - } -``` - -## RescueContainer - - - -Fields: -* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
-```asn1 -RescueContainer ::= SEQUENCE { - lightBarSirenInUse LightBarSirenInUse -} -``` - -## EmergencyContainer - - - -Fields: -* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
-* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
-* emergencyPriority [**EmergencyPriority**](ITS-Container.md#EmergencyPriority) OPTIONAL
-```asn1 -EmergencyContainer ::= SEQUENCE { - lightBarSirenInUse LightBarSirenInUse, - incidentIndication CauseCode OPTIONAL, - emergencyPriority EmergencyPriority OPTIONAL -} -``` - -## SafetyCarContainer - - - -Fields: -* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
-* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
-* trafficRule [**TrafficRule**](ITS-Container.md#TrafficRule) OPTIONAL
-* speedLimit [**SpeedLimit**](ITS-Container.md#SpeedLimit) OPTIONAL
-```asn1 -SafetyCarContainer ::= SEQUENCE { - lightBarSirenInUse LightBarSirenInUse, - incidentIndication CauseCode OPTIONAL, - trafficRule TrafficRule OPTIONAL, - speedLimit SpeedLimit OPTIONAL -} -``` - -## RSUContainerHighFrequency - - - -Fields: -* protectedCommunicationZonesRSU [**ProtectedCommunicationZonesRSU**](ITS-Container.md#ProtectedCommunicationZonesRSU) OPTIONAL
-```asn1 -RSUContainerHighFrequency ::= SEQUENCE { - protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, - ... -} -``` - -## GenerationDeltaTime - - - -Fields: -```asn1 -GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) -``` - - - +# ASN.1 module CAM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }_ + +## Imports: + * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ +## Data Elements: +### CAM + + + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+* cam [**CoopAwareness**](#CoopAwareness)
+```asn1 +CAM ::= SEQUENCE { + header ItsPduHeader, + cam CoopAwareness +} +``` + +### CoopAwareness + + + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* camParameters [**CamParameters**](#CamParameters)
+```asn1 +CoopAwareness ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + camParameters CamParameters +} +``` + +### CamParameters + + + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+* highFrequencyContainer [**HighFrequencyContainer**](#HighFrequencyContainer)
+* lowFrequencyContainer [**LowFrequencyContainer**](#LowFrequencyContainer) OPTIONAL
+* specialVehicleContainer [**SpecialVehicleContainer**](#SpecialVehicleContainer) OPTIONAL
+```asn1 +CamParameters ::= SEQUENCE { + basicContainer BasicContainer, + highFrequencyContainer HighFrequencyContainer, + lowFrequencyContainer LowFrequencyContainer OPTIONAL, + specialVehicleContainer SpecialVehicleContainer OPTIONAL, + ... +} +``` + +### HighFrequencyContainer + + + +Fields: +* basicVehicleContainerHighFrequency [**BasicVehicleContainerHighFrequency**](#BasicVehicleContainerHighFrequency)
+* rsuContainerHighFrequency [**RSUContainerHighFrequency**](#RSUContainerHighFrequency)
+```asn1 +HighFrequencyContainer ::= CHOICE { + basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, + rsuContainerHighFrequency RSUContainerHighFrequency, + ... +} +``` + +### LowFrequencyContainer + + + +Fields: +* basicVehicleContainerLowFrequency [**BasicVehicleContainerLowFrequency**](#BasicVehicleContainerLowFrequency)
+```asn1 +LowFrequencyContainer ::= CHOICE { + basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, + ... +} +``` + +### SpecialVehicleContainer + + + +Fields: +* publicTransportContainer [**PublicTransportContainer**](#PublicTransportContainer)
+* specialTransportContainer [**SpecialTransportContainer**](#SpecialTransportContainer)
+* dangerousGoodsContainer [**DangerousGoodsContainer**](#DangerousGoodsContainer)
+* roadWorksContainerBasic [**RoadWorksContainerBasic**](#RoadWorksContainerBasic)
+* rescueContainer [**RescueContainer**](#RescueContainer)
+* emergencyContainer [**EmergencyContainer**](#EmergencyContainer)
+* safetyCarContainer [**SafetyCarContainer**](#SafetyCarContainer)
+```asn1 +SpecialVehicleContainer ::= CHOICE { + publicTransportContainer PublicTransportContainer, + specialTransportContainer SpecialTransportContainer, + dangerousGoodsContainer DangerousGoodsContainer, + roadWorksContainerBasic RoadWorksContainerBasic, + rescueContainer RescueContainer, + emergencyContainer EmergencyContainer, + safetyCarContainer SafetyCarContainer, + ... +} +``` + +### BasicContainer + + + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +BasicContainer ::= SEQUENCE { + stationType StationType, + referencePosition ReferencePosition, + ... +} +``` + +### BasicVehicleContainerHighFrequency + + + +Fields: +* heading [**Heading**](ITS-Container.md#Heading)
+* speed [**Speed**](ITS-Container.md#Speed)
+* driveDirection [**DriveDirection**](ITS-Container.md#DriveDirection)
+* vehicleLength [**VehicleLength**](ITS-Container.md#VehicleLength)
+* vehicleWidth [**VehicleWidth**](ITS-Container.md#VehicleWidth)
+* longitudinalAcceleration [**LongitudinalAcceleration**](ITS-Container.md#LongitudinalAcceleration)
+* curvature [**Curvature**](ITS-Container.md#Curvature)
+* curvatureCalculationMode [**CurvatureCalculationMode**](ITS-Container.md#CurvatureCalculationMode)
+* yawRate [**YawRate**](ITS-Container.md#YawRate)
+* accelerationControl [**AccelerationControl**](ITS-Container.md#AccelerationControl) OPTIONAL
+* lanePosition [**LanePosition**](ITS-Container.md#LanePosition) OPTIONAL
+* steeringWheelAngle [**SteeringWheelAngle**](ITS-Container.md#SteeringWheelAngle) OPTIONAL
+* lateralAcceleration [**LateralAcceleration**](ITS-Container.md#LateralAcceleration) OPTIONAL
+* verticalAcceleration [**VerticalAcceleration**](ITS-Container.md#VerticalAcceleration) OPTIONAL
+* performanceClass [**PerformanceClass**](ITS-Container.md#PerformanceClass) OPTIONAL
+* cenDsrcTollingZone [**CenDsrcTollingZone**](ITS-Container.md#CenDsrcTollingZone) OPTIONAL
+```asn1 +BasicVehicleContainerHighFrequency ::= SEQUENCE { + heading Heading, + speed Speed, + driveDirection DriveDirection, + vehicleLength VehicleLength, + vehicleWidth VehicleWidth, + longitudinalAcceleration LongitudinalAcceleration, + curvature Curvature, + curvatureCalculationMode CurvatureCalculationMode, + yawRate YawRate, + accelerationControl AccelerationControl OPTIONAL, + lanePosition LanePosition OPTIONAL, + steeringWheelAngle SteeringWheelAngle OPTIONAL, + lateralAcceleration LateralAcceleration OPTIONAL, + verticalAcceleration VerticalAcceleration OPTIONAL, + performanceClass PerformanceClass OPTIONAL, + cenDsrcTollingZone CenDsrcTollingZone OPTIONAL +} +``` + +### BasicVehicleContainerLowFrequency + + + +Fields: +* vehicleRole [**VehicleRole**](ITS-Container.md#VehicleRole)
+* exteriorLights [**ExteriorLights**](ITS-Container.md#ExteriorLights)
+* pathHistory [**PathHistory**](ITS-Container.md#PathHistory)
+```asn1 +BasicVehicleContainerLowFrequency ::= SEQUENCE { + vehicleRole VehicleRole, + exteriorLights ExteriorLights, + pathHistory PathHistory +} +``` + +### PublicTransportContainer + + + +Fields: +* embarkationStatus [**EmbarkationStatus**](ITS-Container.md#EmbarkationStatus)
+* ptActivation [**PtActivation**](ITS-Container.md#PtActivation) OPTIONAL
+```asn1 +PublicTransportContainer ::= SEQUENCE { + embarkationStatus EmbarkationStatus, + ptActivation PtActivation OPTIONAL +} +``` + +### SpecialTransportContainer + + + +Fields: +* specialTransportType [**SpecialTransportType**](ITS-Container.md#SpecialTransportType)
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+```asn1 +SpecialTransportContainer ::= SEQUENCE { + specialTransportType SpecialTransportType, + lightBarSirenInUse LightBarSirenInUse +} +``` + +### DangerousGoodsContainer + + + +Fields: +* dangerousGoodsBasic [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
+```asn1 +DangerousGoodsContainer ::= SEQUENCE { + dangerousGoodsBasic DangerousGoodsBasic + } +``` + +### RoadWorksContainerBasic + + + +Fields: +* roadworksSubCauseCode [**RoadworksSubCauseCode**](ITS-Container.md#RoadworksSubCauseCode) OPTIONAL
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* closedLanes [**ClosedLanes**](ITS-Container.md#ClosedLanes) OPTIONAL
+```asn1 +RoadWorksContainerBasic ::= SEQUENCE { + roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, + lightBarSirenInUse LightBarSirenInUse, + closedLanes ClosedLanes OPTIONAL + } +``` + +### RescueContainer + + + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+```asn1 +RescueContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse +} +``` + +### EmergencyContainer + + + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
+* emergencyPriority [**EmergencyPriority**](ITS-Container.md#EmergencyPriority) OPTIONAL
+```asn1 +EmergencyContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + emergencyPriority EmergencyPriority OPTIONAL +} +``` + +### SafetyCarContainer + + + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
+* trafficRule [**TrafficRule**](ITS-Container.md#TrafficRule) OPTIONAL
+* speedLimit [**SpeedLimit**](ITS-Container.md#SpeedLimit) OPTIONAL
+```asn1 +SafetyCarContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + trafficRule TrafficRule OPTIONAL, + speedLimit SpeedLimit OPTIONAL +} +``` + +### RSUContainerHighFrequency + + + +Fields: +* protectedCommunicationZonesRSU [**ProtectedCommunicationZonesRSU**](ITS-Container.md#ProtectedCommunicationZonesRSU) OPTIONAL
+```asn1 +RSUContainerHighFrequency ::= SEQUENCE { + protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, + ... +} +``` + +### GenerationDeltaTime + + + +Fields: +```asn1 +GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) +``` + + + diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 58fee51..62d42db 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -3,7 +3,6 @@ Specification of the Interference Management Zone Message ETSI TS 103 724
Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - [[TOC]] ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md index 1b04979..affe9dd 100755 --- a/docs/ITS-Container.md +++ b/docs/ITS-Container.md @@ -1,1493 +1,1494 @@ -# ASN.1 module ITS-Container - OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ - -## ItsPduHeader - - - -Fields: -* protocolVersion **INTEGER** (0..255)
-* messageID **INTEGER** { denm(1)
-```asn1 -ItsPduHeader ::= SEQUENCE { - protocolVersion INTEGER (0..255), - messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 - stationID StationID -} -``` - -## StationID - - - -```asn1 -StationID ::= INTEGER(0..4294967295) -``` - -## ReferencePosition - - - -Fields: -* latitude [**Latitude**](ITS-Container.md#Latitude)
-* longitude [**Longitude**](ITS-Container.md#Longitude)
-* positionConfidenceEllipse [**PosConfidenceEllipse**](#PosConfidenceEllipse)
-* altitude [**Altitude**](#Altitude)
-```asn1 -ReferencePosition ::= SEQUENCE { - latitude Latitude, - longitude Longitude, - positionConfidenceEllipse PosConfidenceEllipse , - altitude Altitude -} -``` - -## DeltaReferencePosition - - - -Fields: -* deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
-* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
-* deltaAltitude [**DeltaAltitude**](#DeltaAltitude)
-```asn1 -DeltaReferencePosition ::= SEQUENCE { - deltaLatitude DeltaLatitude, - deltaLongitude DeltaLongitude, - deltaAltitude DeltaAltitude -} -``` - -## Longitude - - - -Fields: -```asn1 -Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) -``` - -## Latitude - - - -Fields: -```asn1 -Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) -``` - -## Altitude - - - -Fields: -* altitudeValue [**AltitudeValue**](#AltitudeValue)
-* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
-```asn1 -Altitude ::= SEQUENCE { - altitudeValue AltitudeValue, - altitudeConfidence AltitudeConfidence -} -``` - -## AltitudeValue - - - -Fields: -```asn1 -AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) -``` - -## AltitudeConfidence - - - -Fields: -```asn1 -AltitudeConfidence ::= ENUMERATED { - alt-000-01 (0), - alt-000-02 (1), - alt-000-05 (2), - alt-000-10 (3), - alt-000-20 (4), - alt-000-50 (5), - alt-001-00 (6), - alt-002-00 (7), - alt-005-00 (8), - alt-010-00 (9), - alt-020-00 (10), - alt-050-00 (11), - alt-100-00 (12), - alt-200-00 (13), - outOfRange (14), - unavailable (15) -} -``` - -## DeltaLongitude - - - -Fields: -```asn1 -DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) -``` - -## DeltaLatitude - - - -Fields: -```asn1 -DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) -``` - -## DeltaAltitude - - - -Fields: -```asn1 -DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) -``` - -## PosConfidenceEllipse - - - -Fields: -* semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
-* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
-* semiMajorOrientation [**HeadingValue**](#HeadingValue)
-```asn1 -PosConfidenceEllipse ::= SEQUENCE { - semiMajorConfidence SemiAxisLength, - semiMinorConfidence SemiAxisLength, - semiMajorOrientation HeadingValue -} -``` - -## PathPoint - - - -Fields: -* pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
-* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
-```asn1 -PathPoint ::= SEQUENCE { - pathPosition DeltaReferencePosition, - pathDeltaTime PathDeltaTime OPTIONAL -} -``` - -## PathDeltaTime - - - -Fields: -```asn1 -PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) -``` - -## PtActivation - - - -Fields: -* ptActivationType [**PtActivationType**](#PtActivationType)
-* ptActivationData [**PtActivationData**](#PtActivationData)
-```asn1 -PtActivation ::= SEQUENCE { - ptActivationType PtActivationType, - ptActivationData PtActivationData -} -``` - -## PtActivationType - - - -Fields: -```asn1 -PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) -``` - -## PtActivationData - - - -```asn1 -PtActivationData ::= OCTET STRING (SIZE(1..20)) -``` - -## AccelerationControl - - - -Fields: -```asn1 -AccelerationControl ::= BIT STRING { - brakePedalEngaged (0), - gasPedalEngaged (1), - emergencyBrakeEngaged (2), - collisionWarningEngaged (3), - accEngaged (4), - cruiseControlEngaged (5), - speedLimiterEngaged (6) -} (SIZE(7)) -``` - -## SemiAxisLength - - - -Fields: -```asn1 -SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) -``` - -## CauseCode - - - -Fields: -* causeCode [**CauseCodeType**](#CauseCodeType)
-* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
-```asn1 -CauseCode ::= SEQUENCE { - causeCode CauseCodeType, - subCauseCode SubCauseCodeType, - ... -} -``` - -## CauseCodeType - - - -Fields: -```asn1 -CauseCodeType ::= INTEGER { - reserved (0), - trafficCondition (1), - accident (2), - roadworks (3), - impassability (5), - adverseWeatherCondition-Adhesion (6), - aquaplannning (7), - hazardousLocation-SurfaceCondition (9), - hazardousLocation-ObstacleOnTheRoad (10), - hazardousLocation-AnimalOnTheRoad (11), - humanPresenceOnTheRoad (12), - wrongWayDriving (14), - rescueAndRecoveryWorkInProgress (15), - adverseWeatherCondition-ExtremeWeatherCondition (17), - adverseWeatherCondition-Visibility (18), - adverseWeatherCondition-Precipitation (19), - slowVehicle (26), - dangerousEndOfQueue (27), - vehicleBreakdown (91), - postCrash (92), - humanProblem (93), - stationaryVehicle (94), - emergencyVehicleApproaching (95), - hazardousLocation-DangerousCurve (96), - collisionRisk (97), - signalViolation (98), - dangerousSituation (99) -} (0..255) -``` - -## SubCauseCodeType - - - -```asn1 -SubCauseCodeType ::= INTEGER (0..255) -``` - -## TrafficConditionSubCauseCode - - - -Fields: -```asn1 -TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) -``` - -## AccidentSubCauseCode - - - -Fields: -```asn1 -AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) -``` - -## RoadworksSubCauseCode - - - -Fields: -```asn1 -RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) -``` - -## HumanPresenceOnTheRoadSubCauseCode - - - -Fields: -```asn1 -HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) -``` - -## WrongWayDrivingSubCauseCode - - - -Fields: -```asn1 -WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) -``` - -## AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode - - - -Fields: -```asn1 -AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) -``` - -## AdverseWeatherCondition-AdhesionSubCauseCode - - - -Fields: -```asn1 -AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255) -``` - -## AdverseWeatherCondition-VisibilitySubCauseCode - - - -Fields: -```asn1 -AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) -``` - -## AdverseWeatherCondition-PrecipitationSubCauseCode - - - -Fields: -```asn1 -AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) -``` - -## SlowVehicleSubCauseCode - - - -Fields: -```asn1 -SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) -``` - -## StationaryVehicleSubCauseCode - - - -Fields: -```asn1 -StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) -``` - -## HumanProblemSubCauseCode - - - -Fields: -```asn1 -HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) -``` - -## EmergencyVehicleApproachingSubCauseCode - - - -Fields: -```asn1 -EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) -``` - -## HazardousLocation-DangerousCurveSubCauseCode - - - -Fields: -```asn1 -HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) -``` - -## HazardousLocation-SurfaceConditionSubCauseCode - - - -Fields: -```asn1 -HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255) -``` - -## HazardousLocation-ObstacleOnTheRoadSubCauseCode - - - -Fields: -```asn1 -HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) -``` - -## HazardousLocation-AnimalOnTheRoadSubCauseCode - - - -Fields: -```asn1 -HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) -``` - -## CollisionRiskSubCauseCode - - - -Fields: -```asn1 -CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) -``` - -## SignalViolationSubCauseCode - - - -Fields: -```asn1 -SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) -``` - -## RescueAndRecoveryWorkInProgressSubCauseCode - - - -Fields: -```asn1 -RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) -``` - -## DangerousEndOfQueueSubCauseCode - - - -Fields: -```asn1 -DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) -``` - -## DangerousSituationSubCauseCode - - - -Fields: -```asn1 -DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) -``` - -## VehicleBreakdownSubCauseCode - - - -Fields: -```asn1 -VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) -``` - -## PostCrashSubCauseCode - - - -Fields: -```asn1 -PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) -``` - -## Curvature - - - -Fields: -* curvatureValue [**CurvatureValue**](#CurvatureValue)
-* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
-```asn1 -Curvature ::= SEQUENCE { - curvatureValue CurvatureValue, - curvatureConfidence CurvatureConfidence -} -``` - -## CurvatureValue - - - -Fields: -```asn1 -CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) -``` - -## CurvatureConfidence - - - -Fields: -```asn1 -CurvatureConfidence ::= ENUMERATED { - onePerMeter-0-00002 (0), - onePerMeter-0-0001 (1), - onePerMeter-0-0005 (2), - onePerMeter-0-002 (3), - onePerMeter-0-01 (4), - onePerMeter-0-1 (5), - outOfRange (6), - unavailable (7) -} -``` - -## CurvatureCalculationMode - - - -Fields: -```asn1 -CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} -``` - -## Heading - - - -Fields: -* headingValue [**HeadingValue**](#HeadingValue)
-* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
-```asn1 -Heading ::= SEQUENCE { - headingValue HeadingValue, - headingConfidence HeadingConfidence -} -``` - -## HeadingValue - - - -Fields: -```asn1 -HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) -``` - -## HeadingConfidence - - - -Fields: -```asn1 -HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) -``` - -## LanePosition - - - -Fields: -```asn1 -LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), -outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) -``` - -## ClosedLanes - - - -Fields: -* innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
-* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
-* drivingLaneStatus [**DrivingLaneStatus**](#DrivingLaneStatus) OPTIONAL
-```asn1 -ClosedLanes ::= SEQUENCE { - innerhardShoulderStatus HardShoulderStatus OPTIONAL, - outerhardShoulderStatus HardShoulderStatus OPTIONAL, - drivingLaneStatus DrivingLaneStatus OPTIONAL, - ... -} -``` - -## HardShoulderStatus - - - -Fields: -```asn1 -HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} -``` - -## DrivingLaneStatus - - - -```asn1 -DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) -``` - -## PerformanceClass - - - -Fields: -```asn1 -PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) -``` - -## SpeedValue - - - -Fields: -```asn1 -SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) -``` - -## SpeedConfidence - - - -Fields: -```asn1 -SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) -``` - -## VehicleMass - - - -Fields: -```asn1 -VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) -``` - -## Speed - - - -Fields: -* speedValue [**SpeedValue**](#SpeedValue)
-* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
-```asn1 -Speed ::= SEQUENCE { - speedValue SpeedValue, - speedConfidence SpeedConfidence -} -``` - -## DriveDirection - - - -Fields: -```asn1 -DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} -``` - -## EmbarkationStatus - - - -```asn1 -EmbarkationStatus ::= BOOLEAN -``` - -## LongitudinalAcceleration - - - -Fields: -* longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
-* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
-```asn1 -LongitudinalAcceleration ::= SEQUENCE { - longitudinalAccelerationValue LongitudinalAccelerationValue, - longitudinalAccelerationConfidence AccelerationConfidence -} -``` - -## LongitudinalAccelerationValue - - - -Fields: -```asn1 -LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) -``` - -## AccelerationConfidence - - - -Fields: -```asn1 -AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) -``` - -## LateralAcceleration - - - -Fields: -* lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
-* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
-```asn1 -LateralAcceleration ::= SEQUENCE { - lateralAccelerationValue LateralAccelerationValue, - lateralAccelerationConfidence AccelerationConfidence -} -``` - -## LateralAccelerationValue - - - -Fields: -```asn1 -LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) -``` - -## VerticalAcceleration - - - -Fields: -* verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
-* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
-```asn1 -VerticalAcceleration ::= SEQUENCE { - verticalAccelerationValue VerticalAccelerationValue, - verticalAccelerationConfidence AccelerationConfidence -} -``` - -## VerticalAccelerationValue - - - -Fields: -```asn1 -VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) -``` - -## StationType - - - -Fields: -```asn1 -StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), -lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) -``` - -## ExteriorLights - - - -Fields: -```asn1 -ExteriorLights ::= BIT STRING { - lowBeamHeadlightsOn (0), - highBeamHeadlightsOn (1), - leftTurnSignalOn (2), - rightTurnSignalOn (3), - daytimeRunningLightsOn (4), - reverseLightOn (5), - fogLightOn (6), - parkingLightsOn (7) -} (SIZE(8)) -``` - -## DangerousGoodsBasic - - - -Fields: -```asn1 -DangerousGoodsBasic::= ENUMERATED { - explosives1(0), - explosives2(1), - explosives3(2), - explosives4(3), - explosives5(4), - explosives6(5), - flammableGases(6), - nonFlammableGases(7), - toxicGases(8), - flammableLiquids(9), - flammableSolids(10), - substancesLiableToSpontaneousCombustion(11), - substancesEmittingFlammableGasesUponContactWithWater(12), - oxidizingSubstances(13), - organicPeroxides(14), - toxicSubstances(15), - infectiousSubstances(16), - radioactiveMaterial(17), - corrosiveSubstances(18), - miscellaneousDangerousSubstances(19) -} -``` - -## DangerousGoodsExtended - - - -Fields: -* dangerousGoodsType [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
-* unNumber **INTEGER** (0..9999)
-* elevatedTemperature **BOOLEAN**
-* tunnelsRestricted **BOOLEAN**
-* limitedQuantity **BOOLEAN**
-* emergencyActionCode [**IA5String**](#IA5String) (SIZE (1..24)) OPTIONAL
-* phoneNumber [**PhoneNumber**](#PhoneNumber) OPTIONAL
-* companyName [**UTF8String**](#UTF8String) (SIZE (1..24)) OPTIONAL
-```asn1 -DangerousGoodsExtended ::= SEQUENCE { - dangerousGoodsType DangerousGoodsBasic, - unNumber INTEGER (0..9999), - elevatedTemperature BOOLEAN, - tunnelsRestricted BOOLEAN, - limitedQuantity BOOLEAN, - emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, - phoneNumber PhoneNumber OPTIONAL, - companyName UTF8String (SIZE (1..24)) OPTIONAL, - ... -} -``` - -## SpecialTransportType - - - -Fields: -```asn1 -SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) -``` - -## LightBarSirenInUse - - - -Fields: -```asn1 -LightBarSirenInUse ::= BIT STRING { - lightBarActivated (0), - sirenActivated (1) -} (SIZE(2)) -``` - -## HeightLonCarr - - - -Fields: -```asn1 -HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) -``` - -## PosLonCarr - - - -Fields: -```asn1 -PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) -``` - -## PosPillar - - - -Fields: -```asn1 -PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) -``` - -## PosCentMass - - - -Fields: -```asn1 -PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) -``` - -## RequestResponseIndication - - - -Fields: -```asn1 -RequestResponseIndication ::= ENUMERATED {request(0), response(1)} -``` - -## SpeedLimit - - - -Fields: -```asn1 -SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) -``` - -## StationarySince - - - -Fields: -```asn1 -StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} -``` - -## Temperature - - - -Fields: -```asn1 -Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) -``` - -## TrafficRule - - - -Fields: -```asn1 -TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... -} -``` - -## WheelBaseVehicle - - - -Fields: -```asn1 -WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) -``` - -## TurningRadius - - - -Fields: -```asn1 -TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) -``` - -## PosFrontAx - - - -Fields: -```asn1 -PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) -``` - -## PositionOfOccupants - - - -Fields: -```asn1 -PositionOfOccupants ::= BIT STRING { - row1LeftOccupied (0), - row1RightOccupied (1), - row1MidOccupied (2), - row1NotDetectable (3), - row1NotPresent (4), - row2LeftOccupied (5), - row2RightOccupied (6), - row2MidOccupied (7), - row2NotDetectable (8), - row2NotPresent (9), - row3LeftOccupied (10), - row3RightOccupied (11), - row3MidOccupied (12), - row3NotDetectable (13), - row3NotPresent (14), - row4LeftOccupied (15), - row4RightOccupied (16), - row4MidOccupied (17), - row4NotDetectable (18), - row4NotPresent (19)} (SIZE(20)) -``` - -## PositioningSolutionType - - - -Fields: -```asn1 -PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} -``` - -## VehicleIdentification - - - -Fields: -* wMInumber [**WMInumber**](#WMInumber) OPTIONAL
-* vDS [**VDS**](#VDS) OPTIONAL
-```asn1 -VehicleIdentification ::= SEQUENCE { - wMInumber WMInumber OPTIONAL, - vDS VDS OPTIONAL, - ... -} -``` - -## WMInumber - - - -```asn1 -WMInumber ::= IA5String (SIZE(1..3)) -``` - -## VDS - - - -```asn1 -VDS ::= IA5String (SIZE(6)) -``` - -## EnergyStorageType - - - -Fields: -```asn1 -EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) -``` - -## VehicleLength - - - -Fields: -* vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
-* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
-```asn1 -VehicleLength ::= SEQUENCE { - vehicleLengthValue VehicleLengthValue, - vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication -} -``` - -## VehicleLengthValue - - - -Fields: -```asn1 -VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) -``` - -## VehicleLengthConfidenceIndication - - - -Fields: -```asn1 -VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} -``` - -## VehicleWidth - - - -Fields: -```asn1 -VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) -``` - -## PathHistory - - - -```asn1 -PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint -``` - -## EmergencyPriority - - - -Fields: -```asn1 -EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) -``` - -## InformationQuality - - - -Fields: -```asn1 -InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) -``` - -## RoadType - - - -Fields: -```asn1 -RoadType ::= ENUMERATED { - urban-NoStructuralSeparationToOppositeLanes(0), - urban-WithStructuralSeparationToOppositeLanes(1), - nonUrban-NoStructuralSeparationToOppositeLanes(2), - nonUrban-WithStructuralSeparationToOppositeLanes(3)} -``` - -## SteeringWheelAngle - - - -Fields: -* steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
-* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
-```asn1 -SteeringWheelAngle ::= SEQUENCE { - steeringWheelAngleValue SteeringWheelAngleValue, - steeringWheelAngleConfidence SteeringWheelAngleConfidence -} -``` - -## SteeringWheelAngleValue - - - -Fields: -```asn1 -SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) -``` - -## SteeringWheelAngleConfidence - - - -Fields: -```asn1 -SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) -``` - -## TimestampIts - - - -Fields: -```asn1 -TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) -``` - -## VehicleRole - - - -Fields: -```asn1 -VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} -``` - -## YawRate - - - -Fields: -* yawRateValue [**YawRateValue**](#YawRateValue)
-* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
-```asn1 -YawRate::= SEQUENCE { - yawRateValue YawRateValue, - yawRateConfidence YawRateConfidence -} -``` - -## YawRateValue - - - -Fields: -```asn1 -YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) -``` - -## YawRateConfidence - - - -Fields: -```asn1 -YawRateConfidence ::= ENUMERATED { - degSec-000-01 (0), - degSec-000-05 (1), - degSec-000-10 (2), - degSec-001-00 (3), - degSec-005-00 (4), - degSec-010-00 (5), - degSec-100-00 (6), - outOfRange (7), - unavailable (8) -} -``` - -## ProtectedZoneType - - - -Fields: -```asn1 -ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } -``` - -## RelevanceDistance - - - -Fields: -```asn1 -RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} -``` - -## RelevanceTrafficDirection - - - -Fields: -```asn1 -RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} -``` - -## TransmissionInterval - - - -Fields: -```asn1 -TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) -``` - -## ValidityDuration - - - -Fields: -```asn1 -ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) -``` - -## ActionID - - - -Fields: -* originatingStationID [**StationID**](ITS-Container.md#StationID)
-* sequenceNumber [**SequenceNumber**](#SequenceNumber)
-```asn1 -ActionID ::= SEQUENCE { - originatingStationID StationID, - sequenceNumber SequenceNumber -} -``` - -## ItineraryPath - - - -```asn1 -ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition -``` - -## ProtectedCommunicationZone - - - -Fields: -* protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
-* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
-* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
-* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
-* protectedZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
-* protectedZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
-```asn1 -ProtectedCommunicationZone ::= SEQUENCE { - protectedZoneType ProtectedZoneType, - expiryTime TimestampIts OPTIONAL, - protectedZoneLatitude Latitude, - protectedZoneLongitude Longitude, - protectedZoneRadius ProtectedZoneRadius OPTIONAL, - protectedZoneID ProtectedZoneID OPTIONAL, - ... -} -``` - -## Traces - - - -```asn1 -Traces ::= SEQUENCE SIZE(1..7) OF PathHistory -``` - -## NumberOfOccupants - - - -Fields: -```asn1 -NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) -``` - -## SequenceNumber - - - -```asn1 -SequenceNumber ::= INTEGER (0..65535) -``` - -## PositionOfPillars - - - -```asn1 -PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar -``` - -## RestrictedTypes - - - -```asn1 -RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType -``` - -## EventHistory - - - -```asn1 -EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint -``` - -## EventPoint - - - -Fields: -* eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
-* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
-* informationQuality [**InformationQuality**](#InformationQuality)
-```asn1 -EventPoint ::= SEQUENCE { - eventPosition DeltaReferencePosition, - eventDeltaTime PathDeltaTime OPTIONAL, - informationQuality InformationQuality -} -``` - -## ProtectedCommunicationZonesRSU - - - -```asn1 -ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone -``` - -## CenDsrcTollingZone - - - -Fields: -* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
-* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
-* cenDsrcTollingZoneID [**CenDsrcTollingZoneID**](#CenDsrcTollingZoneID) OPTIONAL
-```asn1 -CenDsrcTollingZone ::= SEQUENCE { - protectedZoneLatitude Latitude, - protectedZoneLongitude Longitude, - cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, - ... -} -``` - -## ProtectedZoneRadius - - - -Fields: -```asn1 -ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) -``` - -## ProtectedZoneID - - - -```asn1 -ProtectedZoneID ::= INTEGER (0.. 134217727) -``` - -## CenDsrcTollingZoneID - - - -```asn1 -CenDsrcTollingZoneID ::= ProtectedZoneID -``` - -## DigitalMap - - - -```asn1 -DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition -``` - -## OpeningDaysHours - - - -```asn1 -OpeningDaysHours ::= UTF8String -``` - -## PhoneNumber - - - -```asn1 -PhoneNumber ::= NumericString (SIZE(1..16)) -``` - - - +# ASN.1 module ITS-Container + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ + +## Data Elements: +### ItsPduHeader + + + +Fields: +* protocolVersion **INTEGER** (0..255)
+* messageID **INTEGER** { denm(1)
+```asn1 +ItsPduHeader ::= SEQUENCE { + protocolVersion INTEGER (0..255), + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 + stationID StationID +} +``` + +### StationID + + + +```asn1 +StationID ::= INTEGER(0..4294967295) +``` + +### ReferencePosition + + + +Fields: +* latitude [**Latitude**](ITS-Container.md#Latitude)
+* longitude [**Longitude**](ITS-Container.md#Longitude)
+* positionConfidenceEllipse [**PosConfidenceEllipse**](#PosConfidenceEllipse)
+* altitude [**Altitude**](#Altitude)
+```asn1 +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse , + altitude Altitude +} +``` + +### DeltaReferencePosition + + + +Fields: +* deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
+* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
+* deltaAltitude [**DeltaAltitude**](#DeltaAltitude)
+```asn1 +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} +``` + +### Longitude + + + +Fields: +```asn1 +Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) +``` + +### Latitude + + + +Fields: +```asn1 +Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) +``` + +### Altitude + + + +Fields: +* altitudeValue [**AltitudeValue**](#AltitudeValue)
+* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
+```asn1 +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} +``` + +### AltitudeValue + + + +Fields: +```asn1 +AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) +``` + +### AltitudeConfidence + + + +Fields: +```asn1 +AltitudeConfidence ::= ENUMERATED { + alt-000-01 (0), + alt-000-02 (1), + alt-000-05 (2), + alt-000-10 (3), + alt-000-20 (4), + alt-000-50 (5), + alt-001-00 (6), + alt-002-00 (7), + alt-005-00 (8), + alt-010-00 (9), + alt-020-00 (10), + alt-050-00 (11), + alt-100-00 (12), + alt-200-00 (13), + outOfRange (14), + unavailable (15) +} +``` + +### DeltaLongitude + + + +Fields: +```asn1 +DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) +``` + +### DeltaLatitude + + + +Fields: +```asn1 +DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) +``` + +### DeltaAltitude + + + +Fields: +```asn1 +DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) +``` + +### PosConfidenceEllipse + + + +Fields: +* semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
+* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
+* semiMajorOrientation [**HeadingValue**](#HeadingValue)
+```asn1 +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} +``` + +### PathPoint + + + +Fields: +* pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
+* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
+```asn1 +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} +``` + +### PathDeltaTime + + + +Fields: +```asn1 +PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) +``` + +### PtActivation + + + +Fields: +* ptActivationType [**PtActivationType**](#PtActivationType)
+* ptActivationData [**PtActivationData**](#PtActivationData)
+```asn1 +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} +``` + +### PtActivationType + + + +Fields: +```asn1 +PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) +``` + +### PtActivationData + + + +```asn1 +PtActivationData ::= OCTET STRING (SIZE(1..20)) +``` + +### AccelerationControl + + + +Fields: +```asn1 +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) +``` + +### SemiAxisLength + + + +Fields: +```asn1 +SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) +``` + +### CauseCode + + + +Fields: +* causeCode [**CauseCodeType**](#CauseCodeType)
+* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
+```asn1 +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} +``` + +### CauseCodeType + + + +Fields: +```asn1 +CauseCodeType ::= INTEGER { + reserved (0), + trafficCondition (1), + accident (2), + roadworks (3), + impassability (5), + adverseWeatherCondition-Adhesion (6), + aquaplannning (7), + hazardousLocation-SurfaceCondition (9), + hazardousLocation-ObstacleOnTheRoad (10), + hazardousLocation-AnimalOnTheRoad (11), + humanPresenceOnTheRoad (12), + wrongWayDriving (14), + rescueAndRecoveryWorkInProgress (15), + adverseWeatherCondition-ExtremeWeatherCondition (17), + adverseWeatherCondition-Visibility (18), + adverseWeatherCondition-Precipitation (19), + slowVehicle (26), + dangerousEndOfQueue (27), + vehicleBreakdown (91), + postCrash (92), + humanProblem (93), + stationaryVehicle (94), + emergencyVehicleApproaching (95), + hazardousLocation-DangerousCurve (96), + collisionRisk (97), + signalViolation (98), + dangerousSituation (99) +} (0..255) +``` + +### SubCauseCodeType + + + +```asn1 +SubCauseCodeType ::= INTEGER (0..255) +``` + +### TrafficConditionSubCauseCode + + + +Fields: +```asn1 +TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) +``` + +### AccidentSubCauseCode + + + +Fields: +```asn1 +AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) +``` + +### RoadworksSubCauseCode + + + +Fields: +```asn1 +RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) +``` + +### HumanPresenceOnTheRoadSubCauseCode + + + +Fields: +```asn1 +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) +``` + +### WrongWayDrivingSubCauseCode + + + +Fields: +```asn1 +WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) +``` + +### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) +``` + +### AdverseWeatherCondition-AdhesionSubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255) +``` + +### AdverseWeatherCondition-VisibilitySubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) +``` + +### AdverseWeatherCondition-PrecipitationSubCauseCode + + + +Fields: +```asn1 +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) +``` + +### SlowVehicleSubCauseCode + + + +Fields: +```asn1 +SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) +``` + +### StationaryVehicleSubCauseCode + + + +Fields: +```asn1 +StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) +``` + +### HumanProblemSubCauseCode + + + +Fields: +```asn1 +HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) +``` + +### EmergencyVehicleApproachingSubCauseCode + + + +Fields: +```asn1 +EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) +``` + +### HazardousLocation-DangerousCurveSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) +``` + +### HazardousLocation-SurfaceConditionSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255) +``` + +### HazardousLocation-ObstacleOnTheRoadSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) +``` + +### HazardousLocation-AnimalOnTheRoadSubCauseCode + + + +Fields: +```asn1 +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) +``` + +### CollisionRiskSubCauseCode + + + +Fields: +```asn1 +CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) +``` + +### SignalViolationSubCauseCode + + + +Fields: +```asn1 +SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) +``` + +### RescueAndRecoveryWorkInProgressSubCauseCode + + + +Fields: +```asn1 +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) +``` + +### DangerousEndOfQueueSubCauseCode + + + +Fields: +```asn1 +DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) +``` + +### DangerousSituationSubCauseCode + + + +Fields: +```asn1 +DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) +``` + +### VehicleBreakdownSubCauseCode + + + +Fields: +```asn1 +VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) +``` + +### PostCrashSubCauseCode + + + +Fields: +```asn1 +PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) +``` + +### Curvature + + + +Fields: +* curvatureValue [**CurvatureValue**](#CurvatureValue)
+* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
+```asn1 +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} +``` + +### CurvatureValue + + + +Fields: +```asn1 +CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) +``` + +### CurvatureConfidence + + + +Fields: +```asn1 +CurvatureConfidence ::= ENUMERATED { + onePerMeter-0-00002 (0), + onePerMeter-0-0001 (1), + onePerMeter-0-0005 (2), + onePerMeter-0-002 (3), + onePerMeter-0-01 (4), + onePerMeter-0-1 (5), + outOfRange (6), + unavailable (7) +} +``` + +### CurvatureCalculationMode + + + +Fields: +```asn1 +CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} +``` + +### Heading + + + +Fields: +* headingValue [**HeadingValue**](#HeadingValue)
+* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
+```asn1 +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} +``` + +### HeadingValue + + + +Fields: +```asn1 +HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) +``` + +### HeadingConfidence + + + +Fields: +```asn1 +HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) +``` + +### LanePosition + + + +Fields: +```asn1 +LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), +outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) +``` + +### ClosedLanes + + + +Fields: +* innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
+* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
+* drivingLaneStatus [**DrivingLaneStatus**](#DrivingLaneStatus) OPTIONAL
+```asn1 +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} +``` + +### HardShoulderStatus + + + +Fields: +```asn1 +HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} +``` + +### DrivingLaneStatus + + + +```asn1 +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) +``` + +### PerformanceClass + + + +Fields: +```asn1 +PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) +``` + +### SpeedValue + + + +Fields: +```asn1 +SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) +``` + +### SpeedConfidence + + + +Fields: +```asn1 +SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) +``` + +### VehicleMass + + + +Fields: +```asn1 +VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) +``` + +### Speed + + + +Fields: +* speedValue [**SpeedValue**](#SpeedValue)
+* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
+```asn1 +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} +``` + +### DriveDirection + + + +Fields: +```asn1 +DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} +``` + +### EmbarkationStatus + + + +```asn1 +EmbarkationStatus ::= BOOLEAN +``` + +### LongitudinalAcceleration + + + +Fields: +* longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
+* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} +``` + +### LongitudinalAccelerationValue + + + +Fields: +```asn1 +LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) +``` + +### AccelerationConfidence + + + +Fields: +```asn1 +AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) +``` + +### LateralAcceleration + + + +Fields: +* lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
+* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} +``` + +### LateralAccelerationValue + + + +Fields: +```asn1 +LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) +``` + +### VerticalAcceleration + + + +Fields: +* verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
+* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} +``` + +### VerticalAccelerationValue + + + +Fields: +```asn1 +VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) +``` + +### StationType + + + +Fields: +```asn1 +StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), +lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) +``` + +### ExteriorLights + + + +Fields: +```asn1 +ExteriorLights ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) +``` + +### DangerousGoodsBasic + + + +Fields: +```asn1 +DangerousGoodsBasic::= ENUMERATED { + explosives1(0), + explosives2(1), + explosives3(2), + explosives4(3), + explosives5(4), + explosives6(5), + flammableGases(6), + nonFlammableGases(7), + toxicGases(8), + flammableLiquids(9), + flammableSolids(10), + substancesLiableToSpontaneousCombustion(11), + substancesEmittingFlammableGasesUponContactWithWater(12), + oxidizingSubstances(13), + organicPeroxides(14), + toxicSubstances(15), + infectiousSubstances(16), + radioactiveMaterial(17), + corrosiveSubstances(18), + miscellaneousDangerousSubstances(19) +} +``` + +### DangerousGoodsExtended + + + +Fields: +* dangerousGoodsType [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
+* unNumber **INTEGER** (0..9999)
+* elevatedTemperature **BOOLEAN**
+* tunnelsRestricted **BOOLEAN**
+* limitedQuantity **BOOLEAN**
+* emergencyActionCode [**IA5String**](#IA5String) (SIZE (1..24)) OPTIONAL
+* phoneNumber [**PhoneNumber**](#PhoneNumber) OPTIONAL
+* companyName [**UTF8String**](#UTF8String) (SIZE (1..24)) OPTIONAL
+```asn1 +DangerousGoodsExtended ::= SEQUENCE { + dangerousGoodsType DangerousGoodsBasic, + unNumber INTEGER (0..9999), + elevatedTemperature BOOLEAN, + tunnelsRestricted BOOLEAN, + limitedQuantity BOOLEAN, + emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, + phoneNumber PhoneNumber OPTIONAL, + companyName UTF8String (SIZE (1..24)) OPTIONAL, + ... +} +``` + +### SpecialTransportType + + + +Fields: +```asn1 +SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) +``` + +### LightBarSirenInUse + + + +Fields: +```asn1 +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) +``` + +### HeightLonCarr + + + +Fields: +```asn1 +HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) +``` + +### PosLonCarr + + + +Fields: +```asn1 +PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) +``` + +### PosPillar + + + +Fields: +```asn1 +PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) +``` + +### PosCentMass + + + +Fields: +```asn1 +PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) +``` + +### RequestResponseIndication + + + +Fields: +```asn1 +RequestResponseIndication ::= ENUMERATED {request(0), response(1)} +``` + +### SpeedLimit + + + +Fields: +```asn1 +SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) +``` + +### StationarySince + + + +Fields: +```asn1 +StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} +``` + +### Temperature + + + +Fields: +```asn1 +Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) +``` + +### TrafficRule + + + +Fields: +```asn1 +TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... +} +``` + +### WheelBaseVehicle + + + +Fields: +```asn1 +WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) +``` + +### TurningRadius + + + +Fields: +```asn1 +TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) +``` + +### PosFrontAx + + + +Fields: +```asn1 +PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) +``` + +### PositionOfOccupants + + + +Fields: +```asn1 +PositionOfOccupants ::= BIT STRING { + row1LeftOccupied (0), + row1RightOccupied (1), + row1MidOccupied (2), + row1NotDetectable (3), + row1NotPresent (4), + row2LeftOccupied (5), + row2RightOccupied (6), + row2MidOccupied (7), + row2NotDetectable (8), + row2NotPresent (9), + row3LeftOccupied (10), + row3RightOccupied (11), + row3MidOccupied (12), + row3NotDetectable (13), + row3NotPresent (14), + row4LeftOccupied (15), + row4RightOccupied (16), + row4MidOccupied (17), + row4NotDetectable (18), + row4NotPresent (19)} (SIZE(20)) +``` + +### PositioningSolutionType + + + +Fields: +```asn1 +PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} +``` + +### VehicleIdentification + + + +Fields: +* wMInumber [**WMInumber**](#WMInumber) OPTIONAL
+* vDS [**VDS**](#VDS) OPTIONAL
+```asn1 +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} +``` + +### WMInumber + + + +```asn1 +WMInumber ::= IA5String (SIZE(1..3)) +``` + +### VDS + + + +```asn1 +VDS ::= IA5String (SIZE(6)) +``` + +### EnergyStorageType + + + +Fields: +```asn1 +EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) +``` + +### VehicleLength + + + +Fields: +* vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
+* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
+```asn1 +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} +``` + +### VehicleLengthValue + + + +Fields: +```asn1 +VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) +``` + +### VehicleLengthConfidenceIndication + + + +Fields: +```asn1 +VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} +``` + +### VehicleWidth + + + +Fields: +```asn1 +VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) +``` + +### PathHistory + + + +```asn1 +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint +``` + +### EmergencyPriority + + + +Fields: +```asn1 +EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) +``` + +### InformationQuality + + + +Fields: +```asn1 +InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) +``` + +### RoadType + + + +Fields: +```asn1 +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes(0), + urban-WithStructuralSeparationToOppositeLanes(1), + nonUrban-NoStructuralSeparationToOppositeLanes(2), + nonUrban-WithStructuralSeparationToOppositeLanes(3)} +``` + +### SteeringWheelAngle + + + +Fields: +* steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
+* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
+```asn1 +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} +``` + +### SteeringWheelAngleValue + + + +Fields: +```asn1 +SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) +``` + +### SteeringWheelAngleConfidence + + + +Fields: +```asn1 +SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) +``` + +### TimestampIts + + + +Fields: +```asn1 +TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) +``` + +### VehicleRole + + + +Fields: +```asn1 +VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} +``` + +### YawRate + + + +Fields: +* yawRateValue [**YawRateValue**](#YawRateValue)
+* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
+```asn1 +YawRate::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} +``` + +### YawRateValue + + + +Fields: +```asn1 +YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) +``` + +### YawRateConfidence + + + +Fields: +```asn1 +YawRateConfidence ::= ENUMERATED { + degSec-000-01 (0), + degSec-000-05 (1), + degSec-000-10 (2), + degSec-001-00 (3), + degSec-005-00 (4), + degSec-010-00 (5), + degSec-100-00 (6), + outOfRange (7), + unavailable (8) +} +``` + +### ProtectedZoneType + + + +Fields: +```asn1 +ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } +``` + +### RelevanceDistance + + + +Fields: +```asn1 +RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} +``` + +### RelevanceTrafficDirection + + + +Fields: +```asn1 +RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} +``` + +### TransmissionInterval + + + +Fields: +```asn1 +TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) +``` + +### ValidityDuration + + + +Fields: +```asn1 +ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) +``` + +### ActionID + + + +Fields: +* originatingStationID [**StationID**](ITS-Container.md#StationID)
+* sequenceNumber [**SequenceNumber**](#SequenceNumber)
+```asn1 +ActionID ::= SEQUENCE { + originatingStationID StationID, + sequenceNumber SequenceNumber +} +``` + +### ItineraryPath + + + +```asn1 +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition +``` + +### ProtectedCommunicationZone + + + +Fields: +* protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
+* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* protectedZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+* protectedZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+```asn1 +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneID ProtectedZoneID OPTIONAL, + ... +} +``` + +### Traces + + + +```asn1 +Traces ::= SEQUENCE SIZE(1..7) OF PathHistory +``` + +### NumberOfOccupants + + + +Fields: +```asn1 +NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) +``` + +### SequenceNumber + + + +```asn1 +SequenceNumber ::= INTEGER (0..65535) +``` + +### PositionOfPillars + + + +```asn1 +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar +``` + +### RestrictedTypes + + + +```asn1 +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType +``` + +### EventHistory + + + +```asn1 +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint +``` + +### EventPoint + + + +Fields: +* eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
+* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
+* informationQuality [**InformationQuality**](#InformationQuality)
+```asn1 +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} +``` + +### ProtectedCommunicationZonesRSU + + + +```asn1 +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone +``` + +### CenDsrcTollingZone + + + +Fields: +* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* cenDsrcTollingZoneID [**CenDsrcTollingZoneID**](#CenDsrcTollingZoneID) OPTIONAL
+```asn1 +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, + ... +} +``` + +### ProtectedZoneRadius + + + +Fields: +```asn1 +ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) +``` + +### ProtectedZoneID + + + +```asn1 +ProtectedZoneID ::= INTEGER (0.. 134217727) +``` + +### CenDsrcTollingZoneID + + + +```asn1 +CenDsrcTollingZoneID ::= ProtectedZoneID +``` + +### DigitalMap + + + +```asn1 +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition +``` + +### OpeningDaysHours + + + +```asn1 +OpeningDaysHours ::= UTF8String +``` + +### PhoneNumber + + + +```asn1 +PhoneNumber ::= NumericString (SIZE(1..16)) +``` + + + diff --git a/docs/VAM-Temp-Imports.md b/docs/VAM-Temp-Imports.md index c0247f6..6776730 100755 --- a/docs/VAM-Temp-Imports.md +++ b/docs/VAM-Temp-Imports.md @@ -1,183 +1,184 @@ -# ASN.1 module VAM-Temp-Imports - OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1)}_ - -## Imports: - * **ITS-Container** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}*
- - * **DSRC** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)}*
- -## BasicContainer - - - -Fields: -* stationType [**StationType**](ITS-Container.md#StationType)
-* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
-```asn1 -BasicContainer ::= SEQUENCE { - stationType StationType, -- from VAM-Temp-Imports - referencePosition ReferencePosition, -- from ITS-Container - ... -} -``` - -## ItsPduHeader - - - -Fields: -* protocolVersion **INTEGER** (0..255)
-* messageID **INTEGER** { denm(1)
-```asn1 -ItsPduHeader ::= SEQUENCE { - protocolVersion INTEGER (0..255), - messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), -- Mantis #7209, #7005 - stationID StationID -} -``` - -## AreaCircular - - - -Fields: -* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
-* radius [**Radius**](#Radius)
-```asn1 -AreaCircular ::= SEQUENCE { - nodeCenterPoint OffsetPoint OPTIONAL, - radius Radius -} -``` - -## AreaPolygon - - - -Fields: -* polyPointList [**PolyPointList**](#PolyPointList)
-```asn1 -AreaPolygon ::= SEQUENCE { - polyPointList PolyPointList -} -``` - -## AreaRectangle - - - -Fields: -* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
-* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
-* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
-* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
-* semiHeight [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength) OPTIONAL
-```asn1 -AreaRectangle ::= SEQUENCE { - nodeCenterPoint OffsetPoint OPTIONAL, - semiMajorRangeLength SemiRangeLength, - semiMinorRangeLength SemiRangeLength, - semiMajorRangeOrientation WGS84AngleValue, - semiHeight SemiRangeLength OPTIONAL -} -``` - -## OffsetPoint - - - -Fields: -* nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {...
-```asn1 -OffsetPoint ::= SEQUENCE{ - nodeOffsetPointXY NodeOffsetPointXY (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT}), - nodeOffsetPointZ NodeOffsetPointZ OPTIONAL -} -``` - -## NodeOffsetPointZ - - - -Fields: -* node-Z1 [**Offset-B10**](DSRC.md#Offset-B10)
-* node-Z2 [**Offset-B11**](DSRC.md#Offset-B11)
-* node-Z3 [**Offset-B12**](DSRC.md#Offset-B12)
-* node-Z4 [**Offset-B13**](DSRC.md#Offset-B13)
-* node-Z5 [**Offset-B14**](DSRC.md#Offset-B14)
-* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16) -- node is within 327.67m of last node
-```asn1 -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 -} -``` - -## Radius - - - -Fields: -```asn1 -Radius ::= INTEGER { - zeroPointOneMeter (1), - oneMeter (10) -} (0..10000) -``` - -## PolyPointList - - - -```asn1 -PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint -``` - -## SemiRangeLength - - - -Fields: -```asn1 -SemiRangeLength ::= INTEGER { - zeroPointOneMeter (1), - oneMeter (10) -} (0..10000) -``` - -## WGS84AngleValue - - - -Fields: -```asn1 -WGS84AngleValue ::= INTEGER { - wgs84North (0), - wgs84East (900), - wgs84South (1800), - wgs84West (2700), - unavailable (3601) -} (0..3601) -``` - -## StationType - - - -Fields: -```asn1 -StationType ::= INTEGER { - unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), - passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), - specialVehicles(10), tram(11), lightVruVehicle(12), animal(13), - roadSideUnit(15) -} -(0..255) -``` - - - +# ASN.1 module VAM-Temp-Imports + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1)}_ + +## Imports: + * **ITS-Container** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}*
+ + * **DSRC** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)}*
+ +## Data Elements: +### BasicContainer + + + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +BasicContainer ::= SEQUENCE { + stationType StationType, -- from VAM-Temp-Imports + referencePosition ReferencePosition, -- from ITS-Container + ... +} +``` + +### ItsPduHeader + + + +Fields: +* protocolVersion **INTEGER** (0..255)
+* messageID **INTEGER** { denm(1)
+```asn1 +ItsPduHeader ::= SEQUENCE { + protocolVersion INTEGER (0..255), + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), -- Mantis #7209, #7005 + stationID StationID +} +``` + +### AreaCircular + + + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+* radius [**Radius**](#Radius)
+```asn1 +AreaCircular ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + radius Radius +} +``` + +### AreaPolygon + + + +Fields: +* polyPointList [**PolyPointList**](#PolyPointList)
+```asn1 +AreaPolygon ::= SEQUENCE { + polyPointList PolyPointList +} +``` + +### AreaRectangle + + + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+* semiHeight [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength) OPTIONAL
+```asn1 +AreaRectangle ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue, + semiHeight SemiRangeLength OPTIONAL +} +``` + +### OffsetPoint + + + +Fields: +* nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {...
+```asn1 +OffsetPoint ::= SEQUENCE{ + nodeOffsetPointXY NodeOffsetPointXY (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT}), + nodeOffsetPointZ NodeOffsetPointZ OPTIONAL +} +``` + +### NodeOffsetPointZ + + + +Fields: +* node-Z1 [**Offset-B10**](DSRC.md#Offset-B10)
+* node-Z2 [**Offset-B11**](DSRC.md#Offset-B11)
+* node-Z3 [**Offset-B12**](DSRC.md#Offset-B12)
+* node-Z4 [**Offset-B13**](DSRC.md#Offset-B13)
+* node-Z5 [**Offset-B14**](DSRC.md#Offset-B14)
+* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16) -- node is within 327.67m of last node
+```asn1 +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 +} +``` + +### Radius + + + +Fields: +```asn1 +Radius ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### PolyPointList + + + +```asn1 +PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint +``` + +### SemiRangeLength + + + +Fields: +```asn1 +SemiRangeLength ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### WGS84AngleValue + + + +Fields: +```asn1 +WGS84AngleValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + unavailable (3601) +} (0..3601) +``` + +### StationType + + + +Fields: +```asn1 +StationType ::= INTEGER { + unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), + passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), + specialVehicles(10), tram(11), lightVruVehicle(12), animal(13), + roadSideUnit(15) +} +(0..255) +``` + + + -- GitLab From 6ab17525ae392eda3246a996f7a71eba38bf7d27 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 19 May 2021 11:41:24 +0200 Subject: [PATCH 51/85] Keep units in data descriptions --- IMZM-PDU-Descriptions.asn | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 6179d95..144819a 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -131,11 +131,14 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { --! --! @category: Communication information InterferenceManagementChannel ::= SEQUENCE { - --! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + --! Center of the channel frequency
+ --! Units: 10exp+2 Hz (where exp is exponent) centreFrequency INTEGER (1 .. 99999), - --! Width of the channel frequence band in 10exp Hz (where exp is exponent) + --! Width of the channel frequence band
+ --! Units: 10exp Hz (where exp is exponent) channelWidth INTEGER (0 .. 9999), - --! Exponent of the power of 10 in Mhz + --! Exponent of the power of 10
+ --! Units: MHz exponent INTEGER (0 .. 15) } @@ -181,13 +184,17 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl MitigationPerTechnologyClass ::= SEQUENCE { --! Channel access technology in which this mitigation is applied. accessTechnologyClass AccessTechnologyClass, - --! Duty cycle limit in 0.01% steps + --! Duty cycle limit
+ --! Units: 0.01% of steps lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - --! Power reduction in dB + --! Power reduction
+ --! Units: dB powerReduction INTEGER (0 .. 30) OPTIONAL, - --! Idle time limit in ms as defined in ETSI TS 103 175. + --! Idle time limit, as defined in ETSI TS 103 175.
+ --! Units: ms dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - --! Transmission duration limit in ms, as defined in ETSI EN 302 571. + --! Transmission duration limit, as defined in ETSI EN 302 571.
+ --! Units: ms dmcTonLimit INTEGER (0 .. 20) OPTIONAL, ... } -- GitLab From 5bddb8de59791b2b7cacdf05013153b2d6fc99c7 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Wed, 19 May 2021 09:41:55 +0000 Subject: [PATCH 52/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 62d42db..6f8eb60 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -214,11 +214,14 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { Fields: * centreFrequency **INTEGER** (1 .. 99999)
- Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + Center of the channel frequency
+ Units: 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
- Width of the channel frequence band in 10exp Hz (where exp is exponent) + Width of the channel frequence band
+ Units: 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15)
- Exponent of the power of 10 in Mhz + Exponent of the power of 10
+ Units: MHz ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -306,13 +309,17 @@ Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
Channel access technology in which this mitigation is applied. * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
- Duty cycle limit in 0.01% steps + Duty cycle limit
+ Units: 0.01% of steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL
- Power reduction in dB + Power reduction
+ Units: dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
- Idle time limit in ms as defined in ETSI TS 103 175. + Idle time limit, as defined in ETSI TS 103 175.
+ Units: ms * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
- Transmission duration limit in ms, as defined in ETSI EN 302 571. + Transmission duration limit, as defined in ETSI EN 302 571.
+ Units: ms ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, -- GitLab From 38a5509cadda6db0886b8a40a1f84fa29e7528ec Mon Sep 17 00:00:00 2001 From: wetterwald Date: Thu, 20 May 2021 21:33:45 +0200 Subject: [PATCH 53/85] Update IMZM-PDU-Descriptions.asn. Update of the comments when relevant + several corrections in the ASN.1 module itself. --- IMZM-PDU-Descriptions.asn | 62 ++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 144819a..40579bd 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -39,19 +39,19 @@ IMZM ::= SEQUENCE { --! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. --! For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. --! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. ---! For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. +--! For IMZM, the DE `messageID` shall be set to `imzm(15)`. header ItsPduHeader, imzm InterferenceManagementZoneMessage } ---! This is the actual @ref IMZM Payload. It shall include the time stamp of the @ref IMZM and the applicable +--! This DF is the actual @ref IMZM Payload. It shall include the time stamp of the @ref IMZM and the applicable --! containers of type @ref BasicContainer and @ref ImzmContainer. InterferenceManagementZoneMessage ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions imzmParameters ImzmParameters } ---! The sequence of containers in the @ref IMZM. Other containers may be added in the future. +--! This DF defines the sequence of containers in the @ref IMZM. Other containers may be added in the future. ImzmParameters ::= SEQUENCE { --! imported from @ref CAM-PDU-Descriptions basicContainer BasicContainer, @@ -60,8 +60,8 @@ ImzmParameters ::= SEQUENCE { ... } ---! The IMZM container includes a sequence of up to 16 interference management communication zones. ---! For each interference management communication zones, it contains a sequence of interference +--! The DF for IMZM container includes a sequence of up to 16 interference management zones. +--! For each interference management zones, it contains a sequence of interference --! management zones per channel together with their characteristics. ImzmContainer ::= SEQUENCE { --! Mapped to the DF @ref ProtectedCommunicationZone in ETSI TS 102 894-2 @@ -69,15 +69,15 @@ ImzmContainer ::= SEQUENCE { ... } ---! A list of up to 16 interference management communication zones. +--! This DF is made of a list of up to 16 interference management zones. --! --! > EXAMPLE: An interference management communication zone may be defined around a --! > CEN DSRC road side equipment or an urban rail operational area. --! --! @category: Infrastructure information, Communication information -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone ---! Describes a zone of interferenceManagement inside which the ITS communication should +--! This DF describes a zone of interferenceManagement inside which the ITS communication should --! be restricted. --! --! @category: Infrastructure information, Communication information @@ -86,7 +86,7 @@ InterferenceManagementZone ::= SEQUENCE { interferenceManagementInfo InterferenceManagementInfo } ---! Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! This DF describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. --! --! @category: Infrastructure information, Communication information @@ -104,14 +104,14 @@ ZoneDefinition::= SEQUENCE{ ... } ---! A list of up to 16 definitions of which interference management may be applied in the zone, +--! This DF includes a list of up to 16 definitions containing which interference management may be applied in the zone, --! per affected frequency channels. --! NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated --! by the value of interferenceManagementMitigationType set to unavailable. --! @category: Infrastructure information, Communication information InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ---! A break up of the interference management information per affected frequency channels. +--! This DF is a break up of the interference management information per affected frequency channels. --! --! @category: Infrastructure information, Communication information InterferenceManagementInfoPerChannel ::= SEQUENCE { @@ -127,24 +127,25 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ... } ---! Indicates which shared frequency channel should be applied interference management in the zone. +--! This DF indicates which shared frequency channel should be applied interference management in the zone. --! --! @category: Communication information InterferenceManagementChannel ::= SEQUENCE { - --! Center of the channel frequency
+ --! Centre of the channel frequency
--! Units: 10exp+2 Hz (where exp is exponent) centreFrequency INTEGER (1 .. 99999), - --! Width of the channel frequence band
+ --! Width of the channel
--! Units: 10exp Hz (where exp is exponent) channelWidth INTEGER (0 .. 9999), --! Exponent of the power of 10
- --! Units: MHz + --! Units: N/A exponent INTEGER (0 .. 15) } --! This DE defines the type of an interference management zone, so that an ITS-S can --! assert the actions to do while passing by such zone (e.g. reduce the transmit --! power in case of a DSRC tolling station).
+--! Units: N/A --! @category: Communication information InterferenceManagementZoneType ::= ENUMERATED { @@ -164,13 +165,13 @@ InterferenceManagementZoneType ::= ENUMERATED { --! It indicates the type of mitigation and the parameters to be used to protect the --! potential victim in the interference management zone per channel access technology class. --! @category: Communication information -InterferenceManagementMitigationType ::= SEQUENCE { - --! Default value to be used when data is not available - unavailable BOOLEAN OPTIONAL, +InterferenceManagementMitigationType ::= CHOICE { + --! unavailable is the default value to be used when data is not available + unavailable NULL, mitigationForTechnologies MitigationForTechnologies } ---! This DE defines the mitigation type container for the different channel access technology classes.
+--! This DF defines the mitigation type container for the different channel access technology classes.
--! Class of parameters for the relevant channel access technology classes, --! as specified in ETSI TS 103 724, clause 7. --! @category: Communication information @@ -183,7 +184,8 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl --! @category: Communication information MitigationPerTechnologyClass ::= SEQUENCE { --! Channel access technology in which this mitigation is applied. - accessTechnologyClass AccessTechnologyClass, + --! Units: N/A + accessTechnologyClass AccessTechnologyClass, --! Duty cycle limit
--! Units: 0.01% of steps lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, @@ -199,11 +201,11 @@ MitigationPerTechnologyClass ::= SEQUENCE { ... } ---! Access technology to which the mitigation type applies. +--! This DE indicates the access technology to which the mitigation type applies. --! @category: Communication information AccessTechnologyClass ::= ENUMERATED { - --! default value. - unavailable(0), + --! any access technology class (see clause 7 of TS 103 724). + any(0), --! ITS-G5 access technology class. itsg5Class(1), --! LTE-V2X access technology class. @@ -213,19 +215,19 @@ AccessTechnologyClass ::= ENUMERATED { ... } ---! Shape of the interference management zone. +--! This DF defines the shape of the interference management zone. +--! It represents the bounding box of an interference management zone --! @category: GeoReference information InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, - circle AreaCircular, - polygon AreaPolygon, + rectangle AreaRectangle, --! imported from VAM-Temp-Imports + circle AreaCircular, --! imported from VAM-Temp-Imports + polygon AreaPolygon, --! imported from VAM-Temp-Imports ellipse AreaEllipse, --! could not be imported from another specification yet ... } ---! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. ---! Describes an elliptical area. The ellipse is centred about the reference point ---! of the ITS-S or about the nodeCenterPoint (if provided). +--! This DF defines an ellipse area. It is copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. +--! The ellipse is centred about the reference point of the ITS-S or about the nodeCenterPoint (if provided). --! @category: GeoReference information AreaEllipse ::= SEQUENCE { --! Optional offset point about which the ellipse is centred with respect to the reference -- GitLab From 880f71cce29e9d84e0660483decfa17cf733982e Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 20 May 2021 19:34:18 +0000 Subject: [PATCH 54/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 60 +++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 6f8eb60..d0a38bf 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -28,7 +28,7 @@ Fields: The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. + For IMZM, the DE `messageID` shall be set to `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -39,7 +39,7 @@ IMZM ::= SEQUENCE { ### InterferenceManagementZoneMessage - This is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable + This DF is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). @@ -55,7 +55,7 @@ InterferenceManagementZoneMessage ::= SEQUENCE { ### ImzmParameters - The sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. + This DF defines the sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. Fields: @@ -73,8 +73,8 @@ ImzmParameters ::= SEQUENCE { ### ImzmContainer - The IMZM container includes a sequence of up to 16 interference management communication zones. - For each interference management communication zones, it contains a sequence of interference + The DF for IMZM container includes a sequence of up to 16 interference management zones. + For each interference management zones, it contains a sequence of interference management zones per channel together with their characteristics. @@ -90,7 +90,7 @@ ImzmContainer ::= SEQUENCE { ### InterferenceManagementZones - A list of up to 16 interference management communication zones. + This DF is made of a list of up to 16 interference management zones. > EXAMPLE: An interference management communication zone may be defined around a > CEN DSRC road side equipment or an urban rail operational area. @@ -100,12 +100,12 @@ ImzmContainer ::= SEQUENCE { ```asn1 -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone ``` ### InterferenceManagementZone - Describes a zone of interferenceManagement inside which the ITS communication should + This DF describes a zone of interferenceManagement inside which the ITS communication should be restricted.     Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -125,7 +125,7 @@ InterferenceManagementZone ::= SEQUENCE { ### ZoneDefinition - Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + This DF describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged.     Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -160,7 +160,7 @@ ZoneDefinition::= SEQUENCE{ ### InterferenceManagementInfo - A list of up to 16 definitions of which interference management may be applied in the zone, + This DF includes a list of up to 16 definitions containing which interference management may be applied in the zone, per affected frequency channels. NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated by the value of interferenceManagementMitigationType set to unavailable. @@ -176,7 +176,7 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ### InterferenceManagementInfoPerChannel - A break up of the interference management information per affected frequency channels. + This DF is a break up of the interference management information per affected frequency channels.     Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -205,7 +205,7 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ### InterferenceManagementChannel - Indicates which shared frequency channel should be applied interference management in the zone. + This DF indicates which shared frequency channel should be applied interference management in the zone.     Categories: [Communication information](#Communication+information) @@ -214,14 +214,14 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { Fields: * centreFrequency **INTEGER** (1 .. 99999)
- Center of the channel frequency
+ Centre of the channel frequency
Units: 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
- Width of the channel frequence band
+ Width of the channel
Units: 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15)
Exponent of the power of 10
- Units: MHz + Units: N/A ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -235,6 +235,7 @@ InterferenceManagementChannel ::= SEQUENCE { This DE defines the type of an interference management zone, so that an ITS-S can assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
+ Units: N/A     Categories: [Communication information](#Communication+information) @@ -268,19 +269,19 @@ InterferenceManagementZoneType ::= ENUMERATED { Fields: -* unavailable **BOOLEAN** OPTIONAL
- Default value to be used when data is not available +* unavailable [**NULL**](#NULL)
+ unavailable is the default value to be used when data is not available * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
```asn1 -InterferenceManagementMitigationType ::= SEQUENCE { - unavailable BOOLEAN OPTIONAL, +InterferenceManagementMitigationType ::= CHOICE { + unavailable NULL, mitigationForTechnologies MitigationForTechnologies } ``` ### MitigationForTechnologies - This DE defines the mitigation type container for the different channel access technology classes.
+ This DF defines the mitigation type container for the different channel access technology classes.
Class of parameters for the relevant channel access technology classes, as specified in ETSI TS 103 724, clause 7. @@ -308,6 +309,7 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
Channel access technology in which this mitigation is applied. + Units: N/A * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
Duty cycle limit
Units: 0.01% of steps @@ -322,7 +324,7 @@ Fields: Units: ms ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { - accessTechnologyClass AccessTechnologyClass, + accessTechnologyClass AccessTechnologyClass, lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, powerReduction INTEGER (0 .. 30) OPTIONAL, dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, @@ -333,7 +335,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { ### AccessTechnologyClass - Access technology to which the mitigation type applies. + This DE indicates the access technology to which the mitigation type applies.     Categories: [Communication information](#Communication+information) @@ -343,7 +345,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { Fields: ```asn1 AccessTechnologyClass ::= ENUMERATED { - unavailable(0), + any(0), itsg5Class(1), ltev2xClass(2), nrv2xClass(3), @@ -353,7 +355,8 @@ AccessTechnologyClass ::= ENUMERATED { ### InterferenceManagementZoneShape - Shape of the interference management zone. + This DF defines the shape of the interference management zone. + It represents the bounding box of an interference management zone     Categories: [GeoReference information](#GeoReference+information) @@ -363,13 +366,16 @@ AccessTechnologyClass ::= ENUMERATED { Fields: * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
+ imported from VAM-Temp-Imports * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
+ imported from VAM-Temp-Imports * ellipse [**AreaEllipse**](#AreaEllipse)
+ imported from VAM-Temp-Imports ```asn1 InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, - circle AreaCircular, - polygon AreaPolygon, + rectangle AreaRectangle, --! imported from VAM-Temp-Imports + circle AreaCircular, --! imported from VAM-Temp-Imports + polygon AreaPolygon, --! imported from VAM-Temp-Imports ellipse AreaEllipse, --! could not be imported from another specification yet ... } -- GitLab From 8dc3486523801f6c10ef93538cd5c86c93f1cde7 Mon Sep 17 00:00:00 2001 From: wetterwald Date: Thu, 20 May 2021 22:04:45 +0200 Subject: [PATCH 55/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 40579bd..d21d8dd 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -158,7 +158,7 @@ InterferenceManagementZoneType ::= ENUMERATED { ... } ---! This DE defines the mitigation type in the interference management zone. +--! This DF defines the mitigation type in the interference management zone. --! --! Information and commands defining the required mitigation type the --! receiving ITS-S has to use in the defined interference management zone. @@ -177,7 +177,7 @@ InterferenceManagementMitigationType ::= CHOICE { --! @category: Communication information MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass ---! This DE defines the mitigation type container per channel access technology class
+--! This DF defines the mitigation type container per channel access technology class
--! Class of parameters for the specific technology indicated in the container. --! All parameters are optional, as they may not apply to some of the technologies or --! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. -- GitLab From b4890a00326406ad3552975c8d307614b4185145 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 20 May 2021 20:05:13 +0000 Subject: [PATCH 56/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index d0a38bf..5fb1f66 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -257,7 +257,7 @@ InterferenceManagementZoneType ::= ENUMERATED { ### InterferenceManagementMitigationType - This DE defines the mitigation type in the interference management zone. + This DF defines the mitigation type in the interference management zone. Information and commands defining the required mitigation type the receiving ITS-S has to use in the defined interference management zone. It indicates the type of mitigation and the parameters to be used to protect the @@ -296,7 +296,7 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl ### MitigationPerTechnologyClass - This DE defines the mitigation type container per channel access technology class
+ This DF defines the mitigation type container per channel access technology class
Class of parameters for the specific technology indicated in the container. All parameters are optional, as they may not apply to some of the technologies or interference management zone types. Specification details are in ETSI TS 103 724, clause 7. -- GitLab From a2ad94fe552a21d5f7b85a8848aa53cec23fade3 Mon Sep 17 00:00:00 2001 From: wetterwald Date: Thu, 20 May 2021 22:49:44 +0200 Subject: [PATCH 57/85] Update IMZM-PDU-Descriptions.asn. Update of the comments when relevant + corrections in the ASN.1 module itself. --- IMZM-PDU-Descriptions.asn | 42 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index ef3bada..ea6982d 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -37,7 +37,7 @@ ts(103300) temp-imports(255) version1(1) --! @defgroup IMZM Interference Management Zone Message --! @{ ---! @brief DF- Interference Management Zone Message Root +--! @brief DF: Interference Management Zone Message Root --! This DF includes DEs for the IMZM protocolVersion, the IMZ message type identifier _messageID_ --! and the station identifier _stationID_ of the originating ITS-S. IMZM ::= SEQUENCE { @@ -50,7 +50,7 @@ IMZM ::= SEQUENCE { imzm InterferenceManagementZoneMessage } ---! @brief DF- Interference Management Zone Message +--! @brief DF: Interference Management Zone Message --! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable --! containers of type _BasicContainer_ and _ImzmContainer_. InterferenceManagementZoneMessage ::= SEQUENCE { @@ -58,7 +58,7 @@ InterferenceManagementZoneMessage ::= SEQUENCE { imzmParameters ImzmParameters } ---! @brief DF- IMZM Parameters +--! @brief DF: IMZM Parameters --! The sequence of containers in the IMZM. Other containers may be added in the future. ImzmParameters ::= SEQUENCE { --! @details basicContainer @@ -70,7 +70,7 @@ ImzmParameters ::= SEQUENCE { ... } ---! @brief DF- IMZM Container +--! @brief DF: IMZM Container --! The IMZM container includes a sequence of up to 16 interference management zones. --! For each interference management zones, it contains a sequence of interference --! management zones per channel together with their characteristics. @@ -81,14 +81,14 @@ ImzmContainer ::= SEQUENCE { ... } ---! @brief DF- InterferenceManagementZones +--! @brief DF: List of Interference Management Zones --! A list of up to 16 interference management zones. --! EXAMPLE: An interference management communication zone may be defined around a --! CEN DSRC road side equipment or an urban rail operational area. --! @category: Infrastructure information, Communication information InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone ---! @brief DF- InterferenceManagementZone +--! @brief DF: Interference Management Zone --! describes a zone of interferenceManagement inside which the ITS communication should --! be restricted. --! @category: Infrastructure information, Communication information @@ -97,7 +97,7 @@ InterferenceManagementZone ::= SEQUENCE { interferenceManagementInfo InterferenceManagementInfo } ---! @brief DF- ZoneDefinition +--! @brief DF: Zone Definition --! describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. --! @category: Infrastructure information, Communication information ZoneDefinition::= SEQUENCE{ @@ -122,15 +122,15 @@ ZoneDefinition::= SEQUENCE{ ... } ---! @brief DF- Interference Management Info ---! A list of up to 16 definitions of which interference management may be applied in the zone, +--! @brief DF: Interference Management Information +--! A list of up to 16 definitions containing which interference management may be applied in the zone, --! per affected frequency channels. --! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated --! by the value of interferenceManagementMitigationType set to unavailable. --! @category: Infrastructure information, Communication information InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ---! @brief DF- InterferenceManagementInfoPerChannel +--! @brief DF: Interference Management Information Per Channel --! A break up of the interference management information per affected frequency channels. --! @category: Infrastructure information, Communication information InterferenceManagementInfoPerChannel ::= SEQUENCE { @@ -151,7 +151,7 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ... } ---! @brief DF- InterferenceManagementChannel +--! @brief DF: InterferenceManagementChannel --! indicates which shared frequency channel should be applied interference management in the zone. --! @category: Communication information InterferenceManagementChannel ::= SEQUENCE { @@ -166,8 +166,8 @@ InterferenceManagementChannel ::= SEQUENCE { exponent INTEGER (0 .. 15) } ---! @brief DE- InterferenceManagementZoneType ---! DE that defines the type of an interference management zone, so that an ITS-S can +--! @brief DE: InterferenceManagementZoneType +--! defines the type of an interference management zone, so that an ITS-S can --! assert the actions to do while passing by such zone (e.g. reduce the transmit --! power in case of a DSRC tolling station). --! @unit: N/A @@ -182,25 +182,25 @@ InterferenceManagementZoneType ::= ENUMERATED { ... } ---! @brief DF- Mitigation type in the interference management zone +--! @brief DF: Mitigation type in the interference management zone --! Information and commands defining the required mitigation type the --! receiving ITS-S has to use in the defined interference management zone. --! It indicates the type of mitigation and the parameters to be used to protect the --! potential victim in the interference management zone per channel access technology class. --! @category: Communication information InterferenceManagementMitigationType ::= CHOICE { - --! @details Default value to be used when data is not available. - unavailable BOOLEAN OPTIONAL, + --! @details unavailable is the default value to be used when data is not available. + unavailable NULL, mitigationForTechnologies MitigationForTechnologies } ---! @brief DF- Mitigation type container for the different channel access technology classes +--! @brief DF: Mitigation type container for the different channel access technology classes --! Class of parameters for the relevant channel access technology classes, --! as specified in ETSI TS 103 724, clause 7. --! @category: Communication information MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass ---! @brief DF- Mitigation type container per channel access technology class +--! @brief DF: Mitigation type container per channel access technology class --! Class of parameters for the specific technology indicated in the container. --! All parameters are optional, as they may not apply to some of the technologies or --! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. @@ -224,7 +224,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { ... } ---! @brief DE- channel access technology class +--! @brief DE: channel access technology class --! Access technology to which the mitigation type applies. --! @category: Communication information AccessTechnologyClass ::= ENUMERATED { @@ -235,7 +235,7 @@ AccessTechnologyClass ::= ENUMERATED { ... } ---! @brief DF- Shape of the interference management zone +--! @brief DF: Shape of the interference management zone --! Bounding box of an interference management zone --! @category: GeoReference information InterferenceManagementZoneShape::= CHOICE { @@ -246,7 +246,7 @@ InterferenceManagementZoneShape::= CHOICE { ... } ---! @brief DF- Area Ellipse +--! @brief DF: Area Ellipse --! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. --! Describes an elliptical area. The ellipse is centred about the reference point --! of the ITS-S or about the nodeCenterPoint (if provided). -- GitLab From 44fbaf04a6d00e649956a7f1292fa10d86ededb5 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Fri, 21 May 2021 15:37:46 +0200 Subject: [PATCH 58/85] back to initial version of the IMZM asn module --- IMZM-PDU-Descriptions.asn | 206 ++++++++++++++++++++++---------------- 1 file changed, 119 insertions(+), 87 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index bc24930..e088f58 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,8 +1,5 @@ ---! Specification of the Interference Management Zone Message ETSI TS 103 724
---! ---! Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ---! ---! [[TOC]] +--! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 +--! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 IMZM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) @@ -12,225 +9,260 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN - IMPORTS ---! Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn +--! @brief Include ETSI TS 102 894-2 +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } ---! Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn +--! @brief Include ETSI EN 302 637-2 +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) } ---! Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
---! *This is temporary * :
---! *Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* +--! @brief Include ETSI TS 103 300-3 +--! **This is temporary** +--! Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) } ; +--! @brief DF: Interference Management Zone Message Root --! This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` ---! and the station identifier `stationID` of the originating ITS-S. +--! and the station identifier `stationID` of the originating ITS-S. IMZM ::= SEQUENCE { ---! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. ---! For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. ---! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. ---! For IMZM, the DE `messageID` shall be set to @todo `imzm(15)`. + --! @details header + --! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + --! ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. + --! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. + --! For IMZM, the DE messageID shall be set to `imzm(15)`. header ItsPduHeader, imzm InterferenceManagementZoneMessage } ---! This is the actual @ref IMZM Payload. It shall include the time stamp of the @ref IMZM and the applicable ---! containers of type @ref BasicContainer and @ref ImzmContainer. +--! @brief DF: Interference Management Zone Message +--! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable +--! containers of type `BasicContainer` and `ImzmContainer`. InterferenceManagementZoneMessage ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions imzmParameters ImzmParameters } ---! The sequence of containers in the @ref IMZM. Other containers may be added in the future. +--! @brief DF: IMZM Parameters +--! The sequence of containers in the IMZM. Other containers may be added in the future. ImzmParameters ::= SEQUENCE { - --! imported from @ref CAM-PDU-Descriptions + --! @details basicContainer + --! imported from CAM-PDU-Descriptions basicContainer BasicContainer, - --! container specific to the @ref IMZM + --! @details imzmContainer + --! container specific to the IMZM imzmContainer ImzmContainer, ... } ---! The IMZM container includes a sequence of up to 16 interference management communication zones. ---! For each interference management communication zones, it contains a sequence of interference +--! @brief DF: IMZM Container +--! The IMZM container includes a sequence of up to 16 interference management zones. +--! For each interference management zones, it contains a sequence of interference --! management zones per channel together with their characteristics. ImzmContainer ::= SEQUENCE { - --! Mapped to the DF @ref ProtectedCommunicationZone in ETSI TS 102 894-2 + --! @details interferenceManagementZones + --! mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 interferenceManagementZones InterferenceManagementZones, ... } ---! A list of up to 16 interference management communication zones. ---! ---! > EXAMPLE: An interference management communication zone may be defined around a ---! > CEN DSRC road side equipment or an urban rail operational area. ---! +--! @brief DF: List of Interference Management Zones +--! A list of up to 16 interference management zones. +--! EXAMPLE: +--! An interference management communication zone may be defined around a +--! CEN DSRC road side equipment or an urban rail operational area. --! @category: Infrastructure information, Communication information -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone +--! @brief DF: Interference Management Zone --! Describes a zone of interferenceManagement inside which the ITS communication should --! be restricted. ---! --! @category: Infrastructure information, Communication information InterferenceManagementZone ::= SEQUENCE { zoneDefinition ZoneDefinition, interferenceManagementInfo InterferenceManagementInfo } +--! @brief DF: Zone Definition --! Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. ---! --! @category: Infrastructure information, Communication information - ZoneDefinition::= SEQUENCE{ - --! Latitude of the centre point of the interference management zone. + --! @details interferenceManagementZoneLatitude + --! Latitude of the centre point of the interference management zone. interferenceManagementZoneLatitude Latitude, --! from ITS-Container - --! Longitude of the centre point of the interference management zone. + --! @details interferenceManagementZoneLongitude + --! Longitude of the centre point of the interference management zone. interferenceManagementZoneLongitude Longitude, --! from ITS-Container - --! Radius of the interference management zone in metres. + --! @details interferenceManagementZoneRadius + --! Radius of the interference management zone in metres. + --! This DE is present if the data is available interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - --! Identification of the interference management zone. + --! @details interferenceManagementZoneID + --! Identification of the interference management zone. + --! This DE is present if the data is available. interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container - --! Shape of the interference management zone. + --! @details interferenceManagementZoneShape + --! Shape of the interference management zone. + --! This DF is present if the data is available. interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, ... } ---! A list of up to 16 definitions of which interference management may be applied in the zone, +--! @brief DF: Interference Management Information +--! A list of up to 16 definitions containing which interference management may be applied in the zone, --! per affected frequency channels. ---! NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated ---! by the value of interferenceManagementMitigationType set to unavailable. +--! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated +--! by the value of interferenceManagementMitigationType set to unavailable. --! @category: Infrastructure information, Communication information InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ---! A break up of the interference management information per affected frequency channels. ---! +--! @brief DF: Interference Management Information Per Channel +--! A break up of the interference management information per affected frequency channels. --! @category: Infrastructure information, Communication information InterferenceManagementInfoPerChannel ::= SEQUENCE { - --! Characteritics of the frequency channel for which the zone should be applied interference management + --! @details interferenceManagementChannel + --! Characteritics of the frequency channel for which the zone + --! should be applied interference management interferenceManagementChannel InterferenceManagementChannel, - --! Type of the interference management zone. + --! @details interferenceManagementZoneType + --! Type of the interference management zone. interferenceManagementZoneType InterferenceManagementZoneType, - --! Type of the mitigation to be used in the interference management zone. + --! @details interferenceManagementMitigationType + --! Type of the mitigation to be used in the interference management zone. interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - --! Time at which the validity of the interference management communication zone will expire. - --! > The `expiryTime` DE is present when the interference management is temporarily valid. - expiryTime TimestampIts OPTIONAL, --! from ITS-Container + --! @details expiryTime + --! Time at which the validity of the interference management communication zone will expire. + --! This DE is present when the interference management is temporarily valid + expiryTime TimestampIts OPTIONAL, -- from ITS-Container ... } +--! @brief DF: InterferenceManagementChannel --! Indicates which shared frequency channel should be applied interference management in the zone. ---! --! @category: Communication information InterferenceManagementChannel ::= SEQUENCE { - --! Center of the channel frequency in 10exp+2 Hz (where exp is exponent) + --! @details centre frequency of the channel + --! @unit: 10exp+2 Hz (where exp is exponent) centreFrequency INTEGER (1 .. 99999), - --! Width of the channel frequence band in 10exp Hz (where exp is exponent) + --! @details width of the channel + --! @unit: 10exp Hz (where exp is exponent) channelWidth INTEGER (0 .. 9999), - --! Exponent of the power of 10 in Mhz + --! @details exponent of the power of 10 + --! @unit: N/A exponent INTEGER (0 .. 15) } ---! This DE defines the type of an interference management zone, so that an ITS-S can +--! @brief DE: InterferenceManagementZoneType +--! defines the type of an interference management zone, so that an ITS-S can --! assert the actions to do while passing by such zone (e.g. reduce the transmit ---! power in case of a DSRC tolling station).
+--! power in case of a DSRC tolling station). +--! @unit: N/A --! @category: Communication information - InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 - temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 - unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling - urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 - satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 - fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 + permanentCenDsrcTolling(0), --!< as specified in ETSI TS 102 792 + temporaryCenDsrcTolling(1), --!< as specified in ETSI TS 102 792 + unavailable(2), --!< default value. Set to 2 for backwards compatibility with DSRC tolling + urbanRail(3), --!< as specified in ETSI TS 103 724, clause 7 + satelliteStation(4), --!< as specified in ETSI TS 103 724, clause 7 + fixedLinks(5), --!< as specified in ETSI TS 103 724, clause 7 ... } ---! This DE defines the mitigation type in the interference management zone. ---! +--! @brief DF: Mitigation type in the interference management zone --! Information and commands defining the required mitigation type the --! receiving ITS-S has to use in the defined interference management zone. --! It indicates the type of mitigation and the parameters to be used to protect the --! potential victim in the interference management zone per channel access technology class. --! @category: Communication information -InterferenceManagementMitigationType ::= SEQUENCE { - --! Default value to be used when data is not available - unavailable BOOLEAN OPTIONAL, +InterferenceManagementMitigationType ::= CHOICE { + --! @details unavailable is the default value to be used when data is not available. + unavailable NULL, mitigationForTechnologies MitigationForTechnologies } ---! This DE defines the mitigation type container for the different channel access technology classes.
+--! @brief DF: Mitigation type container for the different channel access technology classes --! Class of parameters for the relevant channel access technology classes, --! as specified in ETSI TS 103 724, clause 7. --! @category: Communication information MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass ---! This DE defines the mitigation type container per channel access technology class
+--! @brief DF: Mitigation type container per channel access technology class --! Class of parameters for the specific technology indicated in the container. --! All parameters are optional, as they may not apply to some of the technologies or --! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. --! @category: Communication information MitigationPerTechnologyClass ::= SEQUENCE { - --! Channel access technology in which this mitigation is applied. + --! @details channel access technology in which this mitigation is applied. + --! @unit: N/A accessTechnologyClass AccessTechnologyClass, - --! Duty cycle limit in 0.01% steps + --! @details duty cycle limit. + --! @unit: 0.01% steps lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - --! Power reduction in dB + --! @details power reduction. + --! @unit: dB powerReduction INTEGER (0 .. 30) OPTIONAL, - --! Idle time limit in ms as defined in ETSI TS 103 175. + --! @details Idle time limit as defined in ETSI TS 103 175. + --! @unit: ms dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - --! Transmission duration limit in ms, as defined in ETSI EN 302 571. + --! @details Transmission duration limit, as defined in ETSI EN 302 571. + --! @unit: ms dmcTonLimit INTEGER (0 .. 20) OPTIONAL, ... } +--! @brief DE: channel access technology class --! Access technology to which the mitigation type applies. --! @category: Communication information AccessTechnologyClass ::= ENUMERATED { - --! default value. - unavailable(0), - --! ITS-G5 access technology class. - itsg5Class(1), - --! LTE-V2X access technology class. - ltev2xClass(2), - --! NR-V2X access technology class. - nrv2xClass(3), + any(0), --!< any access technology class (see clause 7 of TS 103 724). + itsg5Class(1), --!< ITS-G5 access technology class. + ltev2xClass(2), --!< LTE-V2X access technology class. + nrv2xClass(3), --!< NR-V2X access technology class. ... } ---! Shape of the interference management zone. +--! @brief DF: Shape of the interference management zone +--! Bounding box of an interference management zone --! @category: GeoReference information InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, - circle AreaCircular, - polygon AreaPolygon, - ellipse AreaEllipse, --! could not be imported from another specification yet + rectangle AreaRectangle, -- imported from VAM-Temp-Imports + circle AreaCircular, -- imported from VAM-Temp-Imports + polygon AreaPolygon, -- imported from VAM-Temp-Imports + ellipse AreaEllipse, -- could not be imported from another specification yet ... } +--! @brief DF: Area Ellipse --! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. --! Describes an elliptical area. The ellipse is centred about the reference point --! of the ITS-S or about the nodeCenterPoint (if provided). --! @category: GeoReference information AreaEllipse ::= SEQUENCE { + --! @details nodeCenterPoint --! Optional offset point about which the ellipse is centred with respect to the reference --! position of the ITS-S. nodeCenterPoint OffsetPoint OPTIONAL, + --! @details semiMajorRangeLength --! Minor radius of the ellipse. semiMajorRangeLength SemiRangeLength, + --! @details semiMinorRangeLength --! Major radius of the ellipse. semiMinorRangeLength SemiRangeLength, + --! @details semiMajorRangeOrientation --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. semiMajorRangeOrientation WGS84AngleValue } + END -- GitLab From efda53368510a2a161aef80f860e98c41f706201 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Fri, 21 May 2021 13:43:16 +0000 Subject: [PATCH 59/85] Documentation update --- docs/CAM-PDU-Descriptions.md | 22 +-- docs/IMZM-PDU-Descriptions.md | 255 +++++++++++++++++++++------------- docs/ITS-Container.md | 225 +++++++++++++++++------------- docs/VAM-Temp-Imports.md | 46 +++--- 4 files changed, 315 insertions(+), 233 deletions(-) diff --git a/docs/CAM-PDU-Descriptions.md b/docs/CAM-PDU-Descriptions.md index 3c46eb0..596b9e5 100755 --- a/docs/CAM-PDU-Descriptions.md +++ b/docs/CAM-PDU-Descriptions.md @@ -2,16 +2,11 @@ OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }_ ## Imports: - * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
## Data Elements: -### CAM - -Fields: -* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
-* cam [**CoopAwareness**](#CoopAwareness)
```asn1 CAM ::= SEQUENCE { header ItsPduHeader, @@ -67,12 +62,8 @@ HighFrequencyContainer ::= CHOICE { } ``` -### LowFrequencyContainer - -Fields: -* basicVehicleContainerLowFrequency [**BasicVehicleContainerLowFrequency**](#BasicVehicleContainerLowFrequency)
```asn1 LowFrequencyContainer ::= CHOICE { basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, @@ -206,26 +197,16 @@ SpecialTransportContainer ::= SEQUENCE { } ``` -### DangerousGoodsContainer - -Fields: -* dangerousGoodsBasic [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
```asn1 DangerousGoodsContainer ::= SEQUENCE { dangerousGoodsBasic DangerousGoodsBasic } ``` -### RoadWorksContainerBasic - -Fields: -* roadworksSubCauseCode [**RoadworksSubCauseCode**](ITS-Container.md#RoadworksSubCauseCode) OPTIONAL
-* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
-* closedLanes [**ClosedLanes**](ITS-Container.md#ClosedLanes) OPTIONAL
```asn1 RoadWorksContainerBasic ::= SEQUENCE { roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, @@ -297,7 +278,6 @@ RSUContainerHighFrequency ::= SEQUENCE { -Fields: ```asn1 GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) ``` diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 5fb1f66..8fd0a9e 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,34 +1,37 @@ # ASN.1 module IMZM-PDU-Descriptions OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ - Specification of the Interference Management Zone Message ETSI TS 103 724
- Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ## Imports: - * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- Include ETSI TS 102 894-2 references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ Include ETSI TS 102 894-2
+ Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn - * **CAM-PDU-Descriptions** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
- Include ETSI EN 302 637-2 references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + * **[CAM-PDU-Descriptions](CAM-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
+ Include ETSI EN 302 637-2
+ Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn - * **VAM-Temp-Imports** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
- Include ETSI TS 103 300-3 references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn
- This is temporary * :
- Import from **VAM-Temp-Imports** will be changed to CDD ETSI TS 102 894-2 Release 2 when available* + * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
+ Include ETSI TS 103 300-3
+ *This is temporary** + Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available + Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn ## Data Elements: ### IMZM + DF: Interference Management Zone Message Root
This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` and the station identifier `stationID` of the originating ITS-S. Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. - For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to `1`. + + The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE `messageID` shall be set to `imzm(15)`. + For IMZM, the DE messageID shall be set to `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -39,8 +42,9 @@ IMZM ::= SEQUENCE { ### InterferenceManagementZoneMessage - This DF is the actual [**IMZM**](#IMZM) Payload. It shall include the time stamp of the [**IMZM**](#IMZM) and the applicable - containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). + DF: Interference Management Zone Message
+ This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable + containers of type `BasicContainer` and `ImzmContainer`. Fields: @@ -48,21 +52,24 @@ Fields: * imzmParameters [**ImzmParameters**](#ImzmParameters)
```asn1 InterferenceManagementZoneMessage ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions + generationDeltaTime GenerationDeltaTime, imzmParameters ImzmParameters } ``` ### ImzmParameters - This DF defines the sequence of containers in the [**IMZM**](#IMZM). Other containers may be added in the future. + DF: IMZM Parameters
+ The sequence of containers in the IMZM. Other containers may be added in the future. Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
- imported from [**CAM-PDU-Descriptions**](#CAM-PDU-Descriptions) + + imported from CAM-PDU-Descriptions * imzmContainer [**ImzmContainer**](#ImzmContainer)
- container specific to the [**IMZM**](#IMZM) + + container specific to the IMZM ```asn1 ImzmParameters ::= SEQUENCE { basicContainer BasicContainer, @@ -73,14 +80,16 @@ ImzmParameters ::= SEQUENCE { ### ImzmContainer - The DF for IMZM container includes a sequence of up to 16 interference management zones. + DF: IMZM Container
+ The IMZM container includes a sequence of up to 16 interference management zones. For each interference management zones, it contains a sequence of interference management zones per channel together with their characteristics. Fields: * interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
- Mapped to the DF [**ProtectedCommunicationZone**](#ProtectedCommunicationZone) in ETSI TS 102 894-2 + + mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 ```asn1 ImzmContainer ::= SEQUENCE { interferenceManagementZones InterferenceManagementZones, @@ -90,11 +99,13 @@ ImzmContainer ::= SEQUENCE { ### InterferenceManagementZones - This DF is made of a list of up to 16 interference management zones. - > EXAMPLE: An interference management communication zone may be defined around a - > CEN DSRC road side equipment or an urban rail operational area. + DF: List of Interference Management Zones
+ A list of up to 16 interference management zones. + EXAMPLE: + An interference management communication zone may be defined around a + CEN DSRC road side equipment or an urban rail operational area. -    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -105,10 +116,11 @@ InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManag ### InterferenceManagementZone - This DF describes a zone of interferenceManagement inside which the ITS communication should + DF: Interference Management Zone
+ Describes a zone of interferenceManagement inside which the ITS communication should be restricted. -    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -125,34 +137,43 @@ InterferenceManagementZone ::= SEQUENCE { ### ZoneDefinition - This DF describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + DF: Zone Definition
+ Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. -    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Fields: * interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+ Latitude of the centre point of the interference management zone. * interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
from ITS-Container + Longitude of the centre point of the interference management zone. * interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
from ITS-Container + Radius of the interference management zone in metres. + This DE is present if the data is available * interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
from ITS-Container + Identification of the interference management zone. + This DE is present if the data is available. * interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
from ITS-Container + Shape of the interference management zone. + This DF is present if the data is available. ```asn1 ZoneDefinition::= SEQUENCE{ - interferenceManagementZoneLatitude Latitude, --! from ITS-Container - interferenceManagementZoneLongitude Longitude, --! from ITS-Container - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container + interferenceManagementZoneLatitude Latitude, + interferenceManagementZoneLongitude Longitude, + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, + interferenceManagementZoneID ProtectedZoneID OPTIONAL, interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, ... } @@ -160,12 +181,13 @@ ZoneDefinition::= SEQUENCE{ ### InterferenceManagementInfo - This DF includes a list of up to 16 definitions containing which interference management may be applied in the zone, + DF: Interference Management Information
+ A list of up to 16 definitions containing which interference management may be applied in the zone, per affected frequency channels. - NOTE: in the case where no mitigation should be applied by the ITS-S, this is indicated - by the value of interferenceManagementMitigationType set to unavailable. + Note: in the case where no mitigation should be applied by the ITS-S, this is indicated + by the value of interferenceManagementMitigationType set to unavailable. -    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -176,52 +198,59 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ### InterferenceManagementInfoPerChannel - This DF is a break up of the interference management information per affected frequency channels. + DF: Interference Management Information Per Channel
+ A break up of the interference management information per affected frequency channels. -    Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Fields: * interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
- Characteritics of the frequency channel for which the zone should be applied interference management + + Characteritics of the frequency channel for which the zone + should be applied interference management * interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
+ Type of the interference management zone. * interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
+ Type of the mitigation to be used in the interference management zone. * expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+ Time at which the validity of the interference management communication zone will expire. - > The `expiryTime` DE is present when the interference management is temporarily valid. + This DE is present when the interference management is temporarily valid ```asn1 InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementChannel InterferenceManagementChannel, interferenceManagementZoneType InterferenceManagementZoneType, interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - expiryTime TimestampIts OPTIONAL, --! from ITS-Container + expiryTime TimestampIts OPTIONAL, ... } ``` ### InterferenceManagementChannel - This DF indicates which shared frequency channel should be applied interference management in the zone. + DF: InterferenceManagementChannel
+ Indicates which shared frequency channel should be applied interference management in the zone. -    Categories: [Communication information](#Communication+information) +    **Categories**: [Communication information](#Communication+information) Fields: * centreFrequency **INTEGER** (1 .. 99999)
- Centre of the channel frequency
- Units: 10exp+2 Hz (where exp is exponent) + frequency of the channel + @unit: 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
- Width of the channel
- Units: 10exp Hz (where exp is exponent) -* exponent **INTEGER** (0 .. 15)
- Exponent of the power of 10
- Units: N/A + of the channel + @unit: 10exp Hz (where exp is exponent) +* exponent **INTEGER** (0 .. 15)
+ of the power of 10 + @unit: N/A ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -232,45 +261,45 @@ InterferenceManagementChannel ::= SEQUENCE { ### InterferenceManagementZoneType - This DE defines the type of an interference management zone, so that an ITS-S can + DE: InterferenceManagementZoneType
+ defines the type of an interference management zone, so that an ITS-S can assert the actions to do while passing by such zone (e.g. reduce the transmit - power in case of a DSRC tolling station).
- Units: N/A + power in case of a DSRC tolling station). + @unit: N/A -    Categories: [Communication information](#Communication+information) +    **Categories**: [Communication information](#Communication+information) -Fields: ```asn1 InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 - temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 - unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling - urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 - satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 - fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 + permanentCenDsrcTolling(0), + temporaryCenDsrcTolling(1), + unavailable(2), + urbanRail(3), + satelliteStation(4), + fixedLinks(5), ... } ``` ### InterferenceManagementMitigationType - This DF defines the mitigation type in the interference management zone. + DF: Mitigation type in the interference management zone
Information and commands defining the required mitigation type the receiving ITS-S has to use in the defined interference management zone. It indicates the type of mitigation and the parameters to be used to protect the potential victim in the interference management zone per channel access technology class. -    Categories: [Communication information](#Communication+information) +    **Categories**: [Communication information](#Communication+information) Fields: * unavailable [**NULL**](#NULL)
- unavailable is the default value to be used when data is not available + is the default value to be used when data is not available. * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
```asn1 InterferenceManagementMitigationType ::= CHOICE { @@ -281,11 +310,11 @@ InterferenceManagementMitigationType ::= CHOICE { ### MitigationForTechnologies - This DF defines the mitigation type container for the different channel access technology classes.
+ DF: Mitigation type container for the different channel access technology classes
Class of parameters for the relevant channel access technology classes, as specified in ETSI TS 103 724, clause 7. -    Categories: [Communication information](#Communication+information) +    **Categories**: [Communication information](#Communication+information) @@ -296,35 +325,35 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl ### MitigationPerTechnologyClass - This DF defines the mitigation type container per channel access technology class
+ DF: Mitigation type container per channel access technology class
Class of parameters for the specific technology indicated in the container. All parameters are optional, as they may not apply to some of the technologies or interference management zone types. Specification details are in ETSI TS 103 724, clause 7. -    Categories: [Communication information](#Communication+information) +    **Categories**: [Communication information](#Communication+information) Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
- Channel access technology in which this mitigation is applied. - Units: N/A + access technology in which this mitigation is applied. + @unit: N/A * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
- Duty cycle limit
- Units: 0.01% of steps + cycle limit. + @unit: 0.01% steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL
- Power reduction
- Units: dB + reduction. + @unit: dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
- Idle time limit, as defined in ETSI TS 103 175.
- Units: ms + time limit as defined in ETSI TS 103 175. + @unit: ms * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
- Transmission duration limit, as defined in ETSI EN 302 571.
- Units: ms + duration limit, as defined in ETSI EN 302 571. + @unit: ms ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { - accessTechnologyClass AccessTechnologyClass, + accessTechnologyClass AccessTechnologyClass, lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, powerReduction INTEGER (0 .. 30) OPTIONAL, dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, @@ -335,30 +364,30 @@ MitigationPerTechnologyClass ::= SEQUENCE { ### AccessTechnologyClass - This DE indicates the access technology to which the mitigation type applies. + DE: channel access technology class
+ Access technology to which the mitigation type applies. -    Categories: [Communication information](#Communication+information) +    **Categories**: [Communication information](#Communication+information) -Fields: ```asn1 AccessTechnologyClass ::= ENUMERATED { - any(0), - itsg5Class(1), - ltev2xClass(2), - nrv2xClass(3), + any(0), + itsg5Class(1), + ltev2xClass(2), + nrv2xClass(3), ... } ``` ### InterferenceManagementZoneShape - This DF defines the shape of the interference management zone. - It represents the bounding box of an interference management zone + DF: Shape of the interference management zone
+ Bounding box of an interference management zone -    Categories: [GeoReference information](#GeoReference+information) +    **Categories**: [GeoReference information](#GeoReference+information) @@ -366,20 +395,52 @@ AccessTechnologyClass ::= ENUMERATED { Fields: * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
- imported from VAM-Temp-Imports * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
- imported from VAM-Temp-Imports * ellipse [**AreaEllipse**](#AreaEllipse)
- imported from VAM-Temp-Imports ```asn1 InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, --! imported from VAM-Temp-Imports - circle AreaCircular, --! imported from VAM-Temp-Imports - polygon AreaPolygon, --! imported from VAM-Temp-Imports - ellipse AreaEllipse, --! could not be imported from another specification yet + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, ... } ``` +### AreaEllipse + + DF: Area Ellipse
+ Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. + Describes an elliptical area. The ellipse is centred about the reference point + of the ITS-S or about the nodeCenterPoint (if provided). + +    **Categories**: [GeoReference information](#GeoReference+information) + + + + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+ + Optional offset point about which the ellipse is centred with respect to the reference + position of the ITS-S. +* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ + Minor radius of the ellipse. +* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ + Major radius of the ellipse. +* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+ + Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. +```asn1 +AreaEllipse ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue +} +``` + diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md index affe9dd..a9832cc 100755 --- a/docs/ITS-Container.md +++ b/docs/ITS-Container.md @@ -2,17 +2,12 @@ OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ ## Data Elements: -### ItsPduHeader - -Fields: -* protocolVersion **INTEGER** (0..255)
-* messageID **INTEGER** { denm(1)
```asn1 ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), - messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), stationID StationID } ``` @@ -63,7 +58,8 @@ DeltaReferencePosition ::= SEQUENCE { -Fields: +Values: +* **oneMicrodegreeEast** (10)
```asn1 Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) ``` @@ -72,7 +68,8 @@ Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavai -Fields: +Values: +* **oneMicrodegreeNorth** (10)
```asn1 Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) ``` @@ -95,7 +92,6 @@ Altitude ::= SEQUENCE { -Fields: ```asn1 AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) ``` @@ -104,7 +100,23 @@ AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unava -Fields: +Values: +* **alt-000-01** (0)
+* **alt-000-02** (1)
+* **alt-000-05** (2)
+* **alt-000-10** (3)
+* **alt-000-20** (4)
+* **alt-000-50** (5)
+* **alt-001-00** (6)
+* **alt-002-00** (7)
+* **alt-005-00** (8)
+* **alt-010-00** (9)
+* **alt-020-00** (10)
+* **alt-050-00** (11)
+* **alt-100-00** (12)
+* **alt-200-00** (13)
+* **outOfRange** (14)
+* **unavailable** (15)
```asn1 AltitudeConfidence ::= ENUMERATED { alt-000-01 (0), @@ -130,7 +142,8 @@ AltitudeConfidence ::= ENUMERATED { -Fields: +Values: +* **oneMicrodegreeEast** (10)
```asn1 DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) ``` @@ -139,7 +152,8 @@ DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), u -Fields: +Values: +* **oneMicrodegreeNorth** (10)
```asn1 DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) ``` @@ -148,7 +162,8 @@ DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , -Fields: +Values: +* **oneCentimeterUp** (1)
```asn1 DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) ``` @@ -187,7 +202,6 @@ PathPoint ::= SEQUENCE { -Fields: ```asn1 PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) ``` @@ -210,7 +224,6 @@ PtActivation ::= SEQUENCE { -Fields: ```asn1 PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) ``` @@ -227,7 +240,14 @@ PtActivationData ::= OCTET STRING (SIZE(1..20)) -Fields: +Values: +* **brakePedalEngaged** (0)
+* **gasPedalEngaged** (1)
+* **emergencyBrakeEngaged** (2)
+* **collisionWarningEngaged** (3)
+* **accEngaged** (4)
+* **cruiseControlEngaged** (5)
+* **speedLimiterEngaged** (6)
```asn1 AccelerationControl ::= BIT STRING { brakePedalEngaged (0), @@ -244,7 +264,6 @@ AccelerationControl ::= BIT STRING { -Fields: ```asn1 SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) ``` @@ -268,7 +287,34 @@ CauseCode ::= SEQUENCE { -Fields: +Values: +* **reserved** (0)
+* **trafficCondition** (1)
+* **accident** (2)
+* **roadworks** (3)
+* **impassability** (5)
+* **adverseWeatherCondition-Adhesion** (6)
+* **aquaplannning** (7)
+* **hazardousLocation-SurfaceCondition** (9)
+* **hazardousLocation-ObstacleOnTheRoad** (10)
+* **hazardousLocation-AnimalOnTheRoad** (11)
+* **humanPresenceOnTheRoad** (12)
+* **wrongWayDriving** (14)
+* **rescueAndRecoveryWorkInProgress** (15)
+* **adverseWeatherCondition-ExtremeWeatherCondition** (17)
+* **adverseWeatherCondition-Visibility** (18)
+* **adverseWeatherCondition-Precipitation** (19)
+* **slowVehicle** (26)
+* **dangerousEndOfQueue** (27)
+* **vehicleBreakdown** (91)
+* **postCrash** (92)
+* **humanProblem** (93)
+* **stationaryVehicle** (94)
+* **emergencyVehicleApproaching** (95)
+* **hazardousLocation-DangerousCurve** (96)
+* **collisionRisk** (97)
+* **signalViolation** (98)
+* **dangerousSituation** (99)
```asn1 CauseCodeType ::= INTEGER { reserved (0), @@ -313,7 +359,6 @@ SubCauseCodeType ::= INTEGER (0..255) -Fields: ```asn1 TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) ``` @@ -322,7 +367,6 @@ TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraff -Fields: ```asn1 AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) ``` @@ -331,7 +375,6 @@ AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavy -Fields: ```asn1 RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) ``` @@ -340,7 +383,6 @@ RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkin -Fields: ```asn1 HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) ``` @@ -349,7 +391,6 @@ HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadwa -Fields: ```asn1 WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) ``` @@ -358,7 +399,6 @@ WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDire -Fields: ```asn1 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) ``` @@ -367,7 +407,6 @@ AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavail -Fields: ```asn1 AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255) ``` @@ -376,7 +415,6 @@ AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyF -Fields: ```asn1 AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) ``` @@ -385,7 +423,6 @@ AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog( -Fields: ```asn1 AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) ``` @@ -394,7 +431,6 @@ AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), h -Fields: ```asn1 SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) ``` @@ -403,7 +439,6 @@ SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehi -Fields: ```asn1 StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) ``` @@ -412,7 +447,6 @@ StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehi -Fields: ```asn1 HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) ``` @@ -421,7 +455,6 @@ HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartP -Fields: ```asn1 EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) ``` @@ -430,7 +463,6 @@ EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVe -Fields: ```asn1 HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) ``` @@ -439,7 +471,6 @@ HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), danger -Fields: ```asn1 HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255) ``` @@ -448,7 +479,6 @@ HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rock -Fields: ```asn1 HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) ``` @@ -457,7 +487,6 @@ HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), she -Fields: ```asn1 HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) ``` @@ -466,7 +495,6 @@ HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildA -Fields: ```asn1 CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) ``` @@ -475,7 +503,6 @@ CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk -Fields: ```asn1 SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) ``` @@ -484,7 +511,6 @@ SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), t -Fields: ```asn1 RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) ``` @@ -493,7 +519,6 @@ RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergen -Fields: ```asn1 DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) ``` @@ -502,7 +527,6 @@ DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1) -Fields: ```asn1 DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) ``` @@ -511,7 +535,6 @@ DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicB -Fields: ```asn1 VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) ``` @@ -520,7 +543,6 @@ VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOf -Fields: ```asn1 PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) ``` @@ -543,7 +565,6 @@ Curvature ::= SEQUENCE { -Fields: ```asn1 CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) ``` @@ -552,7 +573,15 @@ CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) -Fields: +Values: +* **onePerMeter-0-00002** (0)
+* **onePerMeter-0-0001** (1)
+* **onePerMeter-0-0005** (2)
+* **onePerMeter-0-002** (3)
+* **onePerMeter-0-01** (4)
+* **onePerMeter-0-1** (5)
+* **outOfRange** (6)
+* **unavailable** (7)
```asn1 CurvatureConfidence ::= ENUMERATED { onePerMeter-0-00002 (0), @@ -570,7 +599,6 @@ CurvatureConfidence ::= ENUMERATED { -Fields: ```asn1 CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} ``` @@ -593,7 +621,6 @@ Heading ::= SEQUENCE { -Fields: ```asn1 HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) ``` @@ -602,7 +629,8 @@ HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84 -Fields: +Values: +* **equalOrWithinZeroPointOneDegree** (1)
```asn1 HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) ``` @@ -611,7 +639,6 @@ HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithi -Fields: ```asn1 LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) @@ -638,7 +665,6 @@ ClosedLanes ::= SEQUENCE { -Fields: ```asn1 HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} ``` @@ -655,7 +681,6 @@ DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) -Fields: ```asn1 PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) ``` @@ -664,7 +689,6 @@ PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceC -Fields: ```asn1 SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) ``` @@ -673,7 +697,6 @@ SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383 -Fields: ```asn1 SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) ``` @@ -682,7 +705,6 @@ SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinO -Fields: ```asn1 VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) ``` @@ -705,7 +727,8 @@ Speed ::= SEQUENCE { -Fields: +Values: +* **forward** (0)
```asn1 DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} ``` @@ -736,7 +759,6 @@ LongitudinalAcceleration ::= SEQUENCE { -Fields: ```asn1 LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) ``` @@ -745,7 +767,6 @@ LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), -Fields: ```asn1 AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) ``` @@ -768,7 +789,6 @@ LateralAcceleration ::= SEQUENCE { -Fields: ```asn1 LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) ``` @@ -791,7 +811,6 @@ VerticalAcceleration ::= SEQUENCE { -Fields: ```asn1 VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) ``` @@ -800,7 +819,6 @@ VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOne -Fields: ```asn1 StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) @@ -810,7 +828,15 @@ lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSid -Fields: +Values: +* **lowBeamHeadlightsOn** (0)
+* **highBeamHeadlightsOn** (1)
+* **leftTurnSignalOn** (2)
+* **rightTurnSignalOn** (3)
+* **daytimeRunningLightsOn** (4)
+* **reverseLightOn** (5)
+* **fogLightOn** (6)
+* **parkingLightsOn** (7)
```asn1 ExteriorLights ::= BIT STRING { lowBeamHeadlightsOn (0), @@ -828,7 +854,6 @@ ExteriorLights ::= BIT STRING { -Fields: ```asn1 DangerousGoodsBasic::= ENUMERATED { explosives1(0), @@ -885,7 +910,6 @@ DangerousGoodsExtended ::= SEQUENCE { -Fields: ```asn1 SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) ``` @@ -894,7 +918,9 @@ SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength( -Fields: +Values: +* **lightBarActivated** (0)
+* **sirenActivated** (1)
```asn1 LightBarSirenInUse ::= BIT STRING { lightBarActivated (0), @@ -906,7 +932,6 @@ LightBarSirenInUse ::= BIT STRING { -Fields: ```asn1 HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) ``` @@ -915,7 +940,6 @@ HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) -Fields: ```asn1 PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) ``` @@ -924,7 +948,6 @@ PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) -Fields: ```asn1 PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) ``` @@ -933,7 +956,6 @@ PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) -Fields: ```asn1 PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) ``` @@ -942,7 +964,6 @@ PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) -Fields: ```asn1 RequestResponseIndication ::= ENUMERATED {request(0), response(1)} ``` @@ -951,7 +972,6 @@ RequestResponseIndication ::= ENUMERATED {request(0), response(1)} -Fields: ```asn1 SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) ``` @@ -960,7 +980,6 @@ SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) -Fields: ```asn1 StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} ``` @@ -969,7 +988,8 @@ StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessTha -Fields: +Values: +* **equalOrSmallerThanMinus60Deg** (-60)
```asn1 Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) ``` @@ -978,7 +998,6 @@ Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1) -Fields: ```asn1 TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... } @@ -988,7 +1007,6 @@ TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), -Fields: ```asn1 WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) ``` @@ -997,7 +1015,6 @@ WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) -Fields: ```asn1 TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) ``` @@ -1006,7 +1023,6 @@ TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) -Fields: ```asn1 PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) ``` @@ -1015,7 +1031,27 @@ PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) -Fields: +Values: +* **row1LeftOccupied** (0)
+* **row1RightOccupied** (1)
+* **row1MidOccupied** (2)
+* **row1NotDetectable** (3)
+* **row1NotPresent** (4)
+* **row2LeftOccupied** (5)
+* **row2RightOccupied** (6)
+* **row2MidOccupied** (7)
+* **row2NotDetectable** (8)
+* **row2NotPresent** (9)
+* **row3LeftOccupied** (10)
+* **row3RightOccupied** (11)
+* **row3MidOccupied** (12)
+* **row3NotDetectable** (13)
+* **row3NotPresent** (14)
+* **row4LeftOccupied** (15)
+* **row4RightOccupied** (16)
+* **row4MidOccupied** (17)
+* **row4NotDetectable** (18)
+* **row4NotPresent** (19)
```asn1 PositionOfOccupants ::= BIT STRING { row1LeftOccupied (0), @@ -1044,7 +1080,6 @@ PositionOfOccupants ::= BIT STRING { -Fields: ```asn1 PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} ``` @@ -1084,7 +1119,6 @@ VDS ::= IA5String (SIZE(6)) -Fields: ```asn1 EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) ``` @@ -1107,7 +1141,6 @@ VehicleLength ::= SEQUENCE { -Fields: ```asn1 VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) ``` @@ -1116,7 +1149,6 @@ VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable -Fields: ```asn1 VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} ``` @@ -1125,7 +1157,6 @@ VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPr -Fields: ```asn1 VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) ``` @@ -1142,7 +1173,6 @@ PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint -Fields: ```asn1 EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) ``` @@ -1151,7 +1181,6 @@ EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossin -Fields: ```asn1 InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) ``` @@ -1160,7 +1189,6 @@ InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) -Fields: ```asn1 RoadType ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), @@ -1187,7 +1215,6 @@ SteeringWheelAngle ::= SEQUENCE { -Fields: ```asn1 SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) ``` @@ -1196,7 +1223,8 @@ SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1) -Fields: +Values: +* **equalOrWithinOnePointFiveDegree** (1)
```asn1 SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) ``` @@ -1205,7 +1233,6 @@ SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), o -Fields: ```asn1 TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) ``` @@ -1214,7 +1241,6 @@ TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} -Fields: ```asn1 VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} ``` @@ -1237,7 +1263,6 @@ YawRate::= SEQUENCE { -Fields: ```asn1 YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) ``` @@ -1246,7 +1271,16 @@ YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01To -Fields: +Values: +* **degSec-000-01** (0)
+* **degSec-000-05** (1)
+* **degSec-000-10** (2)
+* **degSec-001-00** (3)
+* **degSec-005-00** (4)
+* **degSec-010-00** (5)
+* **degSec-100-00** (6)
+* **outOfRange** (7)
+* **unavailable** (8)
```asn1 YawRateConfidence ::= ENUMERATED { degSec-000-01 (0), @@ -1265,7 +1299,8 @@ YawRateConfidence ::= ENUMERATED { -Fields: +Values: +* **permanentCenDsrcTolling** (0)
```asn1 ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } ``` @@ -1274,7 +1309,6 @@ ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCen -Fields: ```asn1 RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} ``` @@ -1283,7 +1317,6 @@ RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m( -Fields: ```asn1 RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} ``` @@ -1292,7 +1325,6 @@ RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraff -Fields: ```asn1 TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) ``` @@ -1301,7 +1333,6 @@ TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..1000 -Fields: ```asn1 ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) ``` @@ -1363,7 +1394,8 @@ Traces ::= SEQUENCE SIZE(1..7) OF PathHistory -Fields: +Values: +* **oneOccupant** (1)
```asn1 NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) ``` @@ -1445,7 +1477,6 @@ CenDsrcTollingZone ::= SEQUENCE { -Fields: ```asn1 ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) ``` diff --git a/docs/VAM-Temp-Imports.md b/docs/VAM-Temp-Imports.md index 6776730..58d12b1 100755 --- a/docs/VAM-Temp-Imports.md +++ b/docs/VAM-Temp-Imports.md @@ -2,9 +2,9 @@ OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1)}_ ## Imports: - * **ITS-Container** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}*
+ * **[ITS-Container](ITS-Container.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}*
- * **DSRC** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)}*
+ * **[DSRC](DSRC.md)** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)}*
## Data Elements: ### BasicContainer @@ -16,8 +16,8 @@ Fields: * referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
```asn1 BasicContainer ::= SEQUENCE { - stationType StationType, -- from VAM-Temp-Imports - referencePosition ReferencePosition, -- from ITS-Container + stationType StationType, + referencePosition ReferencePosition, ... } ``` @@ -28,11 +28,12 @@ BasicContainer ::= SEQUENCE { Fields: * protocolVersion **INTEGER** (0..255)
-* messageID **INTEGER** { denm(1)
+* messageID **INTEGER** { denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255)
+* stationID [**StationID**](ITS-Container.md#StationID)
```asn1 ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), - messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), -- Mantis #7209, #7005 + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), stationID StationID } ``` @@ -88,7 +89,8 @@ AreaRectangle ::= SEQUENCE { Fields: -* nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {...
+* nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT})
+* nodeOffsetPointZ [**NodeOffsetPointZ**](#NodeOffsetPointZ) OPTIONAL
```asn1 OffsetPoint ::= SEQUENCE{ nodeOffsetPointXY NodeOffsetPointXY (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT}), @@ -106,15 +108,15 @@ Fields: * node-Z3 [**Offset-B12**](DSRC.md#Offset-B12)
* node-Z4 [**Offset-B13**](DSRC.md#Offset-B13)
* node-Z5 [**Offset-B14**](DSRC.md#Offset-B14)
-* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16) -- node is within 327.67m of last node
+* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16)
```asn1 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-Z2 Offset-B11, + node-Z3 Offset-B12, + node-Z4 Offset-B13, + node-Z5 Offset-B14, + node-Z6 Offset-B16 } ``` @@ -122,7 +124,9 @@ NodeOffsetPointZ ::= CHOICE { -Fields: +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
```asn1 Radius ::= INTEGER { zeroPointOneMeter (1), @@ -142,7 +146,9 @@ PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint -Fields: +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
```asn1 SemiRangeLength ::= INTEGER { zeroPointOneMeter (1), @@ -154,7 +160,12 @@ SemiRangeLength ::= INTEGER { -Fields: +Values: +* **wgs84North** (0)
+* **wgs84East** (900)
+* **wgs84South** (1800)
+* **wgs84West** (2700)
+* **unavailable** (3601)
```asn1 WGS84AngleValue ::= INTEGER { wgs84North (0), @@ -169,7 +180,6 @@ WGS84AngleValue ::= INTEGER { -Fields: ```asn1 StationType ::= INTEGER { unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), -- GitLab From 32f96e36d6db21129de7ced61c80feec32deb3cd Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Fri, 21 May 2021 16:26:31 +0200 Subject: [PATCH 60/85] fix markdown --- IMZM-PDU-Descriptions.asn | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index e088f58..934302b 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -25,7 +25,7 @@ en (302637) cam (2) version (2) } --! @brief Include ETSI TS 103 300-3 ---! **This is temporary** +--! __This is temporary__ --! Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available --! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { @@ -39,9 +39,9 @@ ts(103300) temp-imports(255) version1(1) --! and the station identifier `stationID` of the originating ITS-S. IMZM ::= SEQUENCE { --! @details header - --! * The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + --! - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving --! ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. - --! * The DE `messageID` shall be harmonized with other V2X message identifier definitions. + --! - The DE `messageID` shall be harmonized with other V2X message identifier definitions. --! For IMZM, the DE messageID shall be set to `imzm(15)`. header ItsPduHeader, imzm InterferenceManagementZoneMessage @@ -80,8 +80,8 @@ ImzmContainer ::= SEQUENCE { --! @brief DF: List of Interference Management Zones --! A list of up to 16 interference management zones. ---! EXAMPLE: ---! An interference management communication zone may be defined around a +--! +--! **EXAMPLE**: An interference management communication zone may be defined around a --! CEN DSRC road side equipment or an urban rail operational area. --! @category: Infrastructure information, Communication information InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone @@ -101,18 +101,18 @@ InterferenceManagementZone ::= SEQUENCE { ZoneDefinition::= SEQUENCE{ --! @details interferenceManagementZoneLatitude --! Latitude of the centre point of the interference management zone. - interferenceManagementZoneLatitude Latitude, --! from ITS-Container + interferenceManagementZoneLatitude Latitude, -- from ITS-Container --! @details interferenceManagementZoneLongitude --! Longitude of the centre point of the interference management zone. - interferenceManagementZoneLongitude Longitude, --! from ITS-Container + interferenceManagementZoneLongitude Longitude, -- from ITS-Container --! @details interferenceManagementZoneRadius --! Radius of the interference management zone in metres. --! This DE is present if the data is available - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, -- from ITS-Container --! @details interferenceManagementZoneID --! Identification of the interference management zone. --! This DE is present if the data is available. - interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container + interferenceManagementZoneID ProtectedZoneID OPTIONAL, -- from ITS-Container --! @details interferenceManagementZoneShape --! Shape of the interference management zone. --! This DF is present if the data is available. @@ -122,9 +122,10 @@ ZoneDefinition::= SEQUENCE{ --! @brief DF: Interference Management Information --! A list of up to 16 definitions containing which interference management may be applied in the zone, ---! per affected frequency channels. ---! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated ---! by the value of interferenceManagementMitigationType set to unavailable. +--! per affected frequency channels. +--! +--! **Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated +--! by the value of interferenceManagementMitigationType set to unavailable. --! @category: Infrastructure information, Communication information InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel -- GitLab From 73e54ca9807e90b5e77213870bc2590e441b1303 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Fri, 21 May 2021 14:27:42 +0000 Subject: [PATCH 61/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 8fd0a9e..3bc311c 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -13,7 +13,7 @@ * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
Include ETSI TS 103 300-3
- *This is temporary** + __This is temporary__ Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn @@ -28,9 +28,9 @@ Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. - The DE `messageID` shall be harmonized with other V2X message identifier definitions. + - The DE `messageID` shall be harmonized with other V2X message identifier definitions. For IMZM, the DE messageID shall be set to `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 @@ -101,8 +101,7 @@ ImzmContainer ::= SEQUENCE { DF: List of Interference Management Zones
A list of up to 16 interference management zones. - EXAMPLE: - An interference management communication zone may be defined around a +*EXAMPLE**: An interference management communication zone may be defined around a CEN DSRC road side equipment or an urban rail operational area.     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -150,21 +149,17 @@ Fields: Latitude of the centre point of the interference management zone. * interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
- from ITS-Container Longitude of the centre point of the interference management zone. * interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
- from ITS-Container Radius of the interference management zone in metres. This DE is present if the data is available * interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
- from ITS-Container Identification of the interference management zone. This DE is present if the data is available. * interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
- from ITS-Container Shape of the interference management zone. This DF is present if the data is available. @@ -184,8 +179,9 @@ ZoneDefinition::= SEQUENCE{ DF: Interference Management Information
A list of up to 16 definitions containing which interference management may be applied in the zone, per affected frequency channels. - Note: in the case where no mitigation should be applied by the ITS-S, this is indicated - by the value of interferenceManagementMitigationType set to unavailable. + +*Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated + by the value of interferenceManagementMitigationType set to unavailable.     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) -- GitLab From 3d0d8f68deca3f7c6a02347006165c4eb194de0e Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Fri, 21 May 2021 14:37:10 +0000 Subject: [PATCH 62/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 264 +++++++++++++++++----------------- 1 file changed, 128 insertions(+), 136 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 3bc311c..388c581 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,37 +1,36 @@ # ASN.1 module IMZM-PDU-Descriptions OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ - Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 +Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ## Imports: * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- Include ETSI TS 102 894-2
- Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + Include ETSI TS 102 894-2
+ Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn * **[CAM-PDU-Descriptions](CAM-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
- Include ETSI EN 302 637-2
- Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + Include ETSI EN 302 637-2
+ Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
- Include ETSI TS 103 300-3
- __This is temporary__ - Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available - Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn + Include ETSI TS 103 300-3
+ __This is temporary__ + Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available + Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn ## Data Elements: ### IMZM - DF: Interference Management Zone Message Root
- This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` - and the station identifier `stationID` of the originating ITS-S. +DF: Interference Management Zone Message Root
+This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` +and the station identifier `stationID` of the originating ITS-S. Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- - - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving - ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. - - The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE messageID shall be set to `imzm(15)`. + - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. + - The DE `messageID` shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE messageID shall be set to `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -42,9 +41,9 @@ IMZM ::= SEQUENCE { ### InterferenceManagementZoneMessage - DF: Interference Management Zone Message
- This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable - containers of type `BasicContainer` and `ImzmContainer`. +DF: Interference Management Zone Message
+This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable +containers of type `BasicContainer` and `ImzmContainer`. Fields: @@ -59,17 +58,15 @@ InterferenceManagementZoneMessage ::= SEQUENCE { ### ImzmParameters - DF: IMZM Parameters
- The sequence of containers in the IMZM. Other containers may be added in the future. +DF: IMZM Parameters
+The sequence of containers in the IMZM. Other containers may be added in the future. Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
- - imported from CAM-PDU-Descriptions + imported from CAM-PDU-Descriptions * imzmContainer [**ImzmContainer**](#ImzmContainer)
- - container specific to the IMZM + container specific to the IMZM ```asn1 ImzmParameters ::= SEQUENCE { basicContainer BasicContainer, @@ -80,16 +77,15 @@ ImzmParameters ::= SEQUENCE { ### ImzmContainer - DF: IMZM Container
- The IMZM container includes a sequence of up to 16 interference management zones. - For each interference management zones, it contains a sequence of interference - management zones per channel together with their characteristics. +DF: IMZM Container
+The IMZM container includes a sequence of up to 16 interference management zones. +For each interference management zones, it contains a sequence of interference +management zones per channel together with their characteristics. Fields: * interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
- - mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 + mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 ```asn1 ImzmContainer ::= SEQUENCE { interferenceManagementZones InterferenceManagementZones, @@ -99,11 +95,11 @@ ImzmContainer ::= SEQUENCE { ### InterferenceManagementZones - DF: List of Interference Management Zones
- A list of up to 16 interference management zones. +DF: List of Interference Management Zones
+A list of up to 16 interference management zones. *EXAMPLE**: An interference management communication zone may be defined around a - CEN DSRC road side equipment or an urban rail operational area. - + CEN DSRC road side equipment or an urban rail operational area. +     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -115,10 +111,10 @@ InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManag ### InterferenceManagementZone - DF: Interference Management Zone
- Describes a zone of interferenceManagement inside which the ITS communication should - be restricted. - +DF: Interference Management Zone
+Describes a zone of interferenceManagement inside which the ITS communication should +be restricted. +     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -136,9 +132,9 @@ InterferenceManagementZone ::= SEQUENCE { ### ZoneDefinition - DF: Zone Definition
- Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. - +DF: Zone Definition
+Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -146,23 +142,18 @@ InterferenceManagementZone ::= SEQUENCE { Fields: * interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
- - Latitude of the centre point of the interference management zone. + Latitude of the centre point of the interference management zone. * interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
- - Longitude of the centre point of the interference management zone. + Longitude of the centre point of the interference management zone. * interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
- - Radius of the interference management zone in metres. - This DE is present if the data is available + Radius of the interference management zone in metres. + This DE is present if the data is available * interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
- - Identification of the interference management zone. - This DE is present if the data is available. + Identification of the interference management zone. + This DE is present if the data is available. * interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
- - Shape of the interference management zone. - This DF is present if the data is available. + Shape of the interference management zone. + This DF is present if the data is available. ```asn1 ZoneDefinition::= SEQUENCE{ interferenceManagementZoneLatitude Latitude, @@ -176,13 +167,13 @@ ZoneDefinition::= SEQUENCE{ ### InterferenceManagementInfo - DF: Interference Management Information
- A list of up to 16 definitions containing which interference management may be applied in the zone, - per affected frequency channels. +DF: Interference Management Information
+A list of up to 16 definitions containing which interference management may be applied in the zone, +per affected frequency channels. *Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated - by the value of interferenceManagementMitigationType set to unavailable. - +by the value of interferenceManagementMitigationType set to unavailable. +     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -194,9 +185,9 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ### InterferenceManagementInfoPerChannel - DF: Interference Management Information Per Channel
- A break up of the interference management information per affected frequency channels. - +DF: Interference Management Information Per Channel
+A break up of the interference management information per affected frequency channels. +     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -204,19 +195,15 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme Fields: * interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
- - Characteritics of the frequency channel for which the zone - should be applied interference management + Characteritics of the frequency channel for which the zone + should be applied interference management * interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
- - Type of the interference management zone. + Type of the interference management zone. * interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
- - Type of the mitigation to be used in the interference management zone. + Type of the mitigation to be used in the interference management zone. * expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
- - Time at which the validity of the interference management communication zone will expire. - This DE is present when the interference management is temporarily valid + Time at which the validity of the interference management communication zone will expire. + This DE is present when the interference management is temporarily valid ```asn1 InterferenceManagementInfoPerChannel ::= SEQUENCE { interferenceManagementChannel InterferenceManagementChannel, @@ -229,9 +216,9 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ### InterferenceManagementChannel - DF: InterferenceManagementChannel
- Indicates which shared frequency channel should be applied interference management in the zone. - +DF: InterferenceManagementChannel
+Indicates which shared frequency channel should be applied interference management in the zone. +     **Categories**: [Communication information](#Communication+information) @@ -239,14 +226,17 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { Fields: * centreFrequency **INTEGER** (1 .. 99999)
- frequency of the channel - @unit: 10exp+2 Hz (where exp is exponent) + frequency of the channel +
+ **Unit**: _10exp+2 Hz (where exp is exponent)_ * channelWidth **INTEGER** (0 .. 9999)
- of the channel - @unit: 10exp Hz (where exp is exponent) + of the channel +
+ **Unit**: _10exp Hz (where exp is exponent)_ * exponent **INTEGER** (0 .. 15)
- of the power of 10 - @unit: N/A + of the power of 10 +
+ **Unit**: _N/A_ ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -257,15 +247,16 @@ InterferenceManagementChannel ::= SEQUENCE { ### InterferenceManagementZoneType - DE: InterferenceManagementZoneType
- defines the type of an interference management zone, so that an ITS-S can - assert the actions to do while passing by such zone (e.g. reduce the transmit - power in case of a DSRC tolling station). - @unit: N/A - +DE: InterferenceManagementZoneType
+defines the type of an interference management zone, so that an ITS-S can +assert the actions to do while passing by such zone (e.g. reduce the transmit +power in case of a DSRC tolling station). +     **Categories**: [Communication information](#Communication+information) +
+**Unit**: _N/A_ ```asn1 @@ -282,20 +273,20 @@ InterferenceManagementZoneType ::= ENUMERATED { ### InterferenceManagementMitigationType - DF: Mitigation type in the interference management zone
- Information and commands defining the required mitigation type the - receiving ITS-S has to use in the defined interference management zone. - It indicates the type of mitigation and the parameters to be used to protect the - potential victim in the interference management zone per channel access technology class. - +DF: Mitigation type in the interference management zone
+Information and commands defining the required mitigation type the +receiving ITS-S has to use in the defined interference management zone. +It indicates the type of mitigation and the parameters to be used to protect the +potential victim in the interference management zone per channel access technology class. +     **Categories**: [Communication information](#Communication+information) Fields: -* unavailable [**NULL**](#NULL)
- is the default value to be used when data is not available. +* unavailable **NULL**
+ is the default value to be used when data is not available. * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
```asn1 InterferenceManagementMitigationType ::= CHOICE { @@ -306,10 +297,10 @@ InterferenceManagementMitigationType ::= CHOICE { ### MitigationForTechnologies - DF: Mitigation type container for the different channel access technology classes
- Class of parameters for the relevant channel access technology classes, - as specified in ETSI TS 103 724, clause 7. - +DF: Mitigation type container for the different channel access technology classes
+Class of parameters for the relevant channel access technology classes, +as specified in ETSI TS 103 724, clause 7. +     **Categories**: [Communication information](#Communication+information) @@ -321,11 +312,11 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl ### MitigationPerTechnologyClass - DF: Mitigation type container per channel access technology class
- Class of parameters for the specific technology indicated in the container. - All parameters are optional, as they may not apply to some of the technologies or - interference management zone types. Specification details are in ETSI TS 103 724, clause 7. - +DF: Mitigation type container per channel access technology class
+Class of parameters for the specific technology indicated in the container. +All parameters are optional, as they may not apply to some of the technologies or +interference management zone types. Specification details are in ETSI TS 103 724, clause 7. +     **Categories**: [Communication information](#Communication+information) @@ -333,20 +324,25 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
- access technology in which this mitigation is applied. - @unit: N/A + access technology in which this mitigation is applied. +
+ **Unit**: _N/A_ * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
- cycle limit. - @unit: 0.01% steps + cycle limit. +
+ **Unit**: _0.01% steps_ * powerReduction **INTEGER** (0 .. 30) OPTIONAL
- reduction. - @unit: dB + reduction. +
+ **Unit**: _dB_ * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
- time limit as defined in ETSI TS 103 175. - @unit: ms + time limit as defined in ETSI TS 103 175. +
+ **Unit**: _ms_ * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
- duration limit, as defined in ETSI EN 302 571. - @unit: ms + duration limit, as defined in ETSI EN 302 571. +
+ **Unit**: _ms_ ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, @@ -360,9 +356,9 @@ MitigationPerTechnologyClass ::= SEQUENCE { ### AccessTechnologyClass - DE: channel access technology class
- Access technology to which the mitigation type applies. - +DE: channel access technology class
+Access technology to which the mitigation type applies. +     **Categories**: [Communication information](#Communication+information) @@ -380,9 +376,9 @@ AccessTechnologyClass ::= ENUMERATED { ### InterferenceManagementZoneShape - DF: Shape of the interference management zone
- Bounding box of an interference management zone - +DF: Shape of the interference management zone
+Bounding box of an interference management zone +     **Categories**: [GeoReference information](#GeoReference+information) @@ -405,11 +401,11 @@ InterferenceManagementZoneShape::= CHOICE { ### AreaEllipse - DF: Area Ellipse
- Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. - Describes an elliptical area. The ellipse is centred about the reference point - of the ITS-S or about the nodeCenterPoint (if provided). - +DF: Area Ellipse
+Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. +Describes an elliptical area. The ellipse is centred about the reference point +of the ITS-S or about the nodeCenterPoint (if provided). +     **Categories**: [GeoReference information](#GeoReference+information) @@ -417,18 +413,14 @@ InterferenceManagementZoneShape::= CHOICE { Fields: * nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
- - Optional offset point about which the ellipse is centred with respect to the reference - position of the ITS-S. + Optional offset point about which the ellipse is centred with respect to the reference + position of the ITS-S. * semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
- - Minor radius of the ellipse. + Minor radius of the ellipse. * semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
- - Major radius of the ellipse. + Major radius of the ellipse. * semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
- - Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. + Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. ```asn1 AreaEllipse ::= SEQUENCE { nodeCenterPoint OffsetPoint OPTIONAL, -- GitLab From 1c82897d1541b48884ca4e9b17df7727ec7bc5f7 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Fri, 21 May 2021 14:46:46 +0000 Subject: [PATCH 63/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 388c581..70a290c 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -255,8 +255,7 @@ power in case of a DSRC tolling station).     **Categories**: [Communication information](#Communication+information) -
-**Unit**: _N/A_ +    **Unit**: _N/A_ ```asn1 -- GitLab From 352f634c20b64b4a1f9a91f3cdbdc14ee6f4aa63 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:28:18 +0200 Subject: [PATCH 64/85] use new version of asn2md --- Makefile => .gitlab-ci.mk | 2 +- .gitlab-ci.yml | 28 +++++++++++++++------------- IMZM-PDU-Descriptions.asn | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) rename Makefile => .gitlab-ci.mk (96%) diff --git a/Makefile b/.gitlab-ci.mk similarity index 96% rename from Makefile rename to .gitlab-ci.mk index e7f2871..f85a399 100755 --- a/Makefile +++ b/.gitlab-ci.mk @@ -24,7 +24,7 @@ endif validate: iso build doc: docs - python3 asn2md.py docs $(ASN1_SRC) + python3 asn2md.py -o docs --brief-as-title $(ASN1_SRC) iso docs: mkdir -p $@ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 81df06d..5090550 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,23 +5,25 @@ image: danya25/asn1c:0.0.5 validate: stage: test - script: make validate - cache: - paths: - - iso/* + script: make -f .gitlab-ci.mk validate only: changes: - - "*.asn" - + - "asn/*.asn" + documentation: stage: deploy script: - - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python3 -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" - - make doc - - 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 # Pushes to the same branch as the trigger + - curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" + - 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_JOB_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git && + git push origin HEAD:$CI_COMMIT_REF_NAME; + fi only: changes: - - "*.asn" + - "asn/*.asn" diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 934302b..54f28db 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,4 +1,4 @@ ---! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 +--! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 --! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 IMZM-PDU-Descriptions { -- GitLab From 9cfcaaff00e92d27e2036bb6372213152480dc23 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:30:45 +0200 Subject: [PATCH 65/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5090550..7f0aa8c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ validate: script: make -f .gitlab-ci.mk validate only: changes: - - "asn/*.asn" + - "*.asn" documentation: stage: deploy @@ -26,4 +26,4 @@ documentation: fi only: changes: - - "asn/*.asn" + - "*.asn" -- GitLab From 573dc6b19dc2193f90e036e5a4afacff0dc1a5ec Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:35:02 +0200 Subject: [PATCH 66/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 54f28db..71b8adb 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -25,7 +25,8 @@ en (302637) cam (2) version (2) } --! @brief Include ETSI TS 103 300-3 ---! __This is temporary__ +--! **This is temporary** +--! --! Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available --! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { -- GitLab From f65c1f0b97d3fe21a37073aa2d823e3d476a5b67 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:38:12 +0200 Subject: [PATCH 67/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 71b8adb..7e5d824 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -25,10 +25,10 @@ en (302637) cam (2) version (2) } --! @brief Include ETSI TS 103 300-3 ---! **This is temporary** ---! --! Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +--! +--! **This is temporary.** These data types shall be defined in the next verion of CDD AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) -- GitLab From f8cdaf9a78c390b3ac2d67c639f45dfdf055af62 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:46:50 +0200 Subject: [PATCH 68/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7f0aa8c..14388a4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,7 @@ documentation: - curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" - make -f .gitlab-ci.mk doc - > - if [ -z "$(git status --untracked-files=no --porcelain)" ]; then + if [ -z "$(git status --untracked-files=no --porcelain)" ] && false; then echo "No changes found"; else git add docs/*.md && -- GitLab From a88c2396aef0d8bc24efc19b71bc38d2d4e5a96d Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:49:37 +0200 Subject: [PATCH 69/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 14388a4..995f82d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,10 +13,10 @@ validate: documentation: stage: deploy script: - - curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" + - [ -f asn2md.py ] || curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" - make -f .gitlab-ci.mk doc - > - if [ -z "$(git status --untracked-files=no --porcelain)" ] && false; then + if [ -z "$(git status --untracked-files=no --porcelain)" ]; then echo "No changes found"; else git add docs/*.md && -- GitLab From a6e95151342b42e54304cc1fe034e61afcc2126b Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 13:51:16 +0200 Subject: [PATCH 70/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 995f82d..86c73f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,10 @@ validate: documentation: stage: deploy script: - - [ -f asn2md.py ] || curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" + - > + if ! [ -f asn2md.py ]; then + curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" + fi - make -f .gitlab-ci.mk doc - > if [ -z "$(git status --untracked-files=no --porcelain)" ]; then -- GitLab From 9de56489fcfd967adf346726f5bfd43c3c791c93 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 17:19:00 +0200 Subject: [PATCH 71/85] add asn2md temporary --- asn2md.py | 263 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100755 asn2md.py diff --git a/asn2md.py b/asn2md.py new file mode 100755 index 0000000..33e3881 --- /dev/null +++ b/asn2md.py @@ -0,0 +1,263 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import argparse # parse arguments +import os.path # getting extension from file +import sys # output and stuff +import re # for regular expressions +if (sys.version_info > (3, 0)): + import urllib.parse # +else: + import urllib # + +## extract doxygen-tag namespace +RE_MODULE = re.compile( r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) + +RE_SPACES = re.compile(r'\s+') + +RE_COMMENTS = re.compile(r'^\s*--.*?\n|--.*?(?:--|$)|/\*.*?\*/[\t ]*\n?', re.MULTILINE|re.DOTALL) + +RE_BASIC_TYPES = re.compile(r'^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT|SEQUENCE|SET|NULL') + +RE_TYPE_BODY = re.compile(r'.*?{(.*)}\s*(?:\(.*?\)|\s*$)', re.MULTILINE|re.DOTALL) + +#RE_FIELDS = re.compile(r'^\s*(?:/\*\*.*?\*/)|^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,((?:\s*--!?<.*?\n)*)|((?:--!?<.*?\n)*)$)', re.MULTILINE | re.DOTALL| re.VERBOSE) +RE_FIELDS = re.compile(r'^\s*/\*.*?\*/|^\s*--\!.*?\n|^\s*([\w-]+)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][\w-]+)?((?:{[^}]*}|\([^)]*\)|.)*?)(?:,|(--)|$)', re.MULTILINE | re.DOTALL) + +RE_EXPORTS = re.compile(r'^\s*EXPORTS.*?;', re.DOTALL | re.MULTILINE) + +RE_IMPORTS = re.compile(r'^\s*IMPORTS\s*(.*?);', re.DOTALL | re.MULTILINE) + +RE_IMPORT_ELEMENTS = re.compile(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', re.MULTILINE) + +RE_IMPORT_ELEMENT_TYPE = re.compile(r'[^,\s]+') + +RE_DOXY_COMMENTS = re.compile(r'^\s*--[-!#](:?$|\s(.*))', re.MULTILINE) + +RE_DOXY_C_COMMENTS = re.compile(r'^\s*/\*\*\s(.*?)\*/', re.MULTILINE | re.DOTALL) + +RE_DOXY_C_COMMENTS_I = re.compile(r'\s*\*+') + +RE_DOXY_REF = re.compile(r'@ref\s+([\w-]+)') +RE_DOXY_CLASS = re.compile(r'@class\s+([\w-]+)') +RE_DOXY_STRIP_SINGLE_TAG = re.compile(r'@(?:brief|url)\s+') +RE_DOXY_DETAILS = re.compile(r'@details\s+[\w-]+') +RE_DOXY_STRIP_TAG = re.compile(r'@(?:details|class|struct)\s+[\w-]+') +RE_DOXY_UNIT = re.compile(r'@unit\s+(.+)', re.MULTILINE) +RE_DOXY_BRIEF = re.compile(r'@brief\s+(.+)\n', re.MULTILINE) +RE_DOXY_CATEGORY = re.compile(r'@category:\s+(.+)', re.MULTILINE) +RE_DOXY_PARAM = re.compile(r'^\s*@(?:param|field)\s+([\w-]+)\s*(.*?)\n\s*$', re.MULTILINE | re.DOTALL) + +# RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{+(.*?)}+)?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) +RE_TYPE = re.compile(r'^\s*([A-Z][\w-]*)?\s*([{} \t:\w-]*?)?::=([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) + +extTypes = {} +cpos = 0 +o_args = [] + +def urlquote(s): + if (sys.version_info > (3, 0)): + return urllib.parse.quote_plus(s) + else: + return urllib.quote_plus(s) + +def parseText(content, indent=None): + s_unit='' + def repl_ref(m): + return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) + c = RE_DOXY_REF.sub(repl_ref, content) + if c is not None: + content = c + c = RE_DOXY_STRIP_TAG.sub('', content) + if c is not None: + content = c + c = RE_DOXY_STRIP_SINGLE_TAG.sub('', content) + if c is not None: + content = c + def repl_category(m): + ret = '\n    **Categories**: ' + for l in m.group(1).split(','): + ret += '[{0}](#{1}) '.format(l.strip(), urlquote(l.strip())) + return ret + '\n\n' + c = RE_DOXY_CATEGORY.sub(repl_category, content) + if c is not None: + content = c + def repl_unit(m): + nonlocal s_unit + s_unit = '\n    **Unit**: _' + m.group(1).strip() + '_' + return '' + c = RE_DOXY_UNIT.sub(repl_unit, content) + if c is not None: + content = c + return content + s_unit + +def parseInlineComments(content:str, indent=None): + # keep into account only '--<' comments + lines = content.splitlines() + content = '' + for l in lines: + l = l.lstrip() + if l.startswith('--< '): + content += l[4:] + '\n' + elif l.startswith('--!< '): + content += l[5:] + '\n' + else: + continue + return parseText(content, indent) + +def parseDoxyComments(content:str, indent=None): + # keep only '--! ' and /** */ comments + # convert '--! ' comments to C-style + c = RE_DOXY_COMMENTS.sub(r'/** \g<1>*/', content) + if c is not None: + content = c + ret = '' + for m in RE_DOXY_C_COMMENTS.finditer(content): + lines = m.group(1).splitlines() + for l in lines: + l = l.strip().lstrip('*') + ret += ''.ljust(indent or 0) + l + '\n' + return parseText(ret, indent) + +def parseModule(mname, content): + global cpos + cpos = 0 + ret = '' + m = RE_IMPORTS.search(content) + if m is not None: + pos = 0 + if m.group(1) is not None: + ret += '## Imports:\n' + s = m.group(1) + for fm in RE_IMPORT_ELEMENTS.finditer(s): + imName = fm.group(2) + for im in RE_IMPORT_ELEMENT_TYPE.finditer(fm.group(1)): + extTypes[im.group(0)] = imName+'.md' + ret += ' * **[{0}]({0}.md)** *{1}*
\n'.format(imName, RE_SPACES.sub(' ', fm.group(3) or '')) + ret += parseDoxyComments(s[pos:fm.start()], 3)+'\n' + pos = fm.end() + ret += parseDoxyComments(s[pos:]) + cpos = m.end() + + m = RE_EXPORTS.search(content) + if m is not None: + if cpos < m.end(): + cpos = m.end() + + # parse types + def repl_type (m, doc): + title = t = m.group(1) + if doc : # non None and not empty + def repl_brief (m): + nonlocal title + title = m.group(1) + return '\n' + if o_args.brief_as_title: + doc = RE_DOXY_BRIEF.sub(repl_brief, doc, 1) + doc = parseDoxyComments(doc) + '\n\n' + else: + doc = '' + + ret = '' + if t is not None: + # parse out @params + f_params = {} + def repl_param (m): + nonlocal f_params + if m.group(1) is not None and m.group(2) is not None: + l = m.group(2).lstrip(":, \t\n") + if len(l): + f_params[m.group(1)] = l + return '' + doc = RE_DOXY_PARAM.sub(repl_param, doc) + + ret = '### {1}\n\n'.format(t, title) + doc + + # parse fields and get out fields descriptions + if m.group(3) is not None: + # check if contain fields + fm = RE_TYPE_BODY.search(m.group(3)) + if fm is not None and fm.group(1) is not None: + typeBody = fm.group(1).strip() + if typeBody is not None: + fTitle = '' + fields = '' + pos = 0 + for fm in RE_FIELDS.finditer(typeBody): + if fm.group(1) is not None: + # add description to the previous type + fields += parseInlineComments(fm.string[pos:fm.start()], 3) + f = fm.group(1).strip() + ext = fm.group(3) or '' + if fm.group(2) is not None: + fTitle = 'Fields:\n' + t = fm.group(2).strip() + if RE_BASIC_TYPES.match(t) is not None: + fields += '* {0} **{1}** {2}
\n'.format(f, t, ext) + else: + fields += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), ext) + else: + fTitle = 'Values:\n' + fields += '* **{0}** {1}
\n'.format(f, ext) + if f in f_params: + fields += f_params[f] + '\n\n' + fields += parseDoxyComments(fm.string[pos:fm.start()], 3) + pos = fm.end() + if fm.group(4) is not None: + # keep '--' for the next round + pos -= 2 + fields += parseInlineComments(typeBody[pos:], 3) + if len(fields): + ret = ret.strip() + '\n\n' + fTitle + fields + else: + if title: + ret = '### {}\n\n'.format(title) + ret += parseDoxyComments(doc) + '\n\n' + return ret + '```asn1\n' + RE_COMMENTS.sub('', m.group(0).strip()) +'\n```\n\n' + + pos = 0 + ret += '## Data Elements:\n' + for m in RE_TYPE.finditer(content[cpos:]): + ret += repl_type (m, m.string[pos:m.start()]) + pos = m.end() + return ret + + +def parseAsn(outDir, content) : + # iterate modules in the file + pos= 0 + cnt = 0 + for m in RE_MODULE.finditer(content): + ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), RE_SPACES.sub(' ', m.group(2))) + ret += parseDoxyComments(content[pos:m.start()]) + '\n' + if m.group(3) is not None: + ret += parseModule(m.group(1), m.group(3)) + ret += '\n\n' + open(outDir + '/' + m.group(1) + '.md', "w").write(ret) + pos = m.end() + cnt += 1 + return cnt + +def main(): + global o_args + ap = argparse.ArgumentParser(description='ASN.1 to markdown converter') + ap.add_argument('--out', '-o', type=str, default='.', help='output directory') + ap.add_argument('--brief-as-title', '-B', default=False, action='store_true', help='Do not treat @brief line as type header') + ap.add_argument('modules', action='store', nargs='+', help='ASN.1 files') + o_args = ap.parse_args() + + if not o_args.modules: + ap.print_help() + exit(1) + + cnt = 0 + for a in o_args.modules: + try: + content = open(a).read() + cnt += parseAsn(o_args.out, content) + except IOError as e: + sys.stderr.write(e[1]+"\n") + print("{} modules porcessed\n".format(cnt)) + +if __name__ == '__main__': + main() -- GitLab From 6f0ea29c0583decc42fd10dfe51925f2479cfda0 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 17:25:16 +0200 Subject: [PATCH 72/85] Update IMZM-PDU-Descriptions.asn --- IMZM-PDU-Descriptions.asn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 7e5d824..da4d1c9 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,4 +1,4 @@ ---! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 +--! @brief TEST!!! Specification of the Interference Management Zone Message ETSI TS 103 724 --! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 IMZM-PDU-Descriptions { -- GitLab From 26d4cc621a37b04601a9dd9c318919665a525fee Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 17:50:04 +0200 Subject: [PATCH 73/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86c73f3..ccd585b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ documentation: else git add docs/*.md && git commit -m "Documentation update" && - git remote rm origin && git remote add origin https://oauth2:$CI_JOB_TOKEN@forge.etsi.org/rep/$CI_PROJECT_PATH.git && + 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: -- GitLab From 44c7346008fd1093e3a21cf4cecff9188abfe78d Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Wed, 2 Jun 2021 15:50:45 +0000 Subject: [PATCH 74/85] Documentation update --- docs/CAM-PDU-Descriptions.md | 47 ++---- docs/IMZM-PDU-Descriptions.md | 174 ++++++++++----------- docs/ITS-Container.md | 274 +--------------------------------- docs/VAM-Temp-Imports.md | 24 --- 4 files changed, 98 insertions(+), 421 deletions(-) diff --git a/docs/CAM-PDU-Descriptions.md b/docs/CAM-PDU-Descriptions.md index 596b9e5..5831bd4 100755 --- a/docs/CAM-PDU-Descriptions.md +++ b/docs/CAM-PDU-Descriptions.md @@ -5,8 +5,11 @@ * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
## Data Elements: +### CAM - +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+* cam [**CoopAwareness**](#CoopAwareness)
```asn1 CAM ::= SEQUENCE { header ItsPduHeader, @@ -16,8 +19,6 @@ CAM ::= SEQUENCE { ### CoopAwareness - - Fields: * generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
* camParameters [**CamParameters**](#CamParameters)
@@ -30,8 +31,6 @@ CoopAwareness ::= SEQUENCE { ### CamParameters - - Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
* highFrequencyContainer [**HighFrequencyContainer**](#HighFrequencyContainer)
@@ -49,8 +48,6 @@ CamParameters ::= SEQUENCE { ### HighFrequencyContainer - - Fields: * basicVehicleContainerHighFrequency [**BasicVehicleContainerHighFrequency**](#BasicVehicleContainerHighFrequency)
* rsuContainerHighFrequency [**RSUContainerHighFrequency**](#RSUContainerHighFrequency)
@@ -62,8 +59,10 @@ HighFrequencyContainer ::= CHOICE { } ``` +### LowFrequencyContainer - +Fields: +* basicVehicleContainerLowFrequency [**BasicVehicleContainerLowFrequency**](#BasicVehicleContainerLowFrequency)
```asn1 LowFrequencyContainer ::= CHOICE { basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, @@ -73,8 +72,6 @@ LowFrequencyContainer ::= CHOICE { ### SpecialVehicleContainer - - Fields: * publicTransportContainer [**PublicTransportContainer**](#PublicTransportContainer)
* specialTransportContainer [**SpecialTransportContainer**](#SpecialTransportContainer)
@@ -98,8 +95,6 @@ SpecialVehicleContainer ::= CHOICE { ### BasicContainer - - Fields: * stationType [**StationType**](ITS-Container.md#StationType)
* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
@@ -113,8 +108,6 @@ BasicContainer ::= SEQUENCE { ### BasicVehicleContainerHighFrequency - - Fields: * heading [**Heading**](ITS-Container.md#Heading)
* speed [**Speed**](ITS-Container.md#Speed)
@@ -155,8 +148,6 @@ BasicVehicleContainerHighFrequency ::= SEQUENCE { ### BasicVehicleContainerLowFrequency - - Fields: * vehicleRole [**VehicleRole**](ITS-Container.md#VehicleRole)
* exteriorLights [**ExteriorLights**](ITS-Container.md#ExteriorLights)
@@ -171,8 +162,6 @@ BasicVehicleContainerLowFrequency ::= SEQUENCE { ### PublicTransportContainer - - Fields: * embarkationStatus [**EmbarkationStatus**](ITS-Container.md#EmbarkationStatus)
* ptActivation [**PtActivation**](ITS-Container.md#PtActivation) OPTIONAL
@@ -185,8 +174,6 @@ PublicTransportContainer ::= SEQUENCE { ### SpecialTransportContainer - - Fields: * specialTransportType [**SpecialTransportType**](ITS-Container.md#SpecialTransportType)
* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
@@ -197,16 +184,22 @@ SpecialTransportContainer ::= SEQUENCE { } ``` +### DangerousGoodsContainer - +Fields: +* dangerousGoodsBasic [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
```asn1 DangerousGoodsContainer ::= SEQUENCE { dangerousGoodsBasic DangerousGoodsBasic } ``` +### RoadWorksContainerBasic - +Fields: +* roadworksSubCauseCode [**RoadworksSubCauseCode**](ITS-Container.md#RoadworksSubCauseCode) OPTIONAL
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* closedLanes [**ClosedLanes**](ITS-Container.md#ClosedLanes) OPTIONAL
```asn1 RoadWorksContainerBasic ::= SEQUENCE { roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, @@ -217,8 +210,6 @@ RoadWorksContainerBasic ::= SEQUENCE { ### RescueContainer - - Fields: * lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
```asn1 @@ -229,8 +220,6 @@ RescueContainer ::= SEQUENCE { ### EmergencyContainer - - Fields: * lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
@@ -245,8 +234,6 @@ EmergencyContainer ::= SEQUENCE { ### SafetyCarContainer - - Fields: * lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
@@ -263,8 +250,6 @@ SafetyCarContainer ::= SEQUENCE { ### RSUContainerHighFrequency - - Fields: * protectedCommunicationZonesRSU [**ProtectedCommunicationZonesRSU**](ITS-Container.md#ProtectedCommunicationZonesRSU) OPTIONAL
```asn1 @@ -276,8 +261,6 @@ RSUContainerHighFrequency ::= SEQUENCE { ### GenerationDeltaTime - - ```asn1 GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) ``` diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index 70a290c..a06c3cf 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,36 +1,37 @@ # ASN.1 module IMZM-PDU-Descriptions OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ +TEST!!! Specification of the Interference Management Zone Message ETSI TS 103 724 Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ## Imports: * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- Include ETSI TS 102 894-2
+ Include ETSI TS 102 894-2 Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn * **[CAM-PDU-Descriptions](CAM-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
- Include ETSI EN 302 637-2
+ Include ETSI EN 302 637-2 Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
- Include ETSI TS 103 300-3
- __This is temporary__ + Include ETSI TS 103 300-3 Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn + This is temporary.** These data types shall be defined in the next verion of CDD ## Data Elements: -### IMZM +### DF: Interference Management Zone Message Root + -DF: Interference Management Zone Message Root
This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` and the station identifier `stationID` of the originating ITS-S. - Fields: * header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+ - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving - ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. + ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. - The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE messageID shall be set to `imzm(15)`. + For IMZM, the DE messageID shall be set to `imzm(15)`. * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
```asn1 IMZM ::= SEQUENCE { @@ -39,13 +40,12 @@ IMZM ::= SEQUENCE { } ``` -### InterferenceManagementZoneMessage +### DF: Interference Management Zone Message + -DF: Interference Management Zone Message
This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable containers of type `BasicContainer` and `ImzmContainer`. - Fields: * generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
* imzmParameters [**ImzmParameters**](#ImzmParameters)
@@ -56,16 +56,17 @@ InterferenceManagementZoneMessage ::= SEQUENCE { } ``` -### ImzmParameters +### DF: IMZM Parameters -DF: IMZM Parameters
-The sequence of containers in the IMZM. Other containers may be added in the future. +The sequence of containers in the IMZM. Other containers may be added in the future. Fields: * basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+ imported from CAM-PDU-Descriptions * imzmContainer [**ImzmContainer**](#ImzmContainer)
+ container specific to the IMZM ```asn1 ImzmParameters ::= SEQUENCE { @@ -75,16 +76,16 @@ ImzmParameters ::= SEQUENCE { } ``` -### ImzmContainer +### DF: IMZM Container + -DF: IMZM Container
The IMZM container includes a sequence of up to 16 interference management zones. For each interference management zones, it contains a sequence of interference management zones per channel together with their characteristics. - Fields: * interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
+ mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 ```asn1 ImzmContainer ::= SEQUENCE { @@ -93,12 +94,12 @@ ImzmContainer ::= SEQUENCE { } ``` -### InterferenceManagementZones +### DF: List of Interference Management Zones + -DF: List of Interference Management Zones
A list of up to 16 interference management zones. -*EXAMPLE**: An interference management communication zone may be defined around a - CEN DSRC road side equipment or an urban rail operational area. +EXAMPLE**: An interference management communication zone may be defined around a +CEN DSRC road side equipment or an urban rail operational area.     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -109,16 +110,13 @@ A list of up to 16 interference management zones. InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone ``` -### InterferenceManagementZone +### DF: Interference Management Zone + -DF: Interference Management Zone
Describes a zone of interferenceManagement inside which the ITS communication should be restricted. -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) - - - +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Fields: * zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
@@ -130,28 +128,30 @@ InterferenceManagementZone ::= SEQUENCE { } ``` -### ZoneDefinition - -DF: Zone Definition
-Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +### DF: Zone Definition +Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Fields: * interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+ Latitude of the centre point of the interference management zone. * interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+ Longitude of the centre point of the interference management zone. * interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+ Radius of the interference management zone in metres. This DE is present if the data is available * interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+ Identification of the interference management zone. This DE is present if the data is available. * interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
+ Shape of the interference management zone. This DF is present if the data is available. ```asn1 @@ -165,13 +165,13 @@ ZoneDefinition::= SEQUENCE{ } ``` -### InterferenceManagementInfo +### DF: Interference Management Information + -DF: Interference Management Information
A list of up to 16 definitions containing which interference management may be applied in the zone, per affected frequency channels. -*Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated +Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated by the value of interferenceManagementMitigationType set to unavailable.     **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) @@ -183,25 +183,26 @@ by the value of interferenceManagementMitigationType set to unavailable. InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel ``` -### InterferenceManagementInfoPerChannel - -DF: Interference Management Information Per Channel
-A break up of the interference management information per affected frequency channels. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) +### DF: Interference Management Information Per Channel +A break up of the interference management information per affected frequency channels. +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Fields: * interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
+ Characteritics of the frequency channel for which the zone should be applied interference management * interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
+ Type of the interference management zone. * interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
+ Type of the mitigation to be used in the interference management zone. * expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+ Time at which the validity of the interference management communication zone will expire. This DE is present when the interference management is temporarily valid ```asn1 @@ -214,29 +215,23 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { } ``` -### InterferenceManagementChannel - -DF: InterferenceManagementChannel
-Indicates which shared frequency channel should be applied interference management in the zone. - -    **Categories**: [Communication information](#Communication+information) +### DF: InterferenceManagementChannel +Indicates which shared frequency channel should be applied interference management in the zone. +    **Categories**: [Communication information](#Communication+information) Fields: * centreFrequency **INTEGER** (1 .. 99999)
frequency of the channel -
- **Unit**: _10exp+2 Hz (where exp is exponent)_ + @unit: 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)
of the channel -
- **Unit**: _10exp Hz (where exp is exponent)_ + @unit: 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15)
of the power of 10 -
- **Unit**: _N/A_ + @unit: N/A ```asn1 InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), @@ -245,17 +240,17 @@ InterferenceManagementChannel ::= SEQUENCE { } ``` -### InterferenceManagementZoneType +### DE: InterferenceManagementZoneType + -DE: InterferenceManagementZoneType
defines the type of an interference management zone, so that an ITS-S can assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). +@unit: N/A     **Categories**: [Communication information](#Communication+information) -    **Unit**: _N/A_ ```asn1 @@ -270,18 +265,15 @@ InterferenceManagementZoneType ::= ENUMERATED { } ``` -### InterferenceManagementMitigationType +### DF: Mitigation type in the interference management zone + -DF: Mitigation type in the interference management zone
Information and commands defining the required mitigation type the receiving ITS-S has to use in the defined interference management zone. It indicates the type of mitigation and the parameters to be used to protect the potential victim in the interference management zone per channel access technology class. -    **Categories**: [Communication information](#Communication+information) - - - +    **Categories**: [Communication information](#Communication+information) Fields: * unavailable **NULL**
@@ -294,9 +286,9 @@ InterferenceManagementMitigationType ::= CHOICE { } ``` -### MitigationForTechnologies +### DF: Mitigation type container for the different channel access technology classes + -DF: Mitigation type container for the different channel access technology classes
Class of parameters for the relevant channel access technology classes, as specified in ETSI TS 103 724, clause 7. @@ -309,39 +301,31 @@ as specified in ETSI TS 103 724, clause 7. MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass ``` -### MitigationPerTechnologyClass +### DF: Mitigation type container per channel access technology class + -DF: Mitigation type container per channel access technology class
Class of parameters for the specific technology indicated in the container. All parameters are optional, as they may not apply to some of the technologies or interference management zone types. Specification details are in ETSI TS 103 724, clause 7. -    **Categories**: [Communication information](#Communication+information) - - - +    **Categories**: [Communication information](#Communication+information) Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
access technology in which this mitigation is applied. -
- **Unit**: _N/A_ + @unit: N/A * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
cycle limit. -
- **Unit**: _0.01% steps_ + @unit: 0.01% steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL
reduction. -
- **Unit**: _dB_ + @unit: dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
time limit as defined in ETSI TS 103 175. -
- **Unit**: _ms_ + @unit: ms * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
duration limit, as defined in ETSI EN 302 571. -
- **Unit**: _ms_ + @unit: ms ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, @@ -353,9 +337,9 @@ MitigationPerTechnologyClass ::= SEQUENCE { } ``` -### AccessTechnologyClass +### DE: channel access technology class + -DE: channel access technology class
Access technology to which the mitigation type applies.     **Categories**: [Communication information](#Communication+information) @@ -373,15 +357,12 @@ AccessTechnologyClass ::= ENUMERATED { } ``` -### InterferenceManagementZoneShape - -DF: Shape of the interference management zone
-Bounding box of an interference management zone - -    **Categories**: [GeoReference information](#GeoReference+information) +### DF: Shape of the interference management zone +Bounding box of an interference management zone +    **Categories**: [GeoReference information](#GeoReference+information) Fields: * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
@@ -398,27 +379,28 @@ InterferenceManagementZoneShape::= CHOICE { } ``` -### AreaEllipse +### DF: Area Ellipse + -DF: Area Ellipse
Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. Describes an elliptical area. The ellipse is centred about the reference point of the ITS-S or about the nodeCenterPoint (if provided). -    **Categories**: [GeoReference information](#GeoReference+information) - - - +    **Categories**: [GeoReference information](#GeoReference+information) Fields: * nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+ Optional offset point about which the ellipse is centred with respect to the reference position of the ITS-S. * semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ Minor radius of the ellipse. * semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ Major radius of the ellipse. * semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+ Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. ```asn1 AreaEllipse ::= SEQUENCE { diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md index a9832cc..b48fc80 100755 --- a/docs/ITS-Container.md +++ b/docs/ITS-Container.md @@ -2,8 +2,12 @@ OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ ## Data Elements: +### ItsPduHeader - +Fields: +* protocolVersion **INTEGER** (0..255)
+* messageID **INTEGER** { denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255)
+* stationID [**StationID**](ITS-Container.md#StationID)
```asn1 ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), @@ -14,16 +18,12 @@ ItsPduHeader ::= SEQUENCE { ### StationID - - ```asn1 StationID ::= INTEGER(0..4294967295) ``` ### ReferencePosition - - Fields: * latitude [**Latitude**](ITS-Container.md#Latitude)
* longitude [**Longitude**](ITS-Container.md#Longitude)
@@ -40,8 +40,6 @@ ReferencePosition ::= SEQUENCE { ### DeltaReferencePosition - - Fields: * deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
@@ -56,8 +54,6 @@ DeltaReferencePosition ::= SEQUENCE { ### Longitude - - Values: * **oneMicrodegreeEast** (10)
```asn1 @@ -66,8 +62,6 @@ Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavai ### Latitude - - Values: * **oneMicrodegreeNorth** (10)
```asn1 @@ -76,8 +70,6 @@ Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unava ### Altitude - - Fields: * altitudeValue [**AltitudeValue**](#AltitudeValue)
* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
@@ -90,16 +82,12 @@ Altitude ::= SEQUENCE { ### AltitudeValue - - ```asn1 AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) ``` ### AltitudeConfidence - - Values: * **alt-000-01** (0)
* **alt-000-02** (1)
@@ -140,8 +128,6 @@ AltitudeConfidence ::= ENUMERATED { ### DeltaLongitude - - Values: * **oneMicrodegreeEast** (10)
```asn1 @@ -150,8 +136,6 @@ DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), u ### DeltaLatitude - - Values: * **oneMicrodegreeNorth** (10)
```asn1 @@ -160,8 +144,6 @@ DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , ### DeltaAltitude - - Values: * **oneCentimeterUp** (1)
```asn1 @@ -170,8 +152,6 @@ DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavaila ### PosConfidenceEllipse - - Fields: * semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
@@ -186,8 +166,6 @@ PosConfidenceEllipse ::= SEQUENCE { ### PathPoint - - Fields: * pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
@@ -200,16 +178,12 @@ PathPoint ::= SEQUENCE { ### PathDeltaTime - - ```asn1 PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) ``` ### PtActivation - - Fields: * ptActivationType [**PtActivationType**](#PtActivationType)
* ptActivationData [**PtActivationData**](#PtActivationData)
@@ -222,24 +196,18 @@ PtActivation ::= SEQUENCE { ### PtActivationType - - ```asn1 PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) ``` ### PtActivationData - - ```asn1 PtActivationData ::= OCTET STRING (SIZE(1..20)) ``` ### AccelerationControl - - Values: * **brakePedalEngaged** (0)
* **gasPedalEngaged** (1)
@@ -262,16 +230,12 @@ AccelerationControl ::= BIT STRING { ### SemiAxisLength - - ```asn1 SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) ``` ### CauseCode - - Fields: * causeCode [**CauseCodeType**](#CauseCodeType)
* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
@@ -285,8 +249,6 @@ CauseCode ::= SEQUENCE { ### CauseCodeType - - Values: * **reserved** (0)
* **trafficCondition** (1)
@@ -349,208 +311,156 @@ CauseCodeType ::= INTEGER { ### SubCauseCodeType - - ```asn1 SubCauseCodeType ::= INTEGER (0..255) ``` ### TrafficConditionSubCauseCode - - ```asn1 TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) ``` ### AccidentSubCauseCode - - ```asn1 AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) ``` ### RoadworksSubCauseCode - - ```asn1 RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) ``` ### HumanPresenceOnTheRoadSubCauseCode - - ```asn1 HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) ``` ### WrongWayDrivingSubCauseCode - - ```asn1 WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) ``` ### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode - - ```asn1 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) ``` ### AdverseWeatherCondition-AdhesionSubCauseCode - - ```asn1 AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255) ``` ### AdverseWeatherCondition-VisibilitySubCauseCode - - ```asn1 AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) ``` ### AdverseWeatherCondition-PrecipitationSubCauseCode - - ```asn1 AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) ``` ### SlowVehicleSubCauseCode - - ```asn1 SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) ``` ### StationaryVehicleSubCauseCode - - ```asn1 StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) ``` ### HumanProblemSubCauseCode - - ```asn1 HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) ``` ### EmergencyVehicleApproachingSubCauseCode - - ```asn1 EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) ``` ### HazardousLocation-DangerousCurveSubCauseCode - - ```asn1 HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) ``` ### HazardousLocation-SurfaceConditionSubCauseCode - - ```asn1 HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255) ``` ### HazardousLocation-ObstacleOnTheRoadSubCauseCode - - ```asn1 HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) ``` ### HazardousLocation-AnimalOnTheRoadSubCauseCode - - ```asn1 HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) ``` ### CollisionRiskSubCauseCode - - ```asn1 CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) ``` ### SignalViolationSubCauseCode - - ```asn1 SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) ``` ### RescueAndRecoveryWorkInProgressSubCauseCode - - ```asn1 RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) ``` ### DangerousEndOfQueueSubCauseCode - - ```asn1 DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) ``` ### DangerousSituationSubCauseCode - - ```asn1 DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) ``` ### VehicleBreakdownSubCauseCode - - ```asn1 VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) ``` ### PostCrashSubCauseCode - - ```asn1 PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) ``` ### Curvature - - Fields: * curvatureValue [**CurvatureValue**](#CurvatureValue)
* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
@@ -563,16 +473,12 @@ Curvature ::= SEQUENCE { ### CurvatureValue - - ```asn1 CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) ``` ### CurvatureConfidence - - Values: * **onePerMeter-0-00002** (0)
* **onePerMeter-0-0001** (1)
@@ -597,16 +503,12 @@ CurvatureConfidence ::= ENUMERATED { ### CurvatureCalculationMode - - ```asn1 CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} ``` ### Heading - - Fields: * headingValue [**HeadingValue**](#HeadingValue)
* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
@@ -619,16 +521,12 @@ Heading ::= SEQUENCE { ### HeadingValue - - ```asn1 HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) ``` ### HeadingConfidence - - Values: * **equalOrWithinZeroPointOneDegree** (1)
```asn1 @@ -637,8 +535,6 @@ HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithi ### LanePosition - - ```asn1 LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) @@ -646,8 +542,6 @@ outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) ### ClosedLanes - - Fields: * innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
@@ -663,56 +557,42 @@ ClosedLanes ::= SEQUENCE { ### HardShoulderStatus - - ```asn1 HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} ``` ### DrivingLaneStatus - - ```asn1 DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) ``` ### PerformanceClass - - ```asn1 PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) ``` ### SpeedValue - - ```asn1 SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) ``` ### SpeedConfidence - - ```asn1 SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) ``` ### VehicleMass - - ```asn1 VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) ``` ### Speed - - Fields: * speedValue [**SpeedValue**](#SpeedValue)
* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
@@ -725,8 +605,6 @@ Speed ::= SEQUENCE { ### DriveDirection - - Values: * **forward** (0)
```asn1 @@ -735,16 +613,12 @@ DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} ### EmbarkationStatus - - ```asn1 EmbarkationStatus ::= BOOLEAN ``` ### LongitudinalAcceleration - - Fields: * longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
@@ -757,24 +631,18 @@ LongitudinalAcceleration ::= SEQUENCE { ### LongitudinalAccelerationValue - - ```asn1 LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) ``` ### AccelerationConfidence - - ```asn1 AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) ``` ### LateralAcceleration - - Fields: * lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
@@ -787,16 +655,12 @@ LateralAcceleration ::= SEQUENCE { ### LateralAccelerationValue - - ```asn1 LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) ``` ### VerticalAcceleration - - Fields: * verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
@@ -809,16 +673,12 @@ VerticalAcceleration ::= SEQUENCE { ### VerticalAccelerationValue - - ```asn1 VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) ``` ### StationType - - ```asn1 StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) @@ -826,8 +686,6 @@ lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSid ### ExteriorLights - - Values: * **lowBeamHeadlightsOn** (0)
* **highBeamHeadlightsOn** (1)
@@ -852,8 +710,6 @@ ExteriorLights ::= BIT STRING { ### DangerousGoodsBasic - - ```asn1 DangerousGoodsBasic::= ENUMERATED { explosives1(0), @@ -881,8 +737,6 @@ DangerousGoodsBasic::= ENUMERATED { ### DangerousGoodsExtended - - Fields: * dangerousGoodsType [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
* unNumber **INTEGER** (0..9999)
@@ -908,16 +762,12 @@ DangerousGoodsExtended ::= SEQUENCE { ### SpecialTransportType - - ```asn1 SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) ``` ### LightBarSirenInUse - - Values: * **lightBarActivated** (0)
* **sirenActivated** (1)
@@ -930,64 +780,48 @@ LightBarSirenInUse ::= BIT STRING { ### HeightLonCarr - - ```asn1 HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) ``` ### PosLonCarr - - ```asn1 PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) ``` ### PosPillar - - ```asn1 PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) ``` ### PosCentMass - - ```asn1 PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) ``` ### RequestResponseIndication - - ```asn1 RequestResponseIndication ::= ENUMERATED {request(0), response(1)} ``` ### SpeedLimit - - ```asn1 SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) ``` ### StationarySince - - ```asn1 StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} ``` ### Temperature - - Values: * **equalOrSmallerThanMinus60Deg** (-60)
```asn1 @@ -996,8 +830,6 @@ Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1) ### TrafficRule - - ```asn1 TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... } @@ -1005,32 +837,24 @@ TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), ### WheelBaseVehicle - - ```asn1 WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) ``` ### TurningRadius - - ```asn1 TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) ``` ### PosFrontAx - - ```asn1 PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) ``` ### PositionOfOccupants - - Values: * **row1LeftOccupied** (0)
* **row1RightOccupied** (1)
@@ -1078,16 +902,12 @@ PositionOfOccupants ::= BIT STRING { ### PositioningSolutionType - - ```asn1 PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} ``` ### VehicleIdentification - - Fields: * wMInumber [**WMInumber**](#WMInumber) OPTIONAL
* vDS [**VDS**](#VDS) OPTIONAL
@@ -1101,32 +921,24 @@ VehicleIdentification ::= SEQUENCE { ### WMInumber - - ```asn1 WMInumber ::= IA5String (SIZE(1..3)) ``` ### VDS - - ```asn1 VDS ::= IA5String (SIZE(6)) ``` ### EnergyStorageType - - ```asn1 EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) ``` ### VehicleLength - - Fields: * vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
@@ -1139,56 +951,42 @@ VehicleLength ::= SEQUENCE { ### VehicleLengthValue - - ```asn1 VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) ``` ### VehicleLengthConfidenceIndication - - ```asn1 VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} ``` ### VehicleWidth - - ```asn1 VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) ``` ### PathHistory - - ```asn1 PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint ``` ### EmergencyPriority - - ```asn1 EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) ``` ### InformationQuality - - ```asn1 InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) ``` ### RoadType - - ```asn1 RoadType ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), @@ -1199,8 +997,6 @@ RoadType ::= ENUMERATED { ### SteeringWheelAngle - - Fields: * steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
@@ -1213,16 +1009,12 @@ SteeringWheelAngle ::= SEQUENCE { ### SteeringWheelAngleValue - - ```asn1 SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) ``` ### SteeringWheelAngleConfidence - - Values: * **equalOrWithinOnePointFiveDegree** (1)
```asn1 @@ -1231,24 +1023,18 @@ SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), o ### TimestampIts - - ```asn1 TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) ``` ### VehicleRole - - ```asn1 VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} ``` ### YawRate - - Fields: * yawRateValue [**YawRateValue**](#YawRateValue)
* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
@@ -1261,16 +1047,12 @@ YawRate::= SEQUENCE { ### YawRateValue - - ```asn1 YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) ``` ### YawRateConfidence - - Values: * **degSec-000-01** (0)
* **degSec-000-05** (1)
@@ -1297,8 +1079,6 @@ YawRateConfidence ::= ENUMERATED { ### ProtectedZoneType - - Values: * **permanentCenDsrcTolling** (0)
```asn1 @@ -1307,40 +1087,30 @@ ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCen ### RelevanceDistance - - ```asn1 RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} ``` ### RelevanceTrafficDirection - - ```asn1 RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} ``` ### TransmissionInterval - - ```asn1 TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) ``` ### ValidityDuration - - ```asn1 ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) ``` ### ActionID - - Fields: * originatingStationID [**StationID**](ITS-Container.md#StationID)
* sequenceNumber [**SequenceNumber**](#SequenceNumber)
@@ -1353,16 +1123,12 @@ ActionID ::= SEQUENCE { ### ItineraryPath - - ```asn1 ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition ``` ### ProtectedCommunicationZone - - Fields: * protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
@@ -1384,16 +1150,12 @@ ProtectedCommunicationZone ::= SEQUENCE { ### Traces - - ```asn1 Traces ::= SEQUENCE SIZE(1..7) OF PathHistory ``` ### NumberOfOccupants - - Values: * **oneOccupant** (1)
```asn1 @@ -1402,40 +1164,30 @@ NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) ### SequenceNumber - - ```asn1 SequenceNumber ::= INTEGER (0..65535) ``` ### PositionOfPillars - - ```asn1 PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar ``` ### RestrictedTypes - - ```asn1 RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType ``` ### EventHistory - - ```asn1 EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint ``` ### EventPoint - - Fields: * eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
@@ -1450,16 +1202,12 @@ EventPoint ::= SEQUENCE { ### ProtectedCommunicationZonesRSU - - ```asn1 ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone ``` ### CenDsrcTollingZone - - Fields: * protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
@@ -1475,48 +1223,36 @@ CenDsrcTollingZone ::= SEQUENCE { ### ProtectedZoneRadius - - ```asn1 ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) ``` ### ProtectedZoneID - - ```asn1 ProtectedZoneID ::= INTEGER (0.. 134217727) ``` ### CenDsrcTollingZoneID - - ```asn1 CenDsrcTollingZoneID ::= ProtectedZoneID ``` ### DigitalMap - - ```asn1 DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition ``` ### OpeningDaysHours - - ```asn1 OpeningDaysHours ::= UTF8String ``` ### PhoneNumber - - ```asn1 PhoneNumber ::= NumericString (SIZE(1..16)) ``` diff --git a/docs/VAM-Temp-Imports.md b/docs/VAM-Temp-Imports.md index 58d12b1..540031e 100755 --- a/docs/VAM-Temp-Imports.md +++ b/docs/VAM-Temp-Imports.md @@ -9,8 +9,6 @@ ## Data Elements: ### BasicContainer - - Fields: * stationType [**StationType**](ITS-Container.md#StationType)
* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
@@ -24,8 +22,6 @@ BasicContainer ::= SEQUENCE { ### ItsPduHeader - - Fields: * protocolVersion **INTEGER** (0..255)
* messageID **INTEGER** { denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255)
@@ -40,8 +36,6 @@ ItsPduHeader ::= SEQUENCE { ### AreaCircular - - Fields: * nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
* radius [**Radius**](#Radius)
@@ -54,8 +48,6 @@ AreaCircular ::= SEQUENCE { ### AreaPolygon - - Fields: * polyPointList [**PolyPointList**](#PolyPointList)
```asn1 @@ -66,8 +58,6 @@ AreaPolygon ::= SEQUENCE { ### AreaRectangle - - Fields: * nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
@@ -86,8 +76,6 @@ AreaRectangle ::= SEQUENCE { ### OffsetPoint - - Fields: * nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT})
* nodeOffsetPointZ [**NodeOffsetPointZ**](#NodeOffsetPointZ) OPTIONAL
@@ -100,8 +88,6 @@ OffsetPoint ::= SEQUENCE{ ### NodeOffsetPointZ - - Fields: * node-Z1 [**Offset-B10**](DSRC.md#Offset-B10)
* node-Z2 [**Offset-B11**](DSRC.md#Offset-B11)
@@ -122,8 +108,6 @@ NodeOffsetPointZ ::= CHOICE { ### Radius - - Values: * **zeroPointOneMeter** (1)
* **oneMeter** (10)
@@ -136,16 +120,12 @@ Radius ::= INTEGER { ### PolyPointList - - ```asn1 PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint ``` ### SemiRangeLength - - Values: * **zeroPointOneMeter** (1)
* **oneMeter** (10)
@@ -158,8 +138,6 @@ SemiRangeLength ::= INTEGER { ### WGS84AngleValue - - Values: * **wgs84North** (0)
* **wgs84East** (900)
@@ -178,8 +156,6 @@ WGS84AngleValue ::= INTEGER { ### StationType - - ```asn1 StationType ::= INTEGER { unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), -- GitLab From 4e47ddc2406a07a9b0399ea5ca742a60f76656f2 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 18:06:22 +0200 Subject: [PATCH 75/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ccd585b..14d9a50 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,13 +19,13 @@ documentation: fi - make -f .gitlab-ci.mk doc - > + git add docs/*.md if [ -z "$(git status --untracked-files=no --porcelain)" ]; then - echo "No changes found"; + 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; + 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: -- GitLab From f74a8dc5276aec46ef76a2c60585355c80c58a16 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 18:09:21 +0200 Subject: [PATCH 76/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 14d9a50..717b2ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ documentation: echo "No changes found" else 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 remote rm origin && git remote add origin "https://${GITLAB_USER_LOGIN}:${CI_JOB_TOKEN}@forge.etsi.org/rep/$CI_PROJECT_PATH.git" && git push origin "HEAD:$CI_COMMIT_REF_NAME"; fi only: -- GitLab From 2c66d78aa07c1b4dfe2f3f42ade4690183a3960a Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 18:13:28 +0200 Subject: [PATCH 77/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 717b2ec..2074bf5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,10 +18,10 @@ documentation: curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" fi - make -f .gitlab-ci.mk doc + - git add docs/*.md - > - git add docs/*.md if [ -z "$(git status --untracked-files=no --porcelain)" ]; then - echo "No changes found" + echo "No changes found"; else git commit -m "Documentation update" && git remote rm origin && git remote add origin "https://${GITLAB_USER_LOGIN}:${CI_JOB_TOKEN}@forge.etsi.org/rep/$CI_PROJECT_PATH.git" && -- GitLab From e564c4f2d5f390bdb5153300e4526e416e0d974b Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 18:18:07 +0200 Subject: [PATCH 78/85] test --- IMZM-PDU-Descriptions.asn | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index da4d1c9..a9c2a85 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,4 +1,4 @@ ---! @brief TEST!!! Specification of the Interference Management Zone Message ETSI TS 103 724 +--! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 --! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 IMZM-PDU-Descriptions { @@ -25,10 +25,8 @@ en (302637) cam (2) version (2) } --! @brief Include ETSI TS 103 300-3 ---! Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available +--! All data types, imported from `VAM-Temp-Imports` will be imported from the CDD ETSI TS 102 894-2 Release 2 when available --! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn ---! ---! **This is temporary.** These data types shall be defined in the next verion of CDD AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) -- GitLab From 87fe999d470e55f59541a80b46e3eccdcf09a163 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Wed, 2 Jun 2021 18:23:25 +0200 Subject: [PATCH 79/85] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2074bf5..c956871 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ documentation: echo "No changes found"; else git commit -m "Documentation update" && - git remote rm origin && git remote add origin "https://${GITLAB_USER_LOGIN}:${CI_JOB_TOKEN}@forge.etsi.org/rep/$CI_PROJECT_PATH.git" && + 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: -- GitLab From d949bf98c454d43632bdd74742ecff3e32e26ef8 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Wed, 2 Jun 2021 16:24:06 +0000 Subject: [PATCH 80/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md index a06c3cf..c6503af 100755 --- a/docs/IMZM-PDU-Descriptions.md +++ b/docs/IMZM-PDU-Descriptions.md @@ -1,6 +1,6 @@ # ASN.1 module IMZM-PDU-Descriptions OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ -TEST!!! Specification of the Interference Management Zone Message ETSI TS 103 724 +Specification of the Interference Management Zone Message ETSI TS 103 724 Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 ## Imports: @@ -14,9 +14,8 @@ Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
Include ETSI TS 103 300-3 - Import from `VAM-Temp-Imports` will be changed to CDD ETSI TS 102 894-2 Release 2 when available + All data types, imported from `VAM-Temp-Imports` will be imported from the CDD ETSI TS 102 894-2 Release 2 when available Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn - This is temporary.** These data types shall be defined in the next verion of CDD ## Data Elements: ### DF: Interference Management Zone Message Root -- GitLab From 18f08b77b66ea1ec66abf56104f1e3a6ac26f3a7 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 3 Jun 2021 12:03:49 +0200 Subject: [PATCH 81/85] Delete asn2md.py --- asn2md.py | 263 ------------------------------------------------------ 1 file changed, 263 deletions(-) delete mode 100755 asn2md.py diff --git a/asn2md.py b/asn2md.py deleted file mode 100755 index 33e3881..0000000 --- a/asn2md.py +++ /dev/null @@ -1,263 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse # parse arguments -import os.path # getting extension from file -import sys # output and stuff -import re # for regular expressions -if (sys.version_info > (3, 0)): - import urllib.parse # -else: - import urllib # - -## extract doxygen-tag namespace -RE_MODULE = re.compile( r'^\s*([A-Z][\w-]*)\s*({.*?})?\s*DEFINITIONS.*?::=\s*?BEGIN(.*)END', re.VERBOSE | re.MULTILINE | re.DOTALL) - -RE_SPACES = re.compile(r'\s+') - -RE_COMMENTS = re.compile(r'^\s*--.*?\n|--.*?(?:--|$)|/\*.*?\*/[\t ]*\n?', re.MULTILINE|re.DOTALL) - -RE_BASIC_TYPES = re.compile(r'^OCTET\s+STRING|BIT\s+STRING|BOOLEAN|INTEGER|FLOAT|SEQUENCE|SET|NULL') - -RE_TYPE_BODY = re.compile(r'.*?{(.*)}\s*(?:\(.*?\)|\s*$)', re.MULTILINE|re.DOTALL) - -#RE_FIELDS = re.compile(r'^\s*(?:/\*\*.*?\*/)|^\s*([\w-]+?)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][.\w-]+)?(.*?)(?:,((?:\s*--!?<.*?\n)*)|((?:--!?<.*?\n)*)$)', re.MULTILINE | re.DOTALL| re.VERBOSE) -RE_FIELDS = re.compile(r'^\s*/\*.*?\*/|^\s*--\!.*?\n|^\s*([\w-]+)\s+(OCTET\s+STRING|BIT\s+STRING|[A-Z][\w-]+)?((?:{[^}]*}|\([^)]*\)|.)*?)(?:,|(--)|$)', re.MULTILINE | re.DOTALL) - -RE_EXPORTS = re.compile(r'^\s*EXPORTS.*?;', re.DOTALL | re.MULTILINE) - -RE_IMPORTS = re.compile(r'^\s*IMPORTS\s*(.*?);', re.DOTALL | re.MULTILINE) - -RE_IMPORT_ELEMENTS = re.compile(r'^([,\s\w-]*?)FROM\s*([\w-]+)\s*({[^}]*}(?:\s+WITH\s+SUCCESSORS)?)?', re.MULTILINE) - -RE_IMPORT_ELEMENT_TYPE = re.compile(r'[^,\s]+') - -RE_DOXY_COMMENTS = re.compile(r'^\s*--[-!#](:?$|\s(.*))', re.MULTILINE) - -RE_DOXY_C_COMMENTS = re.compile(r'^\s*/\*\*\s(.*?)\*/', re.MULTILINE | re.DOTALL) - -RE_DOXY_C_COMMENTS_I = re.compile(r'\s*\*+') - -RE_DOXY_REF = re.compile(r'@ref\s+([\w-]+)') -RE_DOXY_CLASS = re.compile(r'@class\s+([\w-]+)') -RE_DOXY_STRIP_SINGLE_TAG = re.compile(r'@(?:brief|url)\s+') -RE_DOXY_DETAILS = re.compile(r'@details\s+[\w-]+') -RE_DOXY_STRIP_TAG = re.compile(r'@(?:details|class|struct)\s+[\w-]+') -RE_DOXY_UNIT = re.compile(r'@unit\s+(.+)', re.MULTILINE) -RE_DOXY_BRIEF = re.compile(r'@brief\s+(.+)\n', re.MULTILINE) -RE_DOXY_CATEGORY = re.compile(r'@category:\s+(.+)', re.MULTILINE) -RE_DOXY_PARAM = re.compile(r'^\s*@(?:param|field)\s+([\w-]+)\s*(.*?)\n\s*$', re.MULTILINE | re.DOTALL) - -# RE_TYPE = re.compile(r'(([A-Z][\w-]*)\s*::=[\w \t]+(?:{+(.*?)}+)?.*?)\n\s*\n', re.MULTILINE | re.DOTALL) -RE_TYPE = re.compile(r'^\s*([A-Z][\w-]*)?\s*([{} \t:\w-]*?)?::=([\w \t]+.*?)\n\s*\n', re.MULTILINE | re.DOTALL) - -extTypes = {} -cpos = 0 -o_args = [] - -def urlquote(s): - if (sys.version_info > (3, 0)): - return urllib.parse.quote_plus(s) - else: - return urllib.quote_plus(s) - -def parseText(content, indent=None): - s_unit='' - def repl_ref(m): - return '[**{0}**]({1}#{0})'.format(m.group(1), extTypes.get(m.group(1),'')) - c = RE_DOXY_REF.sub(repl_ref, content) - if c is not None: - content = c - c = RE_DOXY_STRIP_TAG.sub('', content) - if c is not None: - content = c - c = RE_DOXY_STRIP_SINGLE_TAG.sub('', content) - if c is not None: - content = c - def repl_category(m): - ret = '\n    **Categories**: ' - for l in m.group(1).split(','): - ret += '[{0}](#{1}) '.format(l.strip(), urlquote(l.strip())) - return ret + '\n\n' - c = RE_DOXY_CATEGORY.sub(repl_category, content) - if c is not None: - content = c - def repl_unit(m): - nonlocal s_unit - s_unit = '\n    **Unit**: _' + m.group(1).strip() + '_' - return '' - c = RE_DOXY_UNIT.sub(repl_unit, content) - if c is not None: - content = c - return content + s_unit - -def parseInlineComments(content:str, indent=None): - # keep into account only '--<' comments - lines = content.splitlines() - content = '' - for l in lines: - l = l.lstrip() - if l.startswith('--< '): - content += l[4:] + '\n' - elif l.startswith('--!< '): - content += l[5:] + '\n' - else: - continue - return parseText(content, indent) - -def parseDoxyComments(content:str, indent=None): - # keep only '--! ' and /** */ comments - # convert '--! ' comments to C-style - c = RE_DOXY_COMMENTS.sub(r'/** \g<1>*/', content) - if c is not None: - content = c - ret = '' - for m in RE_DOXY_C_COMMENTS.finditer(content): - lines = m.group(1).splitlines() - for l in lines: - l = l.strip().lstrip('*') - ret += ''.ljust(indent or 0) + l + '\n' - return parseText(ret, indent) - -def parseModule(mname, content): - global cpos - cpos = 0 - ret = '' - m = RE_IMPORTS.search(content) - if m is not None: - pos = 0 - if m.group(1) is not None: - ret += '## Imports:\n' - s = m.group(1) - for fm in RE_IMPORT_ELEMENTS.finditer(s): - imName = fm.group(2) - for im in RE_IMPORT_ELEMENT_TYPE.finditer(fm.group(1)): - extTypes[im.group(0)] = imName+'.md' - ret += ' * **[{0}]({0}.md)** *{1}*
\n'.format(imName, RE_SPACES.sub(' ', fm.group(3) or '')) - ret += parseDoxyComments(s[pos:fm.start()], 3)+'\n' - pos = fm.end() - ret += parseDoxyComments(s[pos:]) - cpos = m.end() - - m = RE_EXPORTS.search(content) - if m is not None: - if cpos < m.end(): - cpos = m.end() - - # parse types - def repl_type (m, doc): - title = t = m.group(1) - if doc : # non None and not empty - def repl_brief (m): - nonlocal title - title = m.group(1) - return '\n' - if o_args.brief_as_title: - doc = RE_DOXY_BRIEF.sub(repl_brief, doc, 1) - doc = parseDoxyComments(doc) + '\n\n' - else: - doc = '' - - ret = '' - if t is not None: - # parse out @params - f_params = {} - def repl_param (m): - nonlocal f_params - if m.group(1) is not None and m.group(2) is not None: - l = m.group(2).lstrip(":, \t\n") - if len(l): - f_params[m.group(1)] = l - return '' - doc = RE_DOXY_PARAM.sub(repl_param, doc) - - ret = '### {1}\n\n'.format(t, title) + doc - - # parse fields and get out fields descriptions - if m.group(3) is not None: - # check if contain fields - fm = RE_TYPE_BODY.search(m.group(3)) - if fm is not None and fm.group(1) is not None: - typeBody = fm.group(1).strip() - if typeBody is not None: - fTitle = '' - fields = '' - pos = 0 - for fm in RE_FIELDS.finditer(typeBody): - if fm.group(1) is not None: - # add description to the previous type - fields += parseInlineComments(fm.string[pos:fm.start()], 3) - f = fm.group(1).strip() - ext = fm.group(3) or '' - if fm.group(2) is not None: - fTitle = 'Fields:\n' - t = fm.group(2).strip() - if RE_BASIC_TYPES.match(t) is not None: - fields += '* {0} **{1}** {2}
\n'.format(f, t, ext) - else: - fields += '* {0} [**{1}**]({2}#{1}) {3}
\n'.format(f, t, extTypes.get(t,''), ext) - else: - fTitle = 'Values:\n' - fields += '* **{0}** {1}
\n'.format(f, ext) - if f in f_params: - fields += f_params[f] + '\n\n' - fields += parseDoxyComments(fm.string[pos:fm.start()], 3) - pos = fm.end() - if fm.group(4) is not None: - # keep '--' for the next round - pos -= 2 - fields += parseInlineComments(typeBody[pos:], 3) - if len(fields): - ret = ret.strip() + '\n\n' + fTitle + fields - else: - if title: - ret = '### {}\n\n'.format(title) - ret += parseDoxyComments(doc) + '\n\n' - return ret + '```asn1\n' + RE_COMMENTS.sub('', m.group(0).strip()) +'\n```\n\n' - - pos = 0 - ret += '## Data Elements:\n' - for m in RE_TYPE.finditer(content[cpos:]): - ret += repl_type (m, m.string[pos:m.start()]) - pos = m.end() - return ret - - -def parseAsn(outDir, content) : - # iterate modules in the file - pos= 0 - cnt = 0 - for m in RE_MODULE.finditer(content): - ret = '# ASN.1 module {}\n OID: _{}_\n'.format(m.group(1), RE_SPACES.sub(' ', m.group(2))) - ret += parseDoxyComments(content[pos:m.start()]) + '\n' - if m.group(3) is not None: - ret += parseModule(m.group(1), m.group(3)) - ret += '\n\n' - open(outDir + '/' + m.group(1) + '.md', "w").write(ret) - pos = m.end() - cnt += 1 - return cnt - -def main(): - global o_args - ap = argparse.ArgumentParser(description='ASN.1 to markdown converter') - ap.add_argument('--out', '-o', type=str, default='.', help='output directory') - ap.add_argument('--brief-as-title', '-B', default=False, action='store_true', help='Do not treat @brief line as type header') - ap.add_argument('modules', action='store', nargs='+', help='ASN.1 files') - o_args = ap.parse_args() - - if not o_args.modules: - ap.print_help() - exit(1) - - cnt = 0 - for a in o_args.modules: - try: - content = open(a).read() - cnt += parseAsn(o_args.out, content) - except IOError as e: - sys.stderr.write(e[1]+"\n") - print("{} modules porcessed\n".format(cnt)) - -if __name__ == '__main__': - main() -- GitLab From 91b4236aff041c61d1a7f97dafe6ed7f589662dc Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 3 Jun 2021 12:11:11 +0200 Subject: [PATCH 82/85] Delete IMZM-PDU-Descriptions.md and regenerate it --- docs/IMZM-PDU-Descriptions.md | 414 ---------------------------------- 1 file changed, 414 deletions(-) delete mode 100755 docs/IMZM-PDU-Descriptions.md diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md deleted file mode 100755 index c6503af..0000000 --- a/docs/IMZM-PDU-Descriptions.md +++ /dev/null @@ -1,414 +0,0 @@ -# ASN.1 module IMZM-PDU-Descriptions - OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ -Specification of the Interference Management Zone Message ETSI TS 103 724 -Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - -## Imports: - * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
- Include ETSI TS 102 894-2 - Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn - - * **[CAM-PDU-Descriptions](CAM-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
- Include ETSI EN 302 637-2 - Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn - - * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
- Include ETSI TS 103 300-3 - All data types, imported from `VAM-Temp-Imports` will be imported from the CDD ETSI TS 102 894-2 Release 2 when available - Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn - -## Data Elements: -### DF: Interference Management Zone Message Root - - -This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` -and the station identifier `stationID` of the originating ITS-S. - -Fields: -* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
- - - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving - ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. - - The DE `messageID` shall be harmonized with other V2X message identifier definitions. - For IMZM, the DE messageID shall be set to `imzm(15)`. -* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
-```asn1 -IMZM ::= SEQUENCE { - header ItsPduHeader, - imzm InterferenceManagementZoneMessage -} -``` - -### DF: Interference Management Zone Message - - -This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable -containers of type `BasicContainer` and `ImzmContainer`. - -Fields: -* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
-* imzmParameters [**ImzmParameters**](#ImzmParameters)
-```asn1 -InterferenceManagementZoneMessage ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, - imzmParameters ImzmParameters -} -``` - -### DF: IMZM Parameters - - -The sequence of containers in the IMZM. Other containers may be added in the future. - -Fields: -* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
- - imported from CAM-PDU-Descriptions -* imzmContainer [**ImzmContainer**](#ImzmContainer)
- - container specific to the IMZM -```asn1 -ImzmParameters ::= SEQUENCE { - basicContainer BasicContainer, - imzmContainer ImzmContainer, - ... -} -``` - -### DF: IMZM Container - - -The IMZM container includes a sequence of up to 16 interference management zones. -For each interference management zones, it contains a sequence of interference -management zones per channel together with their characteristics. - -Fields: -* interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
- - mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 -```asn1 -ImzmContainer ::= SEQUENCE { - interferenceManagementZones InterferenceManagementZones, - ... -} -``` - -### DF: List of Interference Management Zones - - -A list of up to 16 interference management zones. -EXAMPLE**: An interference management communication zone may be defined around a -CEN DSRC road side equipment or an urban rail operational area. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) - - - - -```asn1 -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone -``` - -### DF: Interference Management Zone - - -Describes a zone of interferenceManagement inside which the ITS communication should -be restricted. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) - -Fields: -* zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
-* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
-```asn1 -InterferenceManagementZone ::= SEQUENCE { - zoneDefinition ZoneDefinition, - interferenceManagementInfo InterferenceManagementInfo -} -``` - -### DF: Zone Definition - - -Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) - -Fields: -* interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
- - Latitude of the centre point of the interference management zone. -* interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
- - Longitude of the centre point of the interference management zone. -* interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
- - Radius of the interference management zone in metres. - This DE is present if the data is available -* interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
- - Identification of the interference management zone. - This DE is present if the data is available. -* interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
- - Shape of the interference management zone. - This DF is present if the data is available. -```asn1 -ZoneDefinition::= SEQUENCE{ - interferenceManagementZoneLatitude Latitude, - interferenceManagementZoneLongitude Longitude, - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, - interferenceManagementZoneID ProtectedZoneID OPTIONAL, - interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, - ... -} -``` - -### DF: Interference Management Information - - -A list of up to 16 definitions containing which interference management may be applied in the zone, -per affected frequency channels. - -Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated -by the value of interferenceManagementMitigationType set to unavailable. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) - - - - -```asn1 -InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel -``` - -### DF: Interference Management Information Per Channel - - -A break up of the interference management information per affected frequency channels. - -    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) - -Fields: -* interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
- - Characteritics of the frequency channel for which the zone - should be applied interference management -* interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
- - Type of the interference management zone. -* interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
- - Type of the mitigation to be used in the interference management zone. -* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
- - Time at which the validity of the interference management communication zone will expire. - This DE is present when the interference management is temporarily valid -```asn1 -InterferenceManagementInfoPerChannel ::= SEQUENCE { - interferenceManagementChannel InterferenceManagementChannel, - interferenceManagementZoneType InterferenceManagementZoneType, - interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - expiryTime TimestampIts OPTIONAL, - ... -} -``` - -### DF: InterferenceManagementChannel - - -Indicates which shared frequency channel should be applied interference management in the zone. - -    **Categories**: [Communication information](#Communication+information) - -Fields: -* centreFrequency **INTEGER** (1 .. 99999)
- frequency of the channel - @unit: 10exp+2 Hz (where exp is exponent) -* channelWidth **INTEGER** (0 .. 9999)
- of the channel - @unit: 10exp Hz (where exp is exponent) -* exponent **INTEGER** (0 .. 15)
- of the power of 10 - @unit: N/A -```asn1 -InterferenceManagementChannel ::= SEQUENCE { - centreFrequency INTEGER (1 .. 99999), - channelWidth INTEGER (0 .. 9999), - exponent INTEGER (0 .. 15) -} -``` - -### DE: InterferenceManagementZoneType - - -defines the type of an interference management zone, so that an ITS-S can -assert the actions to do while passing by such zone (e.g. reduce the transmit -power in case of a DSRC tolling station). -@unit: N/A - -    **Categories**: [Communication information](#Communication+information) - - - - -```asn1 -InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), - temporaryCenDsrcTolling(1), - unavailable(2), - urbanRail(3), - satelliteStation(4), - fixedLinks(5), - ... -} -``` - -### DF: Mitigation type in the interference management zone - - -Information and commands defining the required mitigation type the -receiving ITS-S has to use in the defined interference management zone. -It indicates the type of mitigation and the parameters to be used to protect the -potential victim in the interference management zone per channel access technology class. - -    **Categories**: [Communication information](#Communication+information) - -Fields: -* unavailable **NULL**
- is the default value to be used when data is not available. -* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
-```asn1 -InterferenceManagementMitigationType ::= CHOICE { - unavailable NULL, - mitigationForTechnologies MitigationForTechnologies -} -``` - -### DF: Mitigation type container for the different channel access technology classes - - -Class of parameters for the relevant channel access technology classes, -as specified in ETSI TS 103 724, clause 7. - -    **Categories**: [Communication information](#Communication+information) - - - - -```asn1 -MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass -``` - -### DF: Mitigation type container per channel access technology class - - -Class of parameters for the specific technology indicated in the container. -All parameters are optional, as they may not apply to some of the technologies or -interference management zone types. Specification details are in ETSI TS 103 724, clause 7. - -    **Categories**: [Communication information](#Communication+information) - -Fields: -* accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
- access technology in which this mitigation is applied. - @unit: N/A -* lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
- cycle limit. - @unit: 0.01% steps -* powerReduction **INTEGER** (0 .. 30) OPTIONAL
- reduction. - @unit: dB -* dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
- time limit as defined in ETSI TS 103 175. - @unit: ms -* dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
- duration limit, as defined in ETSI EN 302 571. - @unit: ms -```asn1 -MitigationPerTechnologyClass ::= SEQUENCE { - accessTechnologyClass AccessTechnologyClass, - lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - powerReduction INTEGER (0 .. 30) OPTIONAL, - dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - dmcTonLimit INTEGER (0 .. 20) OPTIONAL, - ... -} -``` - -### DE: channel access technology class - - -Access technology to which the mitigation type applies. - -    **Categories**: [Communication information](#Communication+information) - - - - -```asn1 -AccessTechnologyClass ::= ENUMERATED { - any(0), - itsg5Class(1), - ltev2xClass(2), - nrv2xClass(3), - ... -} -``` - -### DF: Shape of the interference management zone - - -Bounding box of an interference management zone - -    **Categories**: [GeoReference information](#GeoReference+information) - -Fields: -* rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
-* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
-* polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
-* ellipse [**AreaEllipse**](#AreaEllipse)
-```asn1 -InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, - circle AreaCircular, - polygon AreaPolygon, - ellipse AreaEllipse, - ... -} -``` - -### DF: Area Ellipse - - -Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. -Describes an elliptical area. The ellipse is centred about the reference point -of the ITS-S or about the nodeCenterPoint (if provided). - -    **Categories**: [GeoReference information](#GeoReference+information) - -Fields: -* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
- - Optional offset point about which the ellipse is centred with respect to the reference - position of the ITS-S. -* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
- - Minor radius of the ellipse. -* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
- - Major radius of the ellipse. -* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
- - Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. -```asn1 -AreaEllipse ::= SEQUENCE { - nodeCenterPoint OffsetPoint OPTIONAL, - semiMajorRangeLength SemiRangeLength, - semiMinorRangeLength SemiRangeLength, - semiMajorRangeOrientation WGS84AngleValue -} -``` - - - -- GitLab From ec58860a66d5da0426a5cf4570834215c82f9292 Mon Sep 17 00:00:00 2001 From: "ASN.1 Checker" Date: Thu, 3 Jun 2021 10:19:11 +0000 Subject: [PATCH 83/85] Documentation update --- docs/IMZM-PDU-Descriptions.md | 419 ++++++++++++++++++++++++++++++++++ docs/ITS-Container.md | 4 +- 2 files changed, 421 insertions(+), 2 deletions(-) create mode 100644 docs/IMZM-PDU-Descriptions.md diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md new file mode 100644 index 0000000..2a52aaa --- /dev/null +++ b/docs/IMZM-PDU-Descriptions.md @@ -0,0 +1,419 @@ +# ASN.1 module IMZM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ + Specification of the Interference Management Zone Message ETSI TS 103 724 + Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + +## Imports: + * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ Include ETSI TS 102 894-2 + Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + + * **[CAM-PDU-Descriptions](CAM-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
+ Include ETSI EN 302 637-2 + Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + + * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
+ Include ETSI TS 103 300-3 + All data types, imported from `VAM-Temp-Imports` will be imported from the CDD ETSI TS 102 894-2 Release 2 when available + Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn + +## Data Elements: +### IMZM + + DF: Interference Management Zone Message Root + This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` + and the station identifier `stationID` of the originating ITS-S. + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+ header + - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. + - The DE `messageID` shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE messageID shall be set to `imzm(15)`. +* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
+```asn1 +IMZM ::= SEQUENCE { + header ItsPduHeader, + imzm InterferenceManagementZoneMessage +} +``` + +### InterferenceManagementZoneMessage + + DF: Interference Management Zone Message + This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable + containers of type `BasicContainer` and `ImzmContainer`. + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* imzmParameters [**ImzmParameters**](#ImzmParameters)
+```asn1 +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + imzmParameters ImzmParameters +} +``` + +### ImzmParameters + + DF: IMZM Parameters + The sequence of containers in the IMZM. Other containers may be added in the future. + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+ basicContainer + imported from CAM-PDU-Descriptions +* imzmContainer [**ImzmContainer**](#ImzmContainer)
+ imzmContainer + container specific to the IMZM +```asn1 +ImzmParameters ::= SEQUENCE { + basicContainer BasicContainer, + imzmContainer ImzmContainer, + ... +} +``` + +### ImzmContainer + + DF: IMZM Container + The IMZM container includes a sequence of up to 16 interference management zones. + For each interference management zones, it contains a sequence of interference + management zones per channel together with their characteristics. + +Fields: +* interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
+ interferenceManagementZones + mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 +```asn1 +ImzmContainer ::= SEQUENCE { + interferenceManagementZones InterferenceManagementZones, + ... +} +``` + +### InterferenceManagementZones + + DF: List of Interference Management Zones + A list of up to 16 interference management zones. + + **EXAMPLE**: An interference management communication zone may be defined around a + CEN DSRC road side equipment or an urban rail operational area. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + + + +```asn1 +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone +``` + +### InterferenceManagementZone + + DF: Interference Management Zone + Describes a zone of interferenceManagement inside which the ITS communication should + be restricted. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + +Fields: +* zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
+* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
+```asn1 +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo +} +``` + +### ZoneDefinition + + DF: Zone Definition + Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + +Fields: +* interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+ interferenceManagementZoneLatitude + Latitude of the centre point of the interference management zone. +* interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+ interferenceManagementZoneLongitude + Longitude of the centre point of the interference management zone. +* interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+ interferenceManagementZoneRadius + Radius of the interference management zone in metres. + This DE is present if the data is available +* interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+ interferenceManagementZoneID + Identification of the interference management zone. + This DE is present if the data is available. +* interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
+ interferenceManagementZoneShape + Shape of the interference management zone. + This DF is present if the data is available. +```asn1 +ZoneDefinition::= SEQUENCE{ + interferenceManagementZoneLatitude Latitude, + interferenceManagementZoneLongitude Longitude, + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, + interferenceManagementZoneID ProtectedZoneID OPTIONAL, + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... +} +``` + +### InterferenceManagementInfo + + DF: Interference Management Information + A list of up to 16 definitions containing which interference management may be applied in the zone, + per affected frequency channels. + + **Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated + by the value of interferenceManagementMitigationType set to unavailable. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + + + +```asn1 +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel +``` + +### InterferenceManagementInfoPerChannel + + DF: Interference Management Information Per Channel + A break up of the interference management information per affected frequency channels. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + +Fields: +* interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
+ interferenceManagementChannel + Characteritics of the frequency channel for which the zone + should be applied interference management +* interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
+ interferenceManagementZoneType + Type of the interference management zone. +* interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
+ interferenceManagementMitigationType + Type of the mitigation to be used in the interference management zone. +* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+ expiryTime + Time at which the validity of the interference management communication zone will expire. + This DE is present when the interference management is temporarily valid +```asn1 +InterferenceManagementInfoPerChannel ::= SEQUENCE { + interferenceManagementChannel InterferenceManagementChannel, + interferenceManagementZoneType InterferenceManagementZoneType, + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + expiryTime TimestampIts OPTIONAL, + ... +} +``` + +### InterferenceManagementChannel + + DF: InterferenceManagementChannel + Indicates which shared frequency channel should be applied interference management in the zone. + +    **Categories**: [Communication information](#Communication+information) + +Fields: +* centreFrequency **INTEGER** (1 .. 99999)
+ centre frequency of the channel +
    **Unit**: _10exp+2 Hz (where exp is exponent)_ + +* channelWidth **INTEGER** (0 .. 9999)
+ width of the channel +
    **Unit**: _10exp Hz (where exp is exponent)_ + +* exponent **INTEGER** (0 .. 15)
+ exponent of the power of 10 +
    **Unit**: _N/A_ + +```asn1 +InterferenceManagementChannel ::= SEQUENCE { + centreFrequency INTEGER (1 .. 99999), + channelWidth INTEGER (0 .. 9999), + exponent INTEGER (0 .. 15) +} +``` + +### InterferenceManagementZoneType + + DE: InterferenceManagementZoneType + defines the type of an interference management zone, so that an ITS-S can + assert the actions to do while passing by such zone (e.g. reduce the transmit + power in case of a DSRC tolling station). + +    **Categories**: [Communication information](#Communication+information) + +
    **Unit**: _N/A_ + + + +```asn1 +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), + temporaryCenDsrcTolling(1), + unavailable(2), + urbanRail(3), + satelliteStation(4), + fixedLinks(5), + ... +} +``` + +### InterferenceManagementMitigationType + + DF: Mitigation type in the interference management zone + Information and commands defining the required mitigation type the + receiving ITS-S has to use in the defined interference management zone. + It indicates the type of mitigation and the parameters to be used to protect the + potential victim in the interference management zone per channel access technology class. + +    **Categories**: [Communication information](#Communication+information) + +Fields: +* unavailable **NULL**
+ unavailable is the default value to be used when data is not available. +* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
+```asn1 +InterferenceManagementMitigationType ::= CHOICE { + unavailable NULL, + mitigationForTechnologies MitigationForTechnologies +} +``` + +### MitigationForTechnologies + + DF: Mitigation type container for the different channel access technology classes + Class of parameters for the relevant channel access technology classes, + as specified in ETSI TS 103 724, clause 7. + +    **Categories**: [Communication information](#Communication+information) + + + +```asn1 +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass +``` + +### MitigationPerTechnologyClass + + DF: Mitigation type container per channel access technology class + Class of parameters for the specific technology indicated in the container. + All parameters are optional, as they may not apply to some of the technologies or + interference management zone types. Specification details are in ETSI TS 103 724, clause 7. + +    **Categories**: [Communication information](#Communication+information) + +Fields: +* accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
+ channel access technology in which this mitigation is applied. +
    **Unit**: _N/A_ + +* lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
+ duty cycle limit. +
    **Unit**: _0.01% steps_ + +* powerReduction **INTEGER** (0 .. 30) OPTIONAL
+ power reduction. +
    **Unit**: _dB_ + +* dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
+ Idle time limit as defined in ETSI TS 103 175. +
    **Unit**: _ms_ + +* dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
+ Transmission duration limit, as defined in ETSI EN 302 571. +
    **Unit**: _ms_ + +```asn1 +MitigationPerTechnologyClass ::= SEQUENCE { + accessTechnologyClass AccessTechnologyClass, + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + powerReduction INTEGER (0 .. 30) OPTIONAL, + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} +``` + +### AccessTechnologyClass + + DE: channel access technology class + Access technology to which the mitigation type applies. + +    **Categories**: [Communication information](#Communication+information) + + + +```asn1 +AccessTechnologyClass ::= ENUMERATED { + any(0), + itsg5Class(1), + ltev2xClass(2), + nrv2xClass(3), + ... +} +``` + +### InterferenceManagementZoneShape + + DF: Shape of the interference management zone + Bounding box of an interference management zone + +    **Categories**: [GeoReference information](#GeoReference+information) + +Fields: +* rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
+* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
+* polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
+* ellipse [**AreaEllipse**](#AreaEllipse)
+```asn1 +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, + ... +} +``` + +### AreaEllipse + + DF: Area Ellipse + Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. + Describes an elliptical area. The ellipse is centred about the reference point + of the ITS-S or about the nodeCenterPoint (if provided). + +    **Categories**: [GeoReference information](#GeoReference+information) + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+ nodeCenterPoint + Optional offset point about which the ellipse is centred with respect to the reference + position of the ITS-S. +* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ semiMajorRangeLength + Minor radius of the ellipse. +* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ semiMinorRangeLength + Major radius of the ellipse. +* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+ semiMajorRangeOrientation + Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. +```asn1 +AreaEllipse ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue +} +``` + + + diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md index b48fc80..853a9ba 100755 --- a/docs/ITS-Container.md +++ b/docs/ITS-Container.md @@ -7,7 +7,7 @@ Fields: * protocolVersion **INTEGER** (0..255)
* messageID **INTEGER** { denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255)
-* stationID [**StationID**](ITS-Container.md#StationID)
+* stationID [**StationID**](#StationID)
```asn1 ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), @@ -1112,7 +1112,7 @@ ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} ### ActionID Fields: -* originatingStationID [**StationID**](ITS-Container.md#StationID)
+* originatingStationID [**StationID**](#StationID)
* sequenceNumber [**SequenceNumber**](#SequenceNumber)
```asn1 ActionID ::= SEQUENCE { -- GitLab From 607ddca6f2369bf18f3daa10e57b5ab5caff21cb Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 26 Jul 2021 12:55:55 +0200 Subject: [PATCH 84/85] Update the IMZM-PDU-Descriptions OID --- IMZM-PDU-Descriptions.asn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index a9c2a85..279fd25 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -2,7 +2,7 @@ --! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 IMZM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103724 (103724) imzm (1) version1 (1) } DEFINITIONS AUTOMATIC TAGS ::= -- GitLab From b005c64c06c8c02c4a03a9b544ffaf1e9282c1a6 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Mon, 26 Jul 2021 15:34:48 +0200 Subject: [PATCH 85/85] prepare readme for publication --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3ebdd7e..4ab0af7 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # ASN.1 module for PZM [ETSI TS 103 724] -This repository will contain the ASN.1 module for ETSI TS 103 724 - Protected Zone beacon message +This repository will contain the ASN.1 module for ETSI Interference Management Zone Service in the file **IMZM-PDU-Descriptions.asn** +* The module is published with the **[ETSI TS 103 724 v2.1.1](http://www.etsi.org/deliver/etsi_ts/103700_103799/103724/02.01.01_60/ts_103274v020101p.pdf)**. -* Note: The base specification is in the draft state ## License -- GitLab