Commit e32e9c1e authored by filatov's avatar filatov
Browse files

LibItsCAM, LibItsDENM: add templates for SSP and security checks

parent e20fc08e
......@@ -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();
......
......@@ -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 {
......
......@@ -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();
......
......@@ -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
......@@ -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 {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment