Skip to content
LibItsRtcmem_Templates.ttcn 12.2 KiB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
module LibItsRtcmem_Templates {

    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;
    
    // LibIts
    import from ITS_Container language "ASN.1:1997" all;
    import from RTCMEM_PDU_Descriptions language "ASN.1:1997" all;
    import from DSRC language "ASN.1:1997" all;
    
    // LibItsCommon
    import from LibItsCommon_TypesAndValues all;
    import from LibItsCommon_Functions all;
    import from LibItsCommon_ASN1_NamedNumbers all;
    
    // LibItsRtcmem
Yann Garcia's avatar
Yann Garcia committed
    import from LibItsRtcmem_TestSystem all;
    import from LibItsRtcmem_TypesAndValues all;
    import from LibItsRtcmem_Pixits all;

    group primitivesTemplates {
        
        /**
         * @desc    Send template for RTCMEM Message (RtcmemPort Primitive)
Yann Garcia's avatar
Yann Garcia committed
         * @param   p_rtcmemMsg    The RTCMEM Message to be sent
         */
        template (value) RtcmemReq m_rtcmemReq(
                                               in template (value) RTCMEM p_rtcmemMsg
        ) := {
            msgOut := p_rtcmemMsg
        }
        
        /**
         * @desc    Receive template for RTCMEM Message (RtcmemPort Primitive)
Yann Garcia's avatar
Yann Garcia committed
         * @param   p_rtcmemMsg    The expected RTCMEM Message
         */
        template (present) RtcmemInd mw_rtcmemInd(
                                                  template (present) RTCMEM p_rtcmemMsg
        ) := {
            msgIn               := p_rtcmemMsg,
            gnNextHeader        := *,
            gnHeaderType        := *,
            gnHeaderSubtype     := *,
            gnLifetime          := *,
            gnTrafficClass      := *,
            btpDestinationPort  := *,
            btpInfo             := *,
            ssp                 := *,
            its_aid             := * 
        }
        
        /**
         * @desc    Receive template for RTCMEM Message (RtcmemPort Primitive)
Yann Garcia's avatar
Yann Garcia committed
         * @param   p_rtcmemMsg          The expected RTCMEM Message
         * @param   p_gnNextHeader      GN next header value
         * @param   p_gnHeaderType      GN header type value
         * @param   p_gnHeaderSubtype   GN header subtype value
         * @param   p_gnLifetime        GN packet lifetime value (ms)
         * @param   p_gnTrafficClass    GN traffic class value
         */
        template (present) RtcmemInd mw_rtcmemIndWithGnParameters(
                                                                  template (present) RTCMEM p_rtcmemMsg,
                                                                  in template UInt8 p_gnNextHeader := *,
                                                                  in template UInt8 p_gnHeaderType := *,
                                                                  in template UInt8 p_gnHeaderSubtype := *,
                                                                  in template UInt32 p_gnLifetime := *,
                                                                  in template UInt8 p_gnTrafficClass := *
        ) modifies mw_rtcmemInd := { 
            gnNextHeader    := p_gnNextHeader,
            gnHeaderType    := p_gnHeaderType,
            gnHeaderSubtype := p_gnHeaderSubtype,
            gnLifetime      := p_gnLifetime,
            gnTrafficClass  := p_gnTrafficClass
        }
        
        /**
         * @desc    Receive template for RTCMEM Message (RtcmemPort Primitive)
Yann Garcia's avatar
Yann Garcia committed
         * @param   p_rtcmemMsg              Expected RTCMEM Message
         * @param   p_btpDestinationPort    BTP destination port value
         * @param   p_btpInfo               BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A)
         */
        template (present) RtcmemInd mw_rtcmemIndWithBtpParameters(
                                                                   template (present) RTCMEM p_rtcmemMsg,
                                                                   template UInt16 p_btpDestinationPort := *,
                                                                   template UInt16 p_btpInfo := *
        ) modifies mw_rtcmemInd := { 
            btpDestinationPort  := p_btpDestinationPort,
            btpInfo             := p_btpInfo
        };
        
        /**
         * @desc    Receive template for RTCMEM Message (RtcmemPort Primitive)
Yann Garcia's avatar
Yann Garcia committed
         * @param   p_rtcmemMsg  The expected RTCMEM Message
         * @param   p_ssp       SSP value
         * @param   p_its_aid   ITS-AID value
         */
        template (present) RtcmemInd mw_rtcmemIndWithSecurityParameters(
                                                                        template (present) RTCMEM p_rtcmemMsg,
                                                                        template Bit24 p_ssp := *,
Yann Garcia's avatar
Yann Garcia committed
                                                                        template UInt32 p_its_aid := *
        ) modifies mw_rtcmemInd := { 
            ssp     := p_ssp,
            its_aid := p_its_aid
        }
        
    }

