Commit e32e9c1e authored by filatov's avatar filatov
Browse files

LibItsCAM, LibItsDENM: add templates for SSP and security checks

parent e20fc08e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -301,9 +301,13 @@ module LibItsCam_Functions {
         * @desc    Initialize the IUT
         * @remark  No specific actions specified in the base standard
         */    
        function f_prInitialState(Scenario p_scenario := e_staticPosition, boolean p_awaitInitialCAM := true) runs on ItsCam {
        function f_prInitialState(
        	Scenario p_scenario := e_staticPosition,
        	boolean p_awaitInitialCAM := true,
			template (value) UtInitialize p_init := m_camInitialize 
        ) runs on ItsCam {
            
            f_utInitializeIut(m_camInitialize);
            f_utInitializeIut(p_init);
            
            f_prDefault();
            
+43 −0
Original line number Diff line number Diff line
@@ -623,6 +623,49 @@ module LibItsCam_Templates {
            }
        };
        
        template (value) CAM m_camMsg_publicTransport(
            StationID p_stationId,
            GenerationDeltaTime p_generationTime,
            template (value) ReferencePosition p_referencePosition
        ) modifies m_camMsg_vehicle := {
            cam := {
                camParameters := {
                    lowFrequencyContainer := {
                        basicVehicleContainerLowFrequency := {
                            vehicleRole := publicTransport
                        }
                    },
                    specialVehicleContainer := {
			            publicTransportContainer := {
							embarkationStatus := true,
							ptActivation := omit
            			}
                    }
                }
            }
        };

        template (value) CAM m_camMsg_specialTransport(
            StationID p_stationId,
            GenerationDeltaTime p_generationTime,
            template (value) ReferencePosition p_referencePosition
        ) modifies m_camMsg_vehicle := {
            cam := {
                camParameters := {
                    lowFrequencyContainer := {
                        basicVehicleContainerLowFrequency := {
                            vehicleRole := specialTransport
                        }
                    },
                    specialVehicleContainer := {
						specialTransportContainer := {
							specialTransportType := '1000'B length(4), // heavyLoad
							lightBarSirenInUse := '11'B length(2) // siren and lightBar
            			}
                    }
                }
            }
        };
    } // end camAnyVehicle
    
    group camAccelerationControlTemplates {
+4 −2
Original line number Diff line number Diff line
@@ -391,10 +391,12 @@ module LibItsDenm_Functions {
         * @desc Brings the IUT into an initial state.
         * @return FncRetCode 
         */
        function f_prInitialState(Scenario p_scenario := e_staticPosition) runs on ItsDenm return FncRetCode {
        function f_prInitialState(Scenario p_scenario := e_staticPosition,
								  template (value) UtInitialize p_denmInitialize := m_denmInitialize
		) runs on ItsDenm return FncRetCode {
            var FncRetCode v_ret := e_success;
            
            f_utInitializeIut(m_denmInitialize);
            f_utInitializeIut(p_denmInitialize);
            
            f_acLoadScenario(valueof(p_scenario));
            f_acStartScenario();
+27 −0
Original line number Diff line number Diff line
@@ -808,4 +808,31 @@ module LibItsDenm_Templates {
        
    } // end alacarteTemplates
    
    group sspTemplates {
    	
        template (present) DenmInd mw_denmInd_SSP (
		    template (present) DENM p_denMsg,
            template (present) bitstring p_SSP := ?
        ) := {
            msgIn               := p_denMsg,
            gnNextHeader        := *,
            gnHeaderType        := *,
            gnHeaderSubtype     := *,
            gnLifetime          := *,
            gnTrafficClass      := *,
            btpDestinationPort  := *,
            btpInfo             := *,
//          TODO: add support for SSP
//			ssp                 := p_SSP,
            ssp                 := *,
//          TODO: add support for ItsAid
//			its_aid             := c_denmItsAid 
            its_aid             := * 
        }
    	
		template (present) bitstring mw_sspTrafficCondition        := '*1'B;
		template (present) bitstring mw_sspAccident                := '*1?'B;
        template (present) bitstring mw_sspRoadworks               := '*1??'B;
    } // end sspTemplates
    
} // end LibItsDenmTemplates
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -49,6 +49,8 @@ module LibItsDenm_TypesAndValues {
        const TransmissionInterval c_interval_5sec := 5000;
        const TransmissionInterval c_interval_10sec := 10000;
        
        const integer c_denmItsAid := 37;
        
    } // end group denmConstants
    
    group utPrimitives {