Commit fb38271b authored by Denis Filatov's avatar Denis Filatov
Browse files

Merge remote-tracking branch 'origin/TTF0002' into HEAD

parents fc6e3678 8806668f
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -48,8 +48,8 @@ module LibItsCommon_ASN1_NamedNumbers {
            const ItsPduHeader.messageID ItsPduHeader_messageID_denm_ := 1;
            const ItsPduHeader.messageID ItsPduHeader_messageID_denm_ := 1;
            const ItsPduHeader.messageID ItsPduHeader_messageID_cam_ := 2;
            const ItsPduHeader.messageID ItsPduHeader_messageID_cam_ := 2;
            const ItsPduHeader.messageID ItsPduHeader_messageID_poi_ := 3;
            const ItsPduHeader.messageID ItsPduHeader_messageID_poi_ := 3;
            const ItsPduHeader.messageID ItsPduHeader_messageID_spatem_ := 4;
            const ItsPduHeader.messageID ItsPduHeader_messageID_mapem_ := 4;
            const ItsPduHeader.messageID ItsPduHeader_messageID_mapem_ := 5;
            const ItsPduHeader.messageID ItsPduHeader_messageID_spatem_ := 5;
            const ItsPduHeader.messageID ItsPduHeader_messageID_ivim_ := 6;
            const ItsPduHeader.messageID ItsPduHeader_messageID_ivim_ := 6;
            const ItsPduHeader.messageID ItsPduHeader_messageID_ev_rsr_ := 7;
            const ItsPduHeader.messageID ItsPduHeader_messageID_ev_rsr_ := 7;
            const ItsPduHeader.messageID ItsPduHeader_messageID_tistpgtransaction_ := 8;
            const ItsPduHeader.messageID ItsPduHeader_messageID_tistpgtransaction_ := 8;
+8 −6
Original line number Original line Diff line number Diff line
@@ -191,15 +191,17 @@ module LibItsCommon_TypesAndValues {


    /**
    /**
     * @see ETSI TS 102 965 Intelligent Transport Systems (ITS); Application Object Identifier (ITS-AID); Registration list ETSI ITS registration list
     * @see ETSI TS 102 965 Intelligent Transport Systems (ITS); Application Object Identifier (ITS-AID); Registration list ETSI ITS registration list
     * @see https://standards.iso.org/iso/ts/17419/TS17419%20Assigned%20Numbers/TS17419_ITS-AID_AssignedNumbers.pdf
     */
     */
    group securityConstants {
    group securityConstants {
        const integer c_its_aid_CAM   := 36;
        const integer c_its_aid_CAM   := 36;
        const integer c_its_aid_DENM  := 37;
        const integer c_its_aid_DENM  := 37;
        const integer c_its_aid_GPC   := 128;
        const integer c_its_aid_SPAT  := 137;
        const integer c_its_aid_SPAT  := 137;
        const integer c_its_aid_MAP   := 138;
        const integer c_its_aid_MAP   := 138;
        const integer c_its_aid_IVI   := 139;
        const integer c_its_aid_IVI   := 139;
        const integer c_its_aid_GPC   := 140;
        const integer c_its_aid_TLC   := 140;
        const integer c_its_aid_TLC   := 140;
        const integer c_its_aid_TLS   := 140;
        const integer c_its_aid_GN    := 141;
        const integer c_its_aid_GN    := 141;
        const integer c_its_aid_SCR   := 623; // Secured Certificate Request, https://standards.ieee.org/products-services/regauth/psid/public.html
        const integer c_its_aid_SCR   := 623; // Secured Certificate Request, https://standards.ieee.org/products-services/regauth/psid/public.html
    }
    }
+6 −0
Original line number Original line Diff line number Diff line
@@ -11,6 +11,12 @@ import from IVI language "ASN.1:1997" all;
        const IviStatus IviStatus_cancellation_ := 2;
        const IviStatus IviStatus_cancellation_ := 2;
        const IviStatus IviStatus_negation_ := 3;
        const IviStatus IviStatus_negation_ := 3;
        
        
        const IviType IviType_immediateDangerWarningMessages_ := 0;
        const IviType IviType_regulatoryMessages_ := 1;
        const IviType IviType_trafficRelatedInformationMessages_ := 2; 
        const IviType IviType_pollutionMessages_ := 3;
        const IviType IviType_notTrafficRelatedInformationMessages_ := 4;
      
  
  
  } // end IVI_constants
  } // end IVI_constants
  
  
