Loading .gitlab-ci.yml +8 −9 Original line number Original line Diff line number Diff line image: alpine variables: GIT_SUBMODULE_STRATEGY: normal image: danya25/asn1c:0.0.5 validate: validate: stage: test stage: test Loading @@ -8,13 +11,12 @@ validate: - iso/* - iso/* only: only: changes: changes: - ./*.asn - "*.asn" documentation: documentation: stage: build stage: deploy script: 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 - make doc - git add docs/*.md - git add docs/*.md - git commit -m "Documentation update" - git commit -m "Documentation update" Loading @@ -22,7 +24,4 @@ documentation: - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger only: only: changes: changes: - ./*.asn - "*.asn" # artifacts: # paths: # - docs/* Makefile +45 −45 Original line number Original line Diff line number Diff line Loading @@ -10,27 +10,27 @@ ASN1_SRC_VALIDATE := \ iso/ISO14816_AVIAEINumberingAndDataStructures.asn iso/ISO14816_AVIAEINumberingAndDataStructures.asn ASN1_PDU := IMZM ASN1_PDU := IMZM ASN1_KNOWN := DATE #ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs ifneq (,$(ASN1CDIR)) ifneq (,$(ASN1CDIR)) ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons else else ASN1C := asn1c ASN1C := asn1c endif endif validate: build iso build/gen_flag .PHONY: validate doc build validate: iso build doc: docs doc: docs python asn2md.py docs $(ASN1_SRC) python3 asn2md.py docs $(ASN1_SRC) build iso docs: iso docs: mkdir -p $@ mkdir -p $@ build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) build: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ $(ASN1C) -E -F -fcompound-names $(addprefix -fknown-extern-type=,$(ASN1_KNOWN)) $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null clean: rm -rf build iso/iso19091_2018.asn: iso/iso19091_2018.asn: curl -o $@ 'https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn' curl -o $@ 'https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn' Loading docs/CAM-PDU-Descriptions.md +306 −305 Original line number Original line Diff line number Diff line Loading @@ -4,7 +4,8 @@ ## Imports: ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> ## <a name="CAM"></a>CAM ## Data Elements: ### <a name="CAM"></a>CAM Loading @@ -18,7 +19,7 @@ CAM ::= SEQUENCE { } } ``` ``` ## <a name="CoopAwareness"></a>CoopAwareness ### <a name="CoopAwareness"></a>CoopAwareness Loading @@ -32,7 +33,7 @@ CoopAwareness ::= SEQUENCE { } } ``` ``` ## <a name="CamParameters"></a>CamParameters ### <a name="CamParameters"></a>CamParameters Loading @@ -51,7 +52,7 @@ CamParameters ::= SEQUENCE { } } ``` ``` ## <a name="HighFrequencyContainer"></a>HighFrequencyContainer ### <a name="HighFrequencyContainer"></a>HighFrequencyContainer Loading @@ -66,7 +67,7 @@ HighFrequencyContainer ::= CHOICE { } } ``` ``` ## <a name="LowFrequencyContainer"></a>LowFrequencyContainer ### <a name="LowFrequencyContainer"></a>LowFrequencyContainer Loading @@ -79,7 +80,7 @@ LowFrequencyContainer ::= CHOICE { } } ``` ``` ## <a name="SpecialVehicleContainer"></a>SpecialVehicleContainer ### <a name="SpecialVehicleContainer"></a>SpecialVehicleContainer Loading @@ -104,7 +105,7 @@ SpecialVehicleContainer ::= CHOICE { } } ``` ``` ## <a name="BasicContainer"></a>BasicContainer ### <a name="BasicContainer"></a>BasicContainer Loading @@ -119,7 +120,7 @@ BasicContainer ::= SEQUENCE { } } ``` ``` ## <a name="BasicVehicleContainerHighFrequency"></a>BasicVehicleContainerHighFrequency ### <a name="BasicVehicleContainerHighFrequency"></a>BasicVehicleContainerHighFrequency Loading Loading @@ -161,7 +162,7 @@ BasicVehicleContainerHighFrequency ::= SEQUENCE { } } ``` ``` ## <a name="BasicVehicleContainerLowFrequency"></a>BasicVehicleContainerLowFrequency ### <a name="BasicVehicleContainerLowFrequency"></a>BasicVehicleContainerLowFrequency Loading @@ -177,7 +178,7 @@ BasicVehicleContainerLowFrequency ::= SEQUENCE { } } ``` ``` ## <a name="PublicTransportContainer"></a>PublicTransportContainer ### <a name="PublicTransportContainer"></a>PublicTransportContainer Loading @@ -191,7 +192,7 @@ PublicTransportContainer ::= SEQUENCE { } } ``` ``` ## <a name="SpecialTransportContainer"></a>SpecialTransportContainer ### <a name="SpecialTransportContainer"></a>SpecialTransportContainer Loading @@ -205,7 +206,7 @@ SpecialTransportContainer ::= SEQUENCE { } } ``` ``` ## <a name="DangerousGoodsContainer"></a>DangerousGoodsContainer ### <a name="DangerousGoodsContainer"></a>DangerousGoodsContainer Loading @@ -217,7 +218,7 @@ DangerousGoodsContainer ::= SEQUENCE { } } ``` ``` ## <a name="RoadWorksContainerBasic"></a>RoadWorksContainerBasic ### <a name="RoadWorksContainerBasic"></a>RoadWorksContainerBasic Loading @@ -233,7 +234,7 @@ RoadWorksContainerBasic ::= SEQUENCE { } } ``` ``` ## <a name="RescueContainer"></a>RescueContainer ### <a name="RescueContainer"></a>RescueContainer Loading @@ -245,7 +246,7 @@ RescueContainer ::= SEQUENCE { } } ``` ``` ## <a name="EmergencyContainer"></a>EmergencyContainer ### <a name="EmergencyContainer"></a>EmergencyContainer Loading @@ -261,7 +262,7 @@ EmergencyContainer ::= SEQUENCE { } } ``` ``` ## <a name="SafetyCarContainer"></a>SafetyCarContainer ### <a name="SafetyCarContainer"></a>SafetyCarContainer Loading @@ -279,7 +280,7 @@ SafetyCarContainer ::= SEQUENCE { } } ``` ``` ## <a name="RSUContainerHighFrequency"></a>RSUContainerHighFrequency ### <a name="RSUContainerHighFrequency"></a>RSUContainerHighFrequency Loading @@ -292,7 +293,7 @@ RSUContainerHighFrequency ::= SEQUENCE { } } ``` ``` ## <a name="GenerationDeltaTime"></a>GenerationDeltaTime ### <a name="GenerationDeltaTime"></a>GenerationDeltaTime Loading docs/IMZM-PDU-Descriptions.md +46 −34 Original line number Original line Diff line number Diff line Loading @@ -3,7 +3,6 @@ Specification of the Interference Management Zone Message ETSI TS 103 724<br/> Specification of the Interference Management Zone Message ETSI TS 103 724<br/> 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: ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> Loading @@ -29,7 +28,7 @@ Fields: The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. 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. 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) <br> * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage) <br> ```asn1 ```asn1 IMZM ::= SEQUENCE { IMZM ::= SEQUENCE { Loading @@ -40,7 +39,7 @@ IMZM ::= SEQUENCE { ### <a name="InterferenceManagementZoneMessage"></a>InterferenceManagementZoneMessage ### <a name="InterferenceManagementZoneMessage"></a>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). containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). Loading @@ -56,7 +55,7 @@ InterferenceManagementZoneMessage ::= SEQUENCE { ### <a name="ImzmParameters"></a>ImzmParameters ### <a name="ImzmParameters"></a>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: Fields: Loading @@ -74,8 +73,8 @@ ImzmParameters ::= SEQUENCE { ### <a name="ImzmContainer"></a>ImzmContainer ### <a name="ImzmContainer"></a>ImzmContainer The IMZM container includes a sequence of up to 16 interference management communication zones. The DF for IMZM container includes a sequence of up to 16 interference management zones. For each interference management communication zones, it contains a sequence of interference For each interference management zones, it contains a sequence of interference management zones per channel together with their characteristics. management zones per channel together with their characteristics. Loading @@ -91,7 +90,7 @@ ImzmContainer ::= SEQUENCE { ### <a name="InterferenceManagementZones"></a>InterferenceManagementZones ### <a name="InterferenceManagementZones"></a>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 > 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. Loading @@ -101,12 +100,12 @@ ImzmContainer ::= SEQUENCE { ```asn1 ```asn1 InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone ``` ``` ### <a name="InterferenceManagementZone"></a>InterferenceManagementZone ### <a name="InterferenceManagementZone"></a>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. be restricted. Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Loading @@ -126,7 +125,7 @@ InterferenceManagementZone ::= SEQUENCE { ### <a name="ZoneDefinition"></a>ZoneDefinition ### <a name="ZoneDefinition"></a>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) Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Loading Loading @@ -161,7 +160,7 @@ ZoneDefinition::= SEQUENCE{ ### <a name="InterferenceManagementInfo"></a>InterferenceManagementInfo ### <a name="InterferenceManagementInfo"></a>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. 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. by the value of interferenceManagementMitigationType set to unavailable. Loading @@ -177,7 +176,7 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ### <a name="InterferenceManagementInfoPerChannel"></a>InterferenceManagementInfoPerChannel ### <a name="InterferenceManagementInfoPerChannel"></a>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) Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Loading Loading @@ -206,7 +205,7 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ### <a name="InterferenceManagementChannel"></a>InterferenceManagementChannel ### <a name="InterferenceManagementChannel"></a>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) Categories: [Communication information](#Communication+information) Loading @@ -215,11 +214,14 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { Fields: Fields: * centreFrequency **INTEGER** (1 .. 99999)<br> * centreFrequency **INTEGER** (1 .. 99999)<br> Center of the channel frequency in 10exp+2 Hz (where exp is exponent) Centre of the channel frequency<br> Units: 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)<br> * channelWidth **INTEGER** (0 .. 9999)<br> Width of the channel frequence band in 10exp Hz (where exp is exponent) Width of the channel<br> Units: 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15) <br> * exponent **INTEGER** (0 .. 15) <br> Exponent of the power of 10 in Mhz Exponent of the power of 10<br> Units: N/A ```asn1 ```asn1 InterferenceManagementChannel ::= SEQUENCE { InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), centreFrequency INTEGER (1 .. 99999), Loading @@ -233,6 +235,7 @@ InterferenceManagementChannel ::= SEQUENCE { This DE 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 assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).<br> power in case of a DSRC tolling station).<br> Units: N/A Categories: [Communication information](#Communication+information) Categories: [Communication information](#Communication+information) Loading @@ -254,7 +257,7 @@ InterferenceManagementZoneType ::= ENUMERATED { ### <a name="InterferenceManagementMitigationType"></a>InterferenceManagementMitigationType ### <a name="InterferenceManagementMitigationType"></a>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 Information and commands defining the required mitigation type the receiving ITS-S has to use in the defined interference management zone. 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 It indicates the type of mitigation and the parameters to be used to protect the Loading @@ -266,19 +269,19 @@ InterferenceManagementZoneType ::= ENUMERATED { Fields: Fields: * unavailable **BOOLEAN** OPTIONAL<br> * unavailable [**NULL**](#NULL) <br> Default value to be used when data is not available unavailable is the default value to be used when data is not available * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies) <br> * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies) <br> ```asn1 ```asn1 InterferenceManagementMitigationType ::= SEQUENCE { InterferenceManagementMitigationType ::= CHOICE { unavailable BOOLEAN OPTIONAL, unavailable NULL, mitigationForTechnologies MitigationForTechnologies mitigationForTechnologies MitigationForTechnologies } } ``` ``` ### <a name="MitigationForTechnologies"></a>MitigationForTechnologies ### <a name="MitigationForTechnologies"></a>MitigationForTechnologies This DE defines the mitigation type container for the different channel access technology classes.<br> This DF defines the mitigation type container for the different channel access technology classes.<br> Class of parameters for the relevant channel access technology classes, Class of parameters for the relevant channel access technology classes, as specified in ETSI TS 103 724, clause 7. as specified in ETSI TS 103 724, clause 7. Loading @@ -293,7 +296,7 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl ### <a name="MitigationPerTechnologyClass"></a>MitigationPerTechnologyClass ### <a name="MitigationPerTechnologyClass"></a>MitigationPerTechnologyClass This DE defines the mitigation type container per channel access technology class <br> This DF defines the mitigation type container per channel access technology class <br> Class of parameters for the specific technology indicated in the container. 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 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. interference management zone types. Specification details are in ETSI TS 103 724, clause 7. Loading @@ -306,14 +309,19 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl Fields: Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass) <br> * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass) <br> Channel access technology in which this mitigation is applied. Channel access technology in which this mitigation is applied. Units: N/A * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL<br> * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL<br> Duty cycle limit in 0.01% steps Duty cycle limit<br> Units: 0.01% of steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL<br> * powerReduction **INTEGER** (0 .. 30) OPTIONAL<br> Power reduction in dB Power reduction<br> Units: dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL<br> * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL<br> Idle time limit in ms as defined in ETSI TS 103 175. Idle time limit, as defined in ETSI TS 103 175.<br> Units: ms * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL<br> * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL<br> Transmission duration limit in ms, as defined in ETSI EN 302 571. Transmission duration limit, as defined in ETSI EN 302 571.<br> Units: ms ```asn1 ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, accessTechnologyClass AccessTechnologyClass, Loading @@ -327,7 +335,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { ### <a name="AccessTechnologyClass"></a>AccessTechnologyClass ### <a name="AccessTechnologyClass"></a>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) Categories: [Communication information](#Communication+information) Loading @@ -337,7 +345,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { Fields: Fields: ```asn1 ```asn1 AccessTechnologyClass ::= ENUMERATED { AccessTechnologyClass ::= ENUMERATED { unavailable(0), any(0), itsg5Class(1), itsg5Class(1), ltev2xClass(2), ltev2xClass(2), nrv2xClass(3), nrv2xClass(3), Loading @@ -347,7 +355,8 @@ AccessTechnologyClass ::= ENUMERATED { ### <a name="InterferenceManagementZoneShape"></a>InterferenceManagementZoneShape ### <a name="InterferenceManagementZoneShape"></a>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) Categories: [GeoReference information](#GeoReference+information) Loading @@ -357,13 +366,16 @@ AccessTechnologyClass ::= ENUMERATED { Fields: Fields: * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle) <br> * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle) <br> * circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular) <br> * circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular) <br> imported from VAM-Temp-Imports * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon) <br> * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon) <br> imported from VAM-Temp-Imports * ellipse [**AreaEllipse**](#AreaEllipse) <br> * ellipse [**AreaEllipse**](#AreaEllipse) <br> imported from VAM-Temp-Imports ```asn1 ```asn1 InterferenceManagementZoneShape::= CHOICE { InterferenceManagementZoneShape::= CHOICE { rectangle AreaRectangle, rectangle AreaRectangle, --! imported from VAM-Temp-Imports circle AreaCircular, circle AreaCircular, --! imported from VAM-Temp-Imports polygon AreaPolygon, polygon AreaPolygon, --! imported from VAM-Temp-Imports ellipse AreaEllipse, --! could not be imported from another specification yet ellipse AreaEllipse, --! could not be imported from another specification yet ... ... } } Loading docs/ITS-Container.md +1494 −1493 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
.gitlab-ci.yml +8 −9 Original line number Original line Diff line number Diff line image: alpine variables: GIT_SUBMODULE_STRATEGY: normal image: danya25/asn1c:0.0.5 validate: validate: stage: test stage: test Loading @@ -8,13 +11,12 @@ validate: - iso/* - iso/* only: only: changes: changes: - ./*.asn - "*.asn" documentation: documentation: stage: build stage: deploy script: 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 - make doc - git add docs/*.md - git add docs/*.md - git commit -m "Documentation update" - git commit -m "Documentation update" Loading @@ -22,7 +24,4 @@ documentation: - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger - git push origin HEAD:$CI_COMMIT_REF_NAME # Pushes to the same branch as the trigger only: only: changes: changes: - ./*.asn - "*.asn" # artifacts: # paths: # - docs/*
Makefile +45 −45 Original line number Original line Diff line number Diff line Loading @@ -10,27 +10,27 @@ ASN1_SRC_VALIDATE := \ iso/ISO14816_AVIAEINumberingAndDataStructures.asn iso/ISO14816_AVIAEINumberingAndDataStructures.asn ASN1_PDU := IMZM ASN1_PDU := IMZM ASN1_KNOWN := DATE #ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs ifneq (,$(ASN1CDIR)) ifneq (,$(ASN1CDIR)) ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons else else ASN1C := asn1c ASN1C := asn1c endif endif validate: build iso build/gen_flag .PHONY: validate doc build validate: iso build doc: docs doc: docs python asn2md.py docs $(ASN1_SRC) python3 asn2md.py docs $(ASN1_SRC) build iso docs: iso docs: mkdir -p $@ mkdir -p $@ build/gen_flag: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) build: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) $(ASN1C) -E -F -fcompound-names -fknown-extern-type=DATE -D build $(addprefix -pdu=,$(ASN1_PDU)) $^ $(ASN1C) -E -F -fcompound-names $(addprefix -fknown-extern-type=,$(ASN1_KNOWN)) $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null clean: rm -rf build iso/iso19091_2018.asn: iso/iso19091_2018.asn: curl -o $@ 'https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn' curl -o $@ 'https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn' Loading
docs/CAM-PDU-Descriptions.md +306 −305 Original line number Original line Diff line number Diff line Loading @@ -4,7 +4,8 @@ ## Imports: ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> ## <a name="CAM"></a>CAM ## Data Elements: ### <a name="CAM"></a>CAM Loading @@ -18,7 +19,7 @@ CAM ::= SEQUENCE { } } ``` ``` ## <a name="CoopAwareness"></a>CoopAwareness ### <a name="CoopAwareness"></a>CoopAwareness Loading @@ -32,7 +33,7 @@ CoopAwareness ::= SEQUENCE { } } ``` ``` ## <a name="CamParameters"></a>CamParameters ### <a name="CamParameters"></a>CamParameters Loading @@ -51,7 +52,7 @@ CamParameters ::= SEQUENCE { } } ``` ``` ## <a name="HighFrequencyContainer"></a>HighFrequencyContainer ### <a name="HighFrequencyContainer"></a>HighFrequencyContainer Loading @@ -66,7 +67,7 @@ HighFrequencyContainer ::= CHOICE { } } ``` ``` ## <a name="LowFrequencyContainer"></a>LowFrequencyContainer ### <a name="LowFrequencyContainer"></a>LowFrequencyContainer Loading @@ -79,7 +80,7 @@ LowFrequencyContainer ::= CHOICE { } } ``` ``` ## <a name="SpecialVehicleContainer"></a>SpecialVehicleContainer ### <a name="SpecialVehicleContainer"></a>SpecialVehicleContainer Loading @@ -104,7 +105,7 @@ SpecialVehicleContainer ::= CHOICE { } } ``` ``` ## <a name="BasicContainer"></a>BasicContainer ### <a name="BasicContainer"></a>BasicContainer Loading @@ -119,7 +120,7 @@ BasicContainer ::= SEQUENCE { } } ``` ``` ## <a name="BasicVehicleContainerHighFrequency"></a>BasicVehicleContainerHighFrequency ### <a name="BasicVehicleContainerHighFrequency"></a>BasicVehicleContainerHighFrequency Loading Loading @@ -161,7 +162,7 @@ BasicVehicleContainerHighFrequency ::= SEQUENCE { } } ``` ``` ## <a name="BasicVehicleContainerLowFrequency"></a>BasicVehicleContainerLowFrequency ### <a name="BasicVehicleContainerLowFrequency"></a>BasicVehicleContainerLowFrequency Loading @@ -177,7 +178,7 @@ BasicVehicleContainerLowFrequency ::= SEQUENCE { } } ``` ``` ## <a name="PublicTransportContainer"></a>PublicTransportContainer ### <a name="PublicTransportContainer"></a>PublicTransportContainer Loading @@ -191,7 +192,7 @@ PublicTransportContainer ::= SEQUENCE { } } ``` ``` ## <a name="SpecialTransportContainer"></a>SpecialTransportContainer ### <a name="SpecialTransportContainer"></a>SpecialTransportContainer Loading @@ -205,7 +206,7 @@ SpecialTransportContainer ::= SEQUENCE { } } ``` ``` ## <a name="DangerousGoodsContainer"></a>DangerousGoodsContainer ### <a name="DangerousGoodsContainer"></a>DangerousGoodsContainer Loading @@ -217,7 +218,7 @@ DangerousGoodsContainer ::= SEQUENCE { } } ``` ``` ## <a name="RoadWorksContainerBasic"></a>RoadWorksContainerBasic ### <a name="RoadWorksContainerBasic"></a>RoadWorksContainerBasic Loading @@ -233,7 +234,7 @@ RoadWorksContainerBasic ::= SEQUENCE { } } ``` ``` ## <a name="RescueContainer"></a>RescueContainer ### <a name="RescueContainer"></a>RescueContainer Loading @@ -245,7 +246,7 @@ RescueContainer ::= SEQUENCE { } } ``` ``` ## <a name="EmergencyContainer"></a>EmergencyContainer ### <a name="EmergencyContainer"></a>EmergencyContainer Loading @@ -261,7 +262,7 @@ EmergencyContainer ::= SEQUENCE { } } ``` ``` ## <a name="SafetyCarContainer"></a>SafetyCarContainer ### <a name="SafetyCarContainer"></a>SafetyCarContainer Loading @@ -279,7 +280,7 @@ SafetyCarContainer ::= SEQUENCE { } } ``` ``` ## <a name="RSUContainerHighFrequency"></a>RSUContainerHighFrequency ### <a name="RSUContainerHighFrequency"></a>RSUContainerHighFrequency Loading @@ -292,7 +293,7 @@ RSUContainerHighFrequency ::= SEQUENCE { } } ``` ``` ## <a name="GenerationDeltaTime"></a>GenerationDeltaTime ### <a name="GenerationDeltaTime"></a>GenerationDeltaTime Loading
docs/IMZM-PDU-Descriptions.md +46 −34 Original line number Original line Diff line number Diff line Loading @@ -3,7 +3,6 @@ Specification of the Interference Management Zone Message ETSI TS 103 724<br/> Specification of the Interference Management Zone Message ETSI TS 103 724<br/> 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: ## Imports: * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> * **ITS-Container** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*<br/> Loading @@ -29,7 +28,7 @@ Fields: The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. 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. 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) <br> * imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage) <br> ```asn1 ```asn1 IMZM ::= SEQUENCE { IMZM ::= SEQUENCE { Loading @@ -40,7 +39,7 @@ IMZM ::= SEQUENCE { ### <a name="InterferenceManagementZoneMessage"></a>InterferenceManagementZoneMessage ### <a name="InterferenceManagementZoneMessage"></a>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). containers of type [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer) and [**ImzmContainer**](#ImzmContainer). Loading @@ -56,7 +55,7 @@ InterferenceManagementZoneMessage ::= SEQUENCE { ### <a name="ImzmParameters"></a>ImzmParameters ### <a name="ImzmParameters"></a>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: Fields: Loading @@ -74,8 +73,8 @@ ImzmParameters ::= SEQUENCE { ### <a name="ImzmContainer"></a>ImzmContainer ### <a name="ImzmContainer"></a>ImzmContainer The IMZM container includes a sequence of up to 16 interference management communication zones. The DF for IMZM container includes a sequence of up to 16 interference management zones. For each interference management communication zones, it contains a sequence of interference For each interference management zones, it contains a sequence of interference management zones per channel together with their characteristics. management zones per channel together with their characteristics. Loading @@ -91,7 +90,7 @@ ImzmContainer ::= SEQUENCE { ### <a name="InterferenceManagementZones"></a>InterferenceManagementZones ### <a name="InterferenceManagementZones"></a>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 > 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. Loading @@ -101,12 +100,12 @@ ImzmContainer ::= SEQUENCE { ```asn1 ```asn1 InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone ``` ``` ### <a name="InterferenceManagementZone"></a>InterferenceManagementZone ### <a name="InterferenceManagementZone"></a>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. be restricted. Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Loading @@ -126,7 +125,7 @@ InterferenceManagementZone ::= SEQUENCE { ### <a name="ZoneDefinition"></a>ZoneDefinition ### <a name="ZoneDefinition"></a>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) Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Loading Loading @@ -161,7 +160,7 @@ ZoneDefinition::= SEQUENCE{ ### <a name="InterferenceManagementInfo"></a>InterferenceManagementInfo ### <a name="InterferenceManagementInfo"></a>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. 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. by the value of interferenceManagementMitigationType set to unavailable. Loading @@ -177,7 +176,7 @@ InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManageme ### <a name="InterferenceManagementInfoPerChannel"></a>InterferenceManagementInfoPerChannel ### <a name="InterferenceManagementInfoPerChannel"></a>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) Categories: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) Loading Loading @@ -206,7 +205,7 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { ### <a name="InterferenceManagementChannel"></a>InterferenceManagementChannel ### <a name="InterferenceManagementChannel"></a>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) Categories: [Communication information](#Communication+information) Loading @@ -215,11 +214,14 @@ InterferenceManagementInfoPerChannel ::= SEQUENCE { Fields: Fields: * centreFrequency **INTEGER** (1 .. 99999)<br> * centreFrequency **INTEGER** (1 .. 99999)<br> Center of the channel frequency in 10exp+2 Hz (where exp is exponent) Centre of the channel frequency<br> Units: 10exp+2 Hz (where exp is exponent) * channelWidth **INTEGER** (0 .. 9999)<br> * channelWidth **INTEGER** (0 .. 9999)<br> Width of the channel frequence band in 10exp Hz (where exp is exponent) Width of the channel<br> Units: 10exp Hz (where exp is exponent) * exponent **INTEGER** (0 .. 15) <br> * exponent **INTEGER** (0 .. 15) <br> Exponent of the power of 10 in Mhz Exponent of the power of 10<br> Units: N/A ```asn1 ```asn1 InterferenceManagementChannel ::= SEQUENCE { InterferenceManagementChannel ::= SEQUENCE { centreFrequency INTEGER (1 .. 99999), centreFrequency INTEGER (1 .. 99999), Loading @@ -233,6 +235,7 @@ InterferenceManagementChannel ::= SEQUENCE { This DE 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 assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).<br> power in case of a DSRC tolling station).<br> Units: N/A Categories: [Communication information](#Communication+information) Categories: [Communication information](#Communication+information) Loading @@ -254,7 +257,7 @@ InterferenceManagementZoneType ::= ENUMERATED { ### <a name="InterferenceManagementMitigationType"></a>InterferenceManagementMitigationType ### <a name="InterferenceManagementMitigationType"></a>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 Information and commands defining the required mitigation type the receiving ITS-S has to use in the defined interference management zone. 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 It indicates the type of mitigation and the parameters to be used to protect the Loading @@ -266,19 +269,19 @@ InterferenceManagementZoneType ::= ENUMERATED { Fields: Fields: * unavailable **BOOLEAN** OPTIONAL<br> * unavailable [**NULL**](#NULL) <br> Default value to be used when data is not available unavailable is the default value to be used when data is not available * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies) <br> * mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies) <br> ```asn1 ```asn1 InterferenceManagementMitigationType ::= SEQUENCE { InterferenceManagementMitigationType ::= CHOICE { unavailable BOOLEAN OPTIONAL, unavailable NULL, mitigationForTechnologies MitigationForTechnologies mitigationForTechnologies MitigationForTechnologies } } ``` ``` ### <a name="MitigationForTechnologies"></a>MitigationForTechnologies ### <a name="MitigationForTechnologies"></a>MitigationForTechnologies This DE defines the mitigation type container for the different channel access technology classes.<br> This DF defines the mitigation type container for the different channel access technology classes.<br> Class of parameters for the relevant channel access technology classes, Class of parameters for the relevant channel access technology classes, as specified in ETSI TS 103 724, clause 7. as specified in ETSI TS 103 724, clause 7. Loading @@ -293,7 +296,7 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl ### <a name="MitigationPerTechnologyClass"></a>MitigationPerTechnologyClass ### <a name="MitigationPerTechnologyClass"></a>MitigationPerTechnologyClass This DE defines the mitigation type container per channel access technology class <br> This DF defines the mitigation type container per channel access technology class <br> Class of parameters for the specific technology indicated in the container. 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 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. interference management zone types. Specification details are in ETSI TS 103 724, clause 7. Loading @@ -306,14 +309,19 @@ MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyCl Fields: Fields: * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass) <br> * accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass) <br> Channel access technology in which this mitigation is applied. Channel access technology in which this mitigation is applied. Units: N/A * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL<br> * lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL<br> Duty cycle limit in 0.01% steps Duty cycle limit<br> Units: 0.01% of steps * powerReduction **INTEGER** (0 .. 30) OPTIONAL<br> * powerReduction **INTEGER** (0 .. 30) OPTIONAL<br> Power reduction in dB Power reduction<br> Units: dB * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL<br> * dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL<br> Idle time limit in ms as defined in ETSI TS 103 175. Idle time limit, as defined in ETSI TS 103 175.<br> Units: ms * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL<br> * dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL<br> Transmission duration limit in ms, as defined in ETSI EN 302 571. Transmission duration limit, as defined in ETSI EN 302 571.<br> Units: ms ```asn1 ```asn1 MitigationPerTechnologyClass ::= SEQUENCE { MitigationPerTechnologyClass ::= SEQUENCE { accessTechnologyClass AccessTechnologyClass, accessTechnologyClass AccessTechnologyClass, Loading @@ -327,7 +335,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { ### <a name="AccessTechnologyClass"></a>AccessTechnologyClass ### <a name="AccessTechnologyClass"></a>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) Categories: [Communication information](#Communication+information) Loading @@ -337,7 +345,7 @@ MitigationPerTechnologyClass ::= SEQUENCE { Fields: Fields: ```asn1 ```asn1 AccessTechnologyClass ::= ENUMERATED { AccessTechnologyClass ::= ENUMERATED { unavailable(0), any(0), itsg5Class(1), itsg5Class(1), ltev2xClass(2), ltev2xClass(2), nrv2xClass(3), nrv2xClass(3), Loading @@ -347,7 +355,8 @@ AccessTechnologyClass ::= ENUMERATED { ### <a name="InterferenceManagementZoneShape"></a>InterferenceManagementZoneShape ### <a name="InterferenceManagementZoneShape"></a>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) Categories: [GeoReference information](#GeoReference+information) Loading @@ -357,13 +366,16 @@ AccessTechnologyClass ::= ENUMERATED { Fields: Fields: * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle) <br> * rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle) <br> * circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular) <br> * circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular) <br> imported from VAM-Temp-Imports * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon) <br> * polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon) <br> imported from VAM-Temp-Imports * ellipse [**AreaEllipse**](#AreaEllipse) <br> * ellipse [**AreaEllipse**](#AreaEllipse) <br> imported from VAM-Temp-Imports ```asn1 ```asn1 InterferenceManagementZoneShape::= CHOICE { InterferenceManagementZoneShape::= CHOICE { rectangle AreaRectangle, rectangle AreaRectangle, --! imported from VAM-Temp-Imports circle AreaCircular, circle AreaCircular, --! imported from VAM-Temp-Imports polygon AreaPolygon, polygon AreaPolygon, --! imported from VAM-Temp-Imports ellipse AreaEllipse, --! could not be imported from another specification yet ellipse AreaEllipse, --! could not be imported from another specification yet ... ... } } Loading
docs/ITS-Container.md +1494 −1493 File changed.Preview size limit exceeded, changes collapsed. Show changes