    group utPrimitives {
        
        /**
         * @desc    Send template for Upper Tester event initialization
         * @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
        */
        template (value) UtRtcmemInitialize m_rtcmemInitialize := {
            hashedId8 := '0000000000000000'O
        }
        
        /**
         * @desc    Send template for Upper Tester Trigger event
         */
Yann Garcia's avatar
Yann Garcia committed
        template (omit) UtRtcmemTrigger m_utTriggerEvent(
                                                         in MsgCount p_msgCnt,
                                                         in RTCM_Revision p_rev := rtcmRev3, 
                                                         in RTCMmessageList p_msgs,
                                                         in template (omit) MinuteOfTheYear p_timeStamp := omit,
                                                         in template (omit) FullPositionVector p_anchorPoint := omit,
                                                         in template (omit) RTCMheader p_rtcmHeader := omit
        ) := {
            msgCnt      := p_msgCnt,
            rev         := p_rev,
            msgs        := p_msgs,
            timeStamp   := p_timeStamp,
            anchorPoint := p_anchorPoint,
            rtcmHeader  := p_rtcmHeader
        }
        
        /**
         * @desc    Send template for Upper Tester Trigger event
         */
        template (omit) UtRtcmemTermination m_utTriggerTermination(
                                                                   in MsgCount p_msgCnt
        ) := {
            msgCnt      := p_msgCnt
        }
        
Yann Garcia's avatar
Yann Garcia committed
    }
    
    group rtcmemPduTemplates {
        
        /**
         * @desc    Send template for RTCMEM PDU
         * @param   p_map  The RTCMEM Message
         */
        template (value) RTCMEM m_rtcmemPdu(
                                            in template (value) RTCMcorrections p_rtcmc
        ) := {
Yann Garcia's avatar
Yann Garcia committed
            header  := m_itsPduHeader( - , - ,LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_rtcmem_),
Yann Garcia's avatar
Yann Garcia committed
            rtcmc   := p_rtcmc
        }
        
        /**
         * @desc    Receive template for RTCMEM PDU
         * @param   p_rtcmc  The RTCMEM Message
         */
        template (present) RTCMEM mw_rtcmemPdu(
                                               template (present) RTCMcorrections p_rtcmc := ?
        ) := {
            header  := mw_itsPduHeaderRtcmem,
            rtcmc   := p_rtcmc
        }
        
    } // End of group rtcmemPduTemplates
    
    group headerTemplates {
        
        /**
         * @desc    Default send template for ITS PDU header
         * @param   p_stationID         The source station ID (Default: test system station id)
         * @param   p_protocolVersion   The protocol version (Default: current RTCMEM protocol version)
         * @param   p_messageID         The message Id (Default: RTCMEM id)
         */
        template (value) ItsPduHeader m_itsPduHeader(
                                                     in template (value) StationID p_stationID := f_getTsStationId(),
                                                     in template (value) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
                                                     in template (value) ItsPduHeader.messageID p_messageID
        ) := {
            protocolVersion := p_protocolVersion,
            messageID       := p_messageID,
            stationID       := p_stationID
        }
        
        /**
         * @desc    Default receive template for ITS PDU header
         * @param   p_stationID         The expected station id (Default: any)
         * @param   p_protocolVersion   The expected protocol version (Default: current RTCMEM protocol version)
         * @param   p_messageID         The expected message id (Default: RTCMEM message id)
         */
        template ItsPduHeader mw_itsPduHeader(
                                              template (present) StationID p_stationID := ?,
                                              template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
                                              template (present) ItsPduHeader.messageID p_messageID := ?
        ) := {
            protocolVersion := p_protocolVersion,
            messageID       := p_messageID,
            stationID       := p_stationID
        }
        
        /**
         * @desc    Default receive template for ITS PDU header
         * @param   p_stationID         The expected station id (Default: any)
         * @param   p_protocolVersion   The expected protocol version (Default: current RTCMEM protocol version)
         * @param   p_messageID         The expected message id (Default: SREM id)
         */
        template ItsPduHeader mw_itsPduHeaderRtcmem(
                                                   template (present) StationID p_stationID := ?,
                                                   template (present) ItsPduHeader.protocolVersion p_protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_,
                                                   template (present) ItsPduHeader.messageID p_messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_srem_
        ) := {
            protocolVersion := p_protocolVersion,
            messageID := p_messageID,
            stationID := p_stationID
        }
        
        /**
         * @desc    Default receive template for the station id
         */
        template (present) StationID mw_anyStationId := ?;
        
    } // End of group headerTemplates
    
    group rtcmemTemplatesSend {
        
        /**
         * @desc    Receive template for RTCMEM Message
         */
        template (value) RTCMcorrections m_defaultRtcmem(
                                                         in MsgCount p_msgCnt,
                                                         in RTCM_Revision p_rev := rtcmRev3, 
                                                         in RTCMmessageList p_msgs,
                                                         in template (omit) MinuteOfTheYear p_timeStamp := omit,
                                                         in template (omit) FullPositionVector p_anchorPoint := omit,
                                                         in template (omit) RTCMheader p_rtcmHeader := omit
        ) := {
            msgCnt      := p_msgCnt,
            rev         := p_rev,
            timeStamp   := p_timeStamp,
            anchorPoint := p_anchorPoint,
            rtcmHeader  := p_rtcmHeader,
            msgs        := p_msgs,
            regional    := omit
        } // End of template m_defaultRtcmem
        
    } // End of group rtcmemTemplatesSend
    
Yann Garcia's avatar
Yann Garcia committed
    group rtcmemTemplatesRecv {
        
        /**
         * @desc    Receive template for RTCMEM Message
         */
        template (present) RTCMcorrections mw_defaultRtcmem := {
            msgCnt      := ?,
            rev         := ?,
            timeStamp   := *,
            anchorPoint := *,
            rtcmHeader  := *,
            msgs        := ?,
            regional    := *
        }
        
    } // End of group rtcmemTemplatesRecv
    
} // End of module LibItsRtcmem_Templates