+58 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,8 @@ module LibItsIvim_Pixits {
    // LibIts
    // LibIts
    import from EfcDsrcGeneric language "ASN.1:1997" all;
    import from EfcDsrcGeneric language "ASN.1:1997" all;
    import from EfcDsrcApplication language "ASN.1:1997" all;
    import from EfcDsrcApplication language "ASN.1:1997" all;
    import from IVI language "ASN.1:1997" all;
    import from ITS_Container language "ASN.1:1997" all;
    
    
    /**
    /**
     * @desc IUT Provider identifier
     * @desc IUT Provider identifier
@@ -25,4 +27,60 @@ module LibItsIvim_Pixits {
        providerIdentifier  := 0
        providerIdentifier  := 0
    }
    }
    
    
    /**
     * @desc IUT IVI identifier
     *      IVI identification number
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar integer PX_IVI_ID := 2;
    
    /**
     * @desc IUT ZoneId 1 identifier
     *       ZoneId 1 used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar Zid PX_ZONEID_1 := 1
    
    /**
     * @desc IUT ZoneId 2 identifier
     *       ZoneId 2 used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar Zid PX_ZONEID_2 := 2
    
    /**
     * @desc IUT LaneId identifier
     *       LaneId used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar LanePosition PX_LANE := 1 //innermostDrivingLane(1)
    
    /**
     * @desc IUT RelavanceZoneId identifier
     *       RelavanceZoneId used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar Zid PX_RELAVANCE_ZONEID := 1
    
    /**
     * @desc IUT DetectionZoneId identifier
     *       DetectionZoneId used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar Zid PX_DETECTION_ZONEID := 1
    
    /**
     * @desc IUT DriverAwarenesZoneId identifier
     *       DriverAwarenesZoneId used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar Zid PX_DRIVER_AWARENES_ZONEID := 1
    
    /**
     * @desc IUT LayoutId identifier
     *       LayoutId used in IVIM messages sent by the tester
     * @see  ETSI TS 103 191-3 Table B.8
     */
    modulepar integer PX_LAYOUTID := 1
    
} // End of module LibItsIvim_Pixits 
} // End of module LibItsIvim_Pixits 
 No newline at end of file
