Commit c08f1aaa authored by Yann Garcia's avatar Yann Garcia
Browse files

Start validate AtsMapem

parent db871991
...@@ -224,9 +224,12 @@ void ConfigRsuSimulatorLayer::sendMsg(const LibItsMapemSpatem__TypesAndValues::U ...@@ -224,9 +224,12 @@ void ConfigRsuSimulatorLayer::sendMsg(const LibItsMapemSpatem__TypesAndValues::U
if (send_par.ischosen(LibItsMapemSpatem__TypesAndValues::UtMapemSpatemResults::ALT_utMapemSpatemInitializeResult)) { if (send_par.ischosen(LibItsMapemSpatem__TypesAndValues::UtMapemSpatemResults::ALT_utMapemSpatemInitializeResult)) {
encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mapem_spatem_codec::c_utMapemSpatemInitializeResult)); encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mapem_spatem_codec::c_utMapemSpatemInitializeResult));
encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utMapemSpatemInitializeResult())); encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utMapemSpatemInitializeResult()));
} else if (send_par.ischosen(LibItsMapemSpatem__TypesAndValues::UtMapemSpatemResults::ALT_utMapemSpatemTriggerResult)) {
encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mapem_spatem_codec::c_utMapemSpatemTriggerResult));
encoding_buffer.put_c((unsigned char)static_cast<const boolean>(send_par.utMapemSpatemTriggerResult()));
} else { } else {
loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtMapemSpatemResults variant"); loggers::get_instance().warning("ConfigRsuSimulatorLayer::sendMsg: Unsupported UtMapemSpatemResults variant");
return; return;
} }
OCTETSTRING os(encoding_buffer.get_len(), encoding_buffer.get_data()); OCTETSTRING os(encoding_buffer.get_len(), encoding_buffer.get_data());
...@@ -380,6 +383,8 @@ void ConfigRsuSimulatorLayer::receive_data(OCTETSTRING& data, params& params) ...@@ -380,6 +383,8 @@ void ConfigRsuSimulatorLayer::receive_data(OCTETSTRING& data, params& params)
process_ut_denm_update(data, params); process_ut_denm_update(data, params);
} else if (id == uppertester_denm_codec::c_utDenmTermination) { } else if (id == uppertester_denm_codec::c_utDenmTermination) {
process_ut_denm_termination(data, params); process_ut_denm_termination(data, params);
} else if (id == uppertester_mapem_spatem_codec::c_utMapemSpatemTrigger) {
process_ut_mapem_spatem_trigger(data, params);
} else if (id == uppertester_ivim_codec::c_utIvimTrigger) { } else if (id == uppertester_ivim_codec::c_utIvimTrigger) {
process_ut_ivim_trigger(data, params); process_ut_ivim_trigger(data, params);
} else if (id == uppertester_ivim_codec::c_utIvimUpdate) { } else if (id == uppertester_ivim_codec::c_utIvimUpdate) {
...@@ -868,6 +873,47 @@ int ConfigRsuSimulatorLayer::process_ut_pki_trigger(const OCTETSTRING& data, par ...@@ -868,6 +873,47 @@ int ConfigRsuSimulatorLayer::process_ut_pki_trigger(const OCTETSTRING& data, par
return 0; return 0;
} }
int ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger(const OCTETSTRING& data, params& params) {
loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger", data);
params::const_iterator it = _params.find("ut");
if (it == _params.cend()) {
loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: CF layer's ut parameter is missing");
return -1;
}
if (_params[std::string("ut")].compare("mapemspatem") == 0) {
unsigned char* p = (unsigned char*)static_cast<const unsigned char*>(data);
unsigned char msg_id = *p++;
loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: msg_id=%02x", msg_id);
LibItsMapemSpatem__TypesAndValues::UtMapemSpatemTrigger trigger; // See ETSI TR 103 34 099 Cause C.4.1 GenerateIvimEvent
// Decode Event
loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: event=%02x", *p);
trigger.event().int2enum(static_cast<int>(*p++));
// Decode IntersectionId
loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: intersectionID=%04x", (short)*p);
trigger.intersectionID() = static_cast<int>((*p << 8) | *(p + 1));
p += 2;
// Decode RegulatorySpeedLimit
loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: type__=%02x", *p);
trigger.regulatorySpeedLimit().type__().int2enum(static_cast<int>(*p++));
loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: speed=%04x", (short)*p);
trigger.regulatorySpeedLimit().speed() = static_cast<int>((*p << 8) | *(p + 1));
p += 2;
// FIXME Add flags
trigger.latitude().set_to_omit();
loggers::get_instance().log_msg("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: ", trigger);
// Pass it to the ports if any
to_all_upper_ports(trigger, params);
} else {
loggers::get_instance().warning("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: Unsupported protocol");
return -1;
}
return 0;
}
int ConfigRsuSimulatorLayer::process_ut_ivim_trigger(const OCTETSTRING& data, params& params) { int ConfigRsuSimulatorLayer::process_ut_ivim_trigger(const OCTETSTRING& data, params& params) {
loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::process_ut_ivim_trigger", data); loggers::get_instance().log_msg(">>> ConfigRsuSimulatorLayer::process_ut_ivim_trigger", data);
......
...@@ -72,7 +72,7 @@ private: ...@@ -72,7 +72,7 @@ private:
int process_ut_ivim_trigger(const OCTETSTRING& data, params& params); int process_ut_ivim_trigger(const OCTETSTRING& data, params& params);
int process_ut_ivim_update(const OCTETSTRING& data, params& params); int process_ut_ivim_update(const OCTETSTRING& data, params& params);
int process_ut_ivim_termination(const OCTETSTRING& data, params& params); int process_ut_ivim_termination(const OCTETSTRING& data, params& params);
int process_ut_mapemspatem_trigger(const OCTETSTRING& data, params& params); int process_ut_mapem_spatem_trigger(const OCTETSTRING& data, params& params);
int process_ut_srem_trigger(const OCTETSTRING& data, params& params); int process_ut_srem_trigger(const OCTETSTRING& data, params& params);
int process_ut_srem_update(const OCTETSTRING& data, params& params); int process_ut_srem_update(const OCTETSTRING& data, params& params);
int process_ut_srem_termination(const OCTETSTRING& data, params& params); int process_ut_srem_termination(const OCTETSTRING& data, params& params);
......
...@@ -10,6 +10,8 @@ mapem_spatem_layer::mapem_spatem_layer(const std::string & p_type, const std::st ...@@ -10,6 +10,8 @@ mapem_spatem_layer::mapem_spatem_layer(const std::string & p_type, const std::st
loggers::get_instance().log(">>> mapem_spatem_layer::mapem_spatem_layer: %s, %s", to_string().c_str(), param.c_str()); loggers::get_instance().log(">>> mapem_spatem_layer::mapem_spatem_layer: %s, %s", to_string().c_str(), param.c_str());
// Setup parameters // Setup parameters
params::convert(_params, param); params::convert(_params, param);
_params.insert(std::make_pair<std::string, std::string>("its_aid", "138")); // ETSI TS 102 965 V1.2.1 (2015-06)
_params.insert(std::make_pair<std::string, std::string>("payload_type", "2")); // MAPE message id - See ETSI TS 102 894
// Register this object for AdapterControlPort // Register this object for AdapterControlPort
loggers::get_instance().log("mapem_spatem_layer::mapem_spatem_layer: Register %s/%p", p_type.c_str(), this); loggers::get_instance().log("mapem_spatem_layer::mapem_spatem_layer: Register %s/%p", p_type.c_str(), this);
...@@ -52,7 +54,7 @@ void mapem_spatem_layer::receive_data(OCTETSTRING& data, params& params) ...@@ -52,7 +54,7 @@ void mapem_spatem_layer::receive_data(OCTETSTRING& data, params& params)
loggers::get_instance().log_msg(">>> mapem_spatem_layer::receive_data: ", data); loggers::get_instance().log_msg(">>> mapem_spatem_layer::receive_data: ", data);
// Sanity check // Sanity check
if (*(static_cast<const unsigned char*>(data)+ 1) == 0x04) { // Check that received packet has MAPE message id if (*(static_cast<const unsigned char*>(data)+ 1) == 0x05) { // Check that received packet has MAPE message id
// Decode the MAPEM payload // Decode the MAPEM payload
LibItsMapemSpatem__TestSystem::MapemInd p; LibItsMapemSpatem__TestSystem::MapemInd p;
_mapem_codec.decode(data, p.msgIn()); _mapem_codec.decode(data, p.msgIn());
...@@ -135,7 +137,7 @@ void mapem_spatem_layer::receive_data(OCTETSTRING& data, params& params) ...@@ -135,7 +137,7 @@ void mapem_spatem_layer::receive_data(OCTETSTRING& data, params& params)
// Pass it to the ports if any // Pass it to the ports if any
to_all_upper_ports(p, params); to_all_upper_ports(p, params);
} else if (*(static_cast<const unsigned char*>(data)+ 1) == 0x05) { // Check that received packet has SPATE message id } else if (*(static_cast<const unsigned char*>(data)+ 1) == 0x04) { // Check that received packet has SPATE message id
// Decode the SPATEM payload // Decode the SPATEM payload
LibItsMapemSpatem__TestSystem::SpatemInd p; LibItsMapemSpatem__TestSystem::SpatemInd p;
_spatem_codec.decode(data, p.msgIn()); _spatem_codec.decode(data, p.msgIn());
......
...@@ -60,11 +60,19 @@ int uppertester_mapem_spatem_codec::encode_ (const Base_Type& type, const TTCN_T ...@@ -60,11 +60,19 @@ int uppertester_mapem_spatem_codec::encode_ (const Base_Type& type, const TTCN_T
} else { } else {
std::string s(field_descriptor.name); std::string s(field_descriptor.name);
loggers::get_instance().log("uppertester_mapem_spatem_codec::encode_: field to process %s", s.c_str()); loggers::get_instance().log("uppertester_mapem_spatem_codec::encode_: field to process %s", s.c_str());
loggers::get_instance().log("uppertester_mapem_spatem_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name); loggers::get_instance().log("uppertester_mapem_spatem_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name);
if (s.compare("@DSRC-REGION-noCircular.RegulatorySpeedLimit.type") == 0) {
const int t = dynamic_cast<const Enum_Type&>(type).as_int();
encoding_buffer.put_c((unsigned char)t);
} else if ((s.compare("@LibItsMapemSpatem_TypesAndValues.UtMapemSpatemTrigger.intersectionID") == 0) || (s.compare("@DSRC-REGION-noCircular.RegulatorySpeedLimit.speed") == 0)) {
const INTEGER& s = dynamic_cast<const INTEGER&>(type);
OCTETSTRING os = int2oct(s, 2);
encoding_buffer.put_s(os.lengthof(), static_cast<const unsigned char*>(os));
} else {
type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW); type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW);
}
} }
loggers::get_instance().log_to_hexa("<<<uppertester_mapem_spatem_codec::encode_: encoding_buffer=", encoding_buffer); loggers::get_instance().log_to_hexa("<<<uppertester_mapem_spatem_codec::encode_: encoding_buffer=", encoding_buffer);
return 0; return 0;
} }
......
...@@ -2371,13 +2371,8 @@ module ItsCam_TpFunctions { ...@@ -2371,13 +2371,8 @@ module ItsCam_TpFunctions {
function f_CAM_MSD_GFQ_TI_03() runs on ItsCam { function f_CAM_MSD_GFQ_TI_03() runs on ItsCam {
// Local variables // Local variables
timer t_maxTransInterval_min := PICS_T_GENCAMMAX * 0.90; var float v_interval_1_measured := 0.0;
timer t_maxTransInterval_max := PICS_T_GENCAMMAX * 1.10; var float v_receiveTime;
timer t_interval_1_measure := PX_TWAIT;
timer t_interval_1_min;
timer t_interval_1_max;
var float v_interval_1_min;
var float v_interval_1_max;
var integer v_N_GenCam := 3; var integer v_N_GenCam := 3;
var integer v_i; var integer v_i;
......
...@@ -166,7 +166,7 @@ module ItsMapem_TestCases { ...@@ -166,7 +166,7 @@ module ItsMapem_TestCases {
* then { * then {
* the first node of the trajectory * the first node of the trajectory
* indicate the position related to the node of ingress lane * indicate the position related to the node of ingress lane
* and the first node of the trajectory * and the last node of the trajectory
* indicate the position identical to the first node of the connected egress lane * indicate the position identical to the first node of the connected egress lane
* } * }
* } * }
......
...@@ -171,7 +171,7 @@ module ItsMapem_TpFunctions { ...@@ -171,7 +171,7 @@ module ItsMapem_TpFunctions {
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
// Test Body // Test Body
f_utTriggerEvent(m_utTriggerEvent(mapemNewContent)); f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, v_mapem.msgIn.map_.intersections[0].id.id, v_mapem.msgIn.map_.intersections[0].speedLimits[0]));
tc_ac.start; tc_ac.start;
alt { alt {
......
...@@ -220,7 +220,7 @@ module ItsSpatem_TestCases { ...@@ -220,7 +220,7 @@ module ItsSpatem_TestCases {
* @see ETSI TS 103 191-2 v1.2.5 TP_IS_TLM_GEN_MSGF_BV_05 * @see ETSI TS 103 191-2 v1.2.5 TP_IS_TLM_GEN_MSGF_BV_05
* @reference CEN ISO/TS 19091 [4], clause 6.7.6 * @reference CEN ISO/TS 19091 [4], clause 6.7.6
*/ */
testcase TC_IS_TLM_GEN_MSGF_BV_05 () runs on ItsMtc { testcase TC_IS_TLM_GEN_MSGF_BV_05 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_TLM_GEN_MSGF_BV_05(); f_IS_TLM_GEN_MSGF_BV_05();
...@@ -278,7 +278,7 @@ module ItsSpatem_TestCases { ...@@ -278,7 +278,7 @@ module ItsSpatem_TestCases {
* @see ETSI TS 103 191-2 v1.2.5 TP_IS_TLM_GEN_MSGF_BV_06 * @see ETSI TS 103 191-2 v1.2.5 TP_IS_TLM_GEN_MSGF_BV_06
* @reference CEN ISO/TS 19091 [4], clauses 6.7.8 * @reference CEN ISO/TS 19091 [4], clauses 6.7.8
*/ */
testcase TC_IS_TLM_GEN_MSGF_BV_06 () runs on ItsMtc { testcase TC_IS_TLM_GEN_MSGF_BV_06 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_TLM_GEN_MSGF_BV_06(); f_IS_TLM_GEN_MSGF_BV_06();
...@@ -337,7 +337,7 @@ module ItsSpatem_TestCases { ...@@ -337,7 +337,7 @@ module ItsSpatem_TestCases {
* @see ETSI TS 103 191-2 v1.2.5 TP_IS_TLM_GEN_MSGF_BV_07 * @see ETSI TS 103 191-2 v1.2.5 TP_IS_TLM_GEN_MSGF_BV_07
* @reference CEN ISO/TS 19091 [4], clauses 6.7.9 * @reference CEN ISO/TS 19091 [4], clauses 6.7.9
*/ */
testcase TC_IS_TLM_GEN_MSGF_BV_07 () runs on ItsMtc { testcase TC_IS_TLM_GEN_MSGF_BV_07 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_TLM_GEN_MSGF_BV_07(); f_IS_TLM_GEN_MSGF_BV_07();
......
...@@ -256,10 +256,9 @@ module ItsSpatem_TpFunctions { ...@@ -256,10 +256,9 @@ module ItsSpatem_TpFunctions {
/** /**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05 * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05
*/ */
function f_IS_TLM_GEN_MSGF_BV_05 () runs on ItsMtc { function f_IS_TLM_GEN_MSGF_BV_05 () runs on ItsMapemSpatem {
// Local variables // Local variables
var ItsMapemSpatem v_mapem;
var ItsMapemSpatem v_spatem;
// Test control // Test control
if (not PICS_SPATEM_GENERATION) { if (not PICS_SPATEM_GENERATION) {
...@@ -267,74 +266,16 @@ module ItsSpatem_TpFunctions { ...@@ -267,74 +266,16 @@ module ItsSpatem_TpFunctions {
setverdict(inconc); setverdict(inconc);
stop; stop;
} }
// Test component configuration
f_cf02Up();
// Preamble
// Start components
v_mapem := f_getComponent(c_compMap);
v_spatem := f_getComponent(c_compSpat);
v_mapem.start(f_IS_TLM_GEN_MSGF_BV_05_MAPEM());
v_spatem.start(f_IS_TLM_GEN_MSGF_BV_05_SPATEM());
// Synchronization
f_serverSync2ClientsAndStop({c_prDone, c_tbDone});
// Cleanup
f_cf02Down();
} // End of function f_IS_TLM_GEN_MSGF_BV_05
/**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05_SPATEM
*/
function f_IS_TLM_GEN_MSGF_BV_05_MAPEM () runs on ItsMapemSpatem {
// Local variables
var MapemInd v_mapem;
// Preamble
f_prInitialState();
f_awaitMapeMessage(
mw_mapemInd(
mw_mapemPdu(
mw_mapem(
{mw_intersectionGeometry(
-,
-,
-,
{mw_roadLane(
-,//laneID
-,//laneAttributes
-,//p_ingressApproach
-,//egressApproach
? //connectsTo
)}
)}
)
)),
v_mapem
);
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
} // End of function f_IS_TLM_GEN_MSGF_BV_05_MAPEM
/**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05_SPATEM
*/
function f_IS_TLM_GEN_MSGF_BV_05_SPATEM () runs on ItsMapemSpatem {
// Local variables
// Test component configuration
f_cfUp();
// Preamble // Preamble
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
f_prInitialState(); f_prInitialState();
f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_utTriggerEvent(m_utTriggerEvent(startTLMService));
// Wait for SPATEM sent // Wait for SPATEM sent
tc_ac.start(2.0); tc_ac.start(2.0);
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
// Test Body // Test Body
tc_ac.start; tc_ac.start;
...@@ -347,7 +288,7 @@ module ItsSpatem_TpFunctions { ...@@ -347,7 +288,7 @@ module ItsSpatem_TpFunctions {
-, //IntersectionReferenceID p_id -, //IntersectionReferenceID p_id
-, //MsgCount p_revision -, //MsgCount p_revision
-, //IntersectionStatusObject p_status -, //IntersectionStatusObject p_status
{mw_movementState(?)} //MovementList p_states with signalGroup {mw_movementState} //MovementList p_states
)} )}
) )
) )
...@@ -365,16 +306,16 @@ module ItsSpatem_TpFunctions { ...@@ -365,16 +306,16 @@ module ItsSpatem_TpFunctions {
// Postamble // Postamble
f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
f_poDefault(); f_poDefault();
f_cfDown();
} // End of function f_IS_TLM_GEN_MSGF_BV_05_SPATEM } // End of function f_IS_TLM_GEN_MSGF_BV_05
/** /**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06 * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06
*/ */
function f_IS_TLM_GEN_MSGF_BV_06 () runs on ItsMtc { function f_IS_TLM_GEN_MSGF_BV_06 () runs on ItsMapemSpatem {
// Local variables // Local variables
var ItsMapemSpatem v_mapem;
var ItsMapemSpatem v_spatem;
// Test control // Test control
if (not PICS_SPATEM_GENERATION) { if (not PICS_SPATEM_GENERATION) {
...@@ -382,74 +323,16 @@ module ItsSpatem_TpFunctions { ...@@ -382,74 +323,16 @@ module ItsSpatem_TpFunctions {
setverdict(inconc); setverdict(inconc);
stop; stop;
} }
// Test component configuration
f_cf02Up();
// Preamble
// Start components
v_mapem := f_getComponent(c_compMap);
v_spatem := f_getComponent(c_compSpat);
v_mapem.start(f_IS_TLM_GEN_MSGF_BV_06_MAPEM());
v_spatem.start(f_IS_TLM_GEN_MSGF_BV_06_SPATEM());
// Synchronization
f_serverSync2ClientsAndStop({c_prDone, c_tbDone});
// Cleanup
f_cf02Down();
} // End of function f_IS_TLM_GEN_MSGF_BV_06
/**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06_SPATEM
*/
function f_IS_TLM_GEN_MSGF_BV_06_MAPEM () runs on ItsMapemSpatem {
// Local variables
var MapemInd v_mapem;
// Preamble
f_prInitialState();
f_awaitMapeMessage(
mw_mapemInd(
mw_mapemPdu(
mw_mapem(
{mw_intersectionGeometry(
-,
-,
-,
{mw_roadLane(
-,//laneID
?,//laneAttributes
-,//p_ingressApproach
-,//egressApproach
? //connectsTo
)}
)}
)
)),
v_mapem
);
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
} // End of function f_IS_TLM_GEN_MSGF_BV_06_MAPEM
/**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06
*/
function f_IS_TLM_GEN_MSGF_BV_06_SPATEM () runs on ItsMapemSpatem {
// Local variables
// Test component configuration
f_cfUp();
// Preamble // Preamble
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
f_prInitialState(); f_prInitialState();
f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_utTriggerEvent(m_utTriggerEvent(startTLMService));
// Wait for SPATEM sent // Wait for SPATEM sent
tc_ac.start(2.0); tc_ac.start(2.0);
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
// Test Body // Test Body
tc_ac.start; tc_ac.start;
...@@ -483,127 +366,19 @@ module ItsSpatem_TpFunctions { ...@@ -483,127 +366,19 @@ module ItsSpatem_TpFunctions {
// Postamble // Postamble
f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
f_poDefault(); f_poDefault();
f_cfDown();
} // End of function f_IS_TLM_GEN_MSGF_BV_06_SPATEM } // End of function f_IS_TLM_GEN_MSGF_BV_06
/** /**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_07 * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_07
*/ */
function f_IS_TLM_GEN_MSGF_BV_07 () runs on ItsMtc { function f_IS_TLM_GEN_MSGF_BV_07 () runs on ItsMapemSpatem {
// Local variables
var ItsMapemSpatem v_mapem;
var ItsMapemSpatem v_spatem;
// Test control // TODO
if (not (PICS_SPATEM_GENERATION and PICS_SPATEM_PEDESTRIAN_MANOEUVRES)) {
log("*** " & testcasename() & ": PICS_SPATEM_GENERATION AND PICS_SPATEM_PEDESTRIAN_MANOEUVRES required for executing the TC ***");
setverdict(inconc);
stop;
}
// Test component configuration
f_cf02Up();
// Preamble
// Start components
v_mapem := f_getComponent(c_compMap);
v_spatem := f_getComponent(c_compSpat);
v_mapem.start(f_IS_TLM_GEN_MSGF_BV_07_MAPEM());
v_spatem.start(f_IS_TLM_GEN_MSGF_BV_07_SPATEM());
// Synchronization
f_serverSync2ClientsAndStop({c_prDone, c_tbDone});
// Cleanup
f_cf02Down();
} // End of function f_IS_TLM_GEN_MSGF_BV_07 } // End of function f_IS_TLM_GEN_MSGF_BV_07
/**
* @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_07_SPATEM
*/
function f_IS_TLM_GEN_MSGF_BV_07_MAPEM () runs on ItsMapemSpatem {
// Local variables
var MapemInd v_mapem;
// Preamble
f_prInitialState();
f_awaitMapeMessage(
mw_mapemInd(
mw_mapemPdu(
mw_mapem(
{mw_intersectionGeometry(
-,
-,
-,
{mw_roadLane(
-,//laneID
?,//laneAttributes
-,//p_ingressApproach
-,//egressApproach
? //connectsTo
)}
)}
)
)),
v_mapem
);
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
} // End of function f_IS_TLM_GEN_MSGF_BV_07_MAPEM