+257 −10
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ module LibItsIvim_Templates {
    import from IVI language "ASN.1:1997" all;
    import from IVI language "ASN.1:1997" all;
    import from EfcDsrcApplication language "ASN.1:1997" all;
    import from EfcDsrcApplication language "ASN.1:1997" all;
    import from AVIAEINumberingAndDataStructures language "ASN.1:1997" all;
    import from AVIAEINumberingAndDataStructures language "ASN.1:1997" all;
    import from CITSapplMgmtIDs language "ASN.1:1997" all;
    
    
    // LibItsCommon
    // LibItsCommon
    import from LibItsCommon_TypesAndValues all;
    import from LibItsCommon_TypesAndValues all;
@@ -142,15 +143,27 @@ module LibItsIvim_Templates {
            template (value) UtIvimTrigger m_utTriggerEvent(
            template (value) UtIvimTrigger m_utTriggerEvent(
                                                            template (omit) TimestampIts p_repetitionInterval := c_duration_4sec,
                                                            template (omit) TimestampIts p_repetitionInterval := c_duration_4sec,
                                                            template (omit) TimestampIts p_validFrom := omit,
                                                            template (omit) TimestampIts p_validFrom := omit,
                                                            template (omit) TimestampIts p_validTo := omit/*,
                                                            template (omit) TimestampIts p_validTo := omit,
                                                            template (omit) IVIManagementContainer.connectedIviStructures p_connectedIviStructures := omit,
                                                            template (omit) ZidList p_zoneIds := omit,
                                                            template (omit) IviStructure.optional_ p_optional_ := omit*/
                                                            template (omit) LanePosition p_laneNumber := omit,
                                                            template (omit) RelavanceZidList p_relavanceZoneIds := omit,
                                                            template (omit) DetectionZidList p_detectionZoneIds := omit,
                                                            template (omit) DriverAwarenesZidList p_driverAwarenesZoneIds := omit,
                                                            template (omit) VarLengthNumber p_itsRrid := omit,
                                                            template (omit) Direction p_directionGic := omit,
                                                            template (omit) integer p_layoutId := omit
            ) := {
            ) := {
                validFrom               := p_validFrom,
                validFrom               := p_validFrom,
                validTo                 := p_validTo,
                validTo                 := p_validTo,
                repetitionInterval      := p_repetitionInterval/*,
                repetitionInterval      := p_repetitionInterval,
                connectedIviStructures  := p_connectedIviStructures,
                zoneIds                 := p_zoneIds,
                optional_               := p_optional_*/
                laneNumber              := p_laneNumber,
                relavanceZoneIds        := p_relavanceZoneIds,
                detectionZoneIds        := p_detectionZoneIds,
                driverAwarenesZoneIds   := p_driverAwarenesZoneIds,
                itsRrid                 := p_itsRrid,
                directionGic            := p_directionGic,
                layoutId                := p_layoutId
            } // End of template m_utTriggerEvent
            } // End of template m_utTriggerEvent
            
            
            /**
            /**
@@ -328,11 +341,12 @@ module LibItsIvim_Templates {
                                                                        in template (value) Provider p_serviceProviderId, 
                                                                        in template (value) Provider p_serviceProviderId, 
                                                                        in template (value) IviIdentificationNumber p_iviIdentificationNumber,
                                                                        in template (value) IviIdentificationNumber p_iviIdentificationNumber,
                                                                        in template (value) IviStatus p_iviStatus,
                                                                        in template (value) IviStatus p_iviStatus,
                                                                        in template (omit) IVIManagementContainer.connectedIviStructures p_connectedIviStructures := omit
                                                                        in template (omit) IVIManagementContainer.connectedIviStructures p_connectedIviStructures := omit,
                                                                        in template (omit) IVIManagementContainer.timeStamp p_timeStamp := f_getCurrentTime()
        ) := {
        ) := {
            serviceProviderId       := p_serviceProviderId, 
            serviceProviderId       := p_serviceProviderId, 
            iviIdentificationNumber := p_iviIdentificationNumber,
            iviIdentificationNumber := p_iviIdentificationNumber,
            timeStamp               := f_getCurrentTime(),
            timeStamp               := p_timeStamp,
            validFrom               := omit,
            validFrom               := omit,
            validTo                 := omit,
            validTo                 := omit,
            connectedIviStructures  := p_connectedIviStructures,
            connectedIviStructures  := p_connectedIviStructures,
@@ -407,6 +421,22 @@ module LibItsIvim_Templates {
            validFrom                 := p_validFrom
            validFrom                 := p_validFrom
        } // End of template mw_iviManagementContainer_validFrom
        } // End of template mw_iviManagementContainer_validFrom
        
        
        /**
         * @desc Receive template for IVIManagement container
         * @param p_serviceProviderId       The IUT provider description
         * @param p_iviIdentificationNumber The IVIM identification number
         * @param p_iviStatus               The IVIM status
         * @param p_connectedIviStructures  The IVIM connectedIviStructures
         */
        template (present) IVIManagementContainer mw_iviManagementContainer_connectedIviStructures(
                                                                            template (present) Provider p_serviceProviderId := ?, 
                                                                            template (present) IviIdentificationNumber p_iviIdentificationNumber := ?,
                                                                            template (present) IviStatus p_iviStatus := ?,
                                                                            template (present) IVIManagementContainer.connectedIviStructures p_connectedIviStructures  := ?
        ) modifies mw_iviManagementContainer := {
            connectedIviStructures  := p_connectedIviStructures
        } // End of template mw_iviManagementContainer
        
        /**
        /**
         * @desc Receive template for Porvide identifier
         * @desc Receive template for Porvide identifier
         * @param p_countryCode         Country code value
         * @param p_countryCode         Country code value
@@ -464,6 +494,18 @@ module LibItsIvim_Templates {
            rcc := p_rcc
            rcc := p_rcc
        } // End of template mw_iviContainer_roadConfigurationContainer
        } // End of template mw_iviContainer_roadConfigurationContainer
        
        
        template (value) IviContainer m_iviContainer_textContainer(
                                                                                in template (value) TextContainer p_tc
        ) := {
            tc := p_tc
        } // End of template m_iviContainer_textContainer
        
        template (present) IviContainer mw_iviContainer_textContainer(
                                                                                   template (present) TextContainer p_tc := ?
        ) := {
            tc := p_tc
        } // End of template mw_iviContainer_textContainer
        
    } // End of group iviContainerGroup
    } // End of group iviContainerGroup
    
    
    group geographicLocationContainerGroup {
    group geographicLocationContainerGroup {
@@ -518,6 +560,37 @@ module LibItsIvim_Templates {
            zone            := p_zone
            zone            := p_zone
        } // End of template mw_glcPart
        } // End of template mw_glcPart
        
        
        template (value) ReferencePosition m_referencePosition(
                                          in template (value) Latitude p_latitude := 10000, 
                                          in template (value) Longitude p_longitude := 10000,
                                          in template (value) PosConfidenceEllipse p_position,
                                          in template (value) Altitude p_altitude
        ) := {
            latitude                  := p_latitude,
            longitude                 := p_longitude,
            positionConfidenceEllipse := p_position,
            altitude                  := p_altitude
        } // End of template m_referencePosition
        
        template (value) ReferencePosition m_referencePosition_sample(
                                          in template (value) Latitude p_latitude := 10000, 
                                          in template (value) Longitude p_longitude := 10000
        ) := {
            latitude                  := p_latitude,
            longitude                 := p_longitude,
            positionConfidenceEllipse := 
            {
                semiMajorConfidence  := 1000,
                semiMinorConfidence  := 1000,
                semiMajorOrientation := 1000
            },
            altitude                  := 
            {
                altitudeValue      := 10000,
                altitudeConfidence := alt_000_01//unavailable
            }
        } // End of template m_referencePosition
        
    } // End of group geographicLocationContainerGroup
    } // End of group geographicLocationContainerGroup
    
    
    group generalIviContainerGroup {
    group generalIviContainerGroup {
@@ -542,7 +615,17 @@ module LibItsIvim_Templates {
            preStoredlayoutId       := omit,
            preStoredlayoutId       := omit,
            roadSignCodes           := p_roadSignCodes,
            roadSignCodes           := p_roadSignCodes,
            extraText               := omit
            extraText               := omit
        } // End of template m_gicPart
        } // End of template m_gicPart_basic
        
        template (value) GicPart m_gicPart_relavanceZoneId(
                                                 in template (value) IviType p_iviType := IviType_regulatoryMessages_,
                                                 in template (value) GicPart.roadSignCodes p_roadSignCodes := {m_rSCode_itisCodes},
                                                 in template (value) GicPart.relevanceZoneIds p_relevanceZoneIds := {PX_RELAVANCE_ZONEID}
        ) modifies m_gicPart_basic:= {
            relevanceZoneIds        := p_relevanceZoneIds, 
            iviType                 := p_iviType,
            roadSignCodes           := p_roadSignCodes
        } // End of template m_gicPart_relavanceZoneId
        
        
        template (present) GicPart mw_gicPart_basic(
        template (present) GicPart mw_gicPart_basic(
                                                    template (present) IviType p_iviType := ?,
                                                    template (present) IviType p_iviType := ?,
@@ -566,6 +649,81 @@ module LibItsIvim_Templates {
            extraText               := *
            extraText               := *
        } // End of template mw_gicPart
        } // End of template mw_gicPart
        
        
        template (present) GicPart mw_gicPart_layoutId(
                                                    template (present) IviType p_iviType := ?,
                                                    template (present) GicPart.roadSignCodes p_roadSignCodes := ?,
                                                    template (present) integer p_layoutId := ?
        ) modifies mw_gicPart_basic := {
            layoutId                := p_layoutId
        } // End of template mw_gicPart_layoutId
        
        template (present) GicPart mw_gicPart_allZoneIdsAndItsRridAndDirection(
                                                    template (present) IviType p_iviType := ?,
                                                    template (present) GicPart.roadSignCodes p_roadSignCodes := ?,
                                                    template GicPart.detectionZoneIds p_detectionZoneIds := *,
                                                    template VarLengthNumber p_varLengthNumber := *,
                                                    template GicPart.relevanceZoneIds p_relevanceZoneIds := *,
                                                    template Direction p_direction := *,
                                                    template GicPart.driverAwarenessZoneIds p_driverAwarenessZoneIds := *
        ) modifies mw_gicPart_basic := {
            detectionZoneIds        := p_detectionZoneIds,
            its_Rrid                := p_varLengthNumber,
            relevanceZoneIds        := p_relevanceZoneIds,
            direction               := p_direction,
            driverAwarenessZoneIds  := p_driverAwarenessZoneIds
        } // End of template mw_gicPart
        
        template (present) RSCode mw_rSCode(
                                                    template RSCode.layoutComponentId p_layoutComponentId := *,
                                                    template (present) RSCode.code p_code := ?
        )  := {
            layoutComponentId       := p_layoutComponentId,
            code                    := p_code
        } // End of template mw_rSCode
        
        template (present) RSCode mw_rSCode_viennaConvention(
                                                    template RSCode.layoutComponentId p_layoutComponentId := *
        )  := {
            layoutComponentId       := p_layoutComponentId,
            code                    := {
                viennaConvention := ?
            }
        } // End of template mw_rSCode_viennaConvention
        
        template (present) RSCode mw_rSCode_iso14823(
                                                    template RSCode.layoutComponentId p_layoutComponentId := *
        )  := {
            layoutComponentId       := p_layoutComponentId,
            code                    := {
                iso14823 := ?
            }
        } // End of template mw_rSCode_iso14823
        
        template (present) RSCode mw_rSCode_itisCodes(
                                                    template RSCode.layoutComponentId p_layoutComponentId := *
        )  := {
            layoutComponentId       := p_layoutComponentId,
            code                    := {
                itisCodes := ?
            }
        } // End of template mw_rSCode_itisCodes
        
        template (present) RSCode mw_rSCode_anyCatalogue(
                                                    template RSCode.layoutComponentId p_layoutComponentId := *
        )  := {
            layoutComponentId       := p_layoutComponentId,
            code                    := {
                anyCatalogue := ?
            }
        } // End of template mw_rSCode_anyCatalogue
        
        template (value) RSCode m_rSCode_itisCodes  := {
            layoutComponentId       := omit,
            code                    := {
                itisCodes := 100
            }
        } // End of template m_rSCode_itisCodes
        
    } // End of group generalIviContainerGroup
    } // End of group generalIviContainerGroup
    
    
    group roadConfigurationContainerGroup {
    group roadConfigurationContainerGroup {
@@ -590,8 +748,97 @@ module LibItsIvim_Templates {
            laneConfiguration    := p_laneConfiguration
            laneConfiguration    := p_laneConfiguration
        } // End of template mw_rccPart
        } // End of template mw_rccPart
        
        
        template (present) LaneInformation mw_laneInformation(
                                                              template (present) LanePosition p_lanePosition := ?,
                                                              template (present) LaneType p_laneType := ?,
                                                              template (present) LaneStatus p_laneStatus := ?
        ) := {
            laneNumber           :=  p_lanePosition,
            validity             :=  *, //DTM
            laneType             :=  p_laneType,
            laneTypeQualifier    :=  *, //CompleteVehicleCharacteristics
            laneStatus           :=  p_laneStatus,
            laneWidth            :=  * //IVILaneWidth
        }
        
    } // End of group roadConfigurationContainerGroup
    } // End of group roadConfigurationContainerGroup
    
    
    group textContainerGroup {
        
        template (value) TcPart m_tcPart_basic(
                                                 in template (value) TcPart.relevanceZoneIds p_relevanceZoneIds,
                                                 in template (value) TcPart.data p_data
        ) := {
            detectionZoneIds        := omit,
            relevanceZoneIds        := p_relevanceZoneIds,
            direction               := omit,
            driverAwarenessZoneIds  := omit, 
            minimumAwarenessTime    := omit,
            applicableLanes         := omit,
            layoutId                := omit,
            preStoredlayoutId       := omit,
            text                    := omit,
            data                    := p_data
        } // End of template m_tcPart_basic
        
        template (present) TcPart mw_tcPart_basic(
                                                    template (present) TcPart.relevanceZoneIds p_relevanceZoneIds := ?,
                                                    template (present) TcPart.data p_data := ?
        ) := {
            detectionZoneIds        := *,
            relevanceZoneIds        := p_relevanceZoneIds, 
            direction               := *,
            driverAwarenessZoneIds  := *, 
            minimumAwarenessTime    := *,
            applicableLanes         := *,
            layoutId                := *,
            preStoredlayoutId       := *,
            text                    := *,
            data                    := p_data
        } // End of template mw_tcPart_basic
        
        template (present) TcPart mw_tcPart_allZoneIds(
                                                    template (present) TcPart.relevanceZoneIds p_relevanceZoneIds := ?,
                                                    template (present) TcPart.data p_data := ?,
                                                    template (present) TcPart.detectionZoneIds p_detectionZoneIds := ?,
                                                    template (present) TcPart.driverAwarenessZoneIds p_driverAwarenessZoneIds := ?
        ) modifies mw_tcPart_basic := {
            detectionZoneIds        := p_detectionZoneIds,
            driverAwarenessZoneIds  := p_driverAwarenessZoneIds
        } // End of template mw_tcPart_allZoneIds
        
        template (present) TcPart mw_tcPart_direction(
                                                    template (present) TcPart.relevanceZoneIds p_relevanceZoneIds := ?,
                                                    template (present) TcPart.data p_data := ?,
                                                    template (present) TcPart.direction p_direction := ?
        ) modifies mw_tcPart_basic := {
            relevanceZoneIds        := p_relevanceZoneIds
        } // End of template mw_tcPart_direction
        
        template (present) TcPart mw_tcPart_text(
                                                    template (present) TcPart.relevanceZoneIds p_relevanceZoneIds := ?,
                                                    template (present) TcPart.data p_data := ?,
                                                    template (present) TcPart.text p_text := ?
        ) modifies mw_tcPart_basic := {
            text                    := p_text
        } // End of template mw_tcPart_text
        
        template (present) TcPart mw_tcPart_layoutId(
                                                    template (present) TcPart.relevanceZoneIds p_relevanceZoneIds := ?,
                                                    template (present) TcPart.data p_data := ?,
                                                    template (present) TcPart.layoutId p_layoutId := ?
        ) modifies mw_tcPart_basic := {
            layoutId                := p_layoutId
        } // End of template mw_tcPart_layoutId
        
        template (present) Text mw_text := {
            layoutComponentId := *,
            language_         := ?,
            textContent       := ?
        }
        
    } // End of group textContainerGroup
    
    group itsFunction {
    group itsFunction {
        
        
        /** 
        /** 
Loading