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

Start validate AtsSpatem

parent 6348fc18
Loading
Loading
Loading
Loading
+27 −16
Original line number Diff line number Diff line
@@ -576,7 +576,7 @@ int ConfigRsuSimulatorLayer::process_ut_denm_trigger(const OCTETSTRING& data, pa
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_denm_trigger: msg_id=%02x", msg_id);
    unsigned char flag = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_denm_trigger: flag=%02x", flag);
    LibItsDenm__TypesAndValues::UtDenmTrigger trigger; // See ETSI TR 103 34 099 Cause C.4.1 GenerateDenmEvent
    LibItsDenm__TypesAndValues::UtDenmTrigger trigger; // See ETSI TR 103 099 Cause C.4.1 GenerateDenmEvent
    // Decode detectionTime
    trigger.detectionTime() = oct2int(OCTETSTRING(6, p));
    p += 6;
@@ -650,7 +650,7 @@ int ConfigRsuSimulatorLayer::process_ut_denm_update(const OCTETSTRING& data, par
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_denm_update: msg_id=%02x", msg_id);
    unsigned char flag = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_denm_update: flag=%02x", flag);
    LibItsDenm__TypesAndValues::UtDenmUpdate update; // See ETSI TR 103 34 099 Cause C.4.1 GenerateDenmEvent
    LibItsDenm__TypesAndValues::UtDenmUpdate update; // See ETSI TR 103 099 Cause C.4.1 GenerateDenmEvent
    // Statuion ID
    update.actionId().originatingStationID() = oct2int(OCTETSTRING(4, p));
    p += 4;
@@ -886,19 +886,30 @@ int ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger(const OCTETSTRING&
    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
    unsigned char flag = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: flag=%02x", flag);
    LibItsMapemSpatem__TypesAndValues::UtMapemSpatemTrigger trigger; // See ETSI TR 103 099 Cause C.4.1 GenerateMapemSpatemEvent
    // Decode Event
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: event=%02x", *p);
    trigger.event().int2enum(static_cast<int>(*p++));
    // Decode IntersectionId
    if ((flag & 0x80) == 0x80) {
      loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: intersectionID=%04x", (short)*p);
    trigger.intersectionID() = static_cast<int>((*p << 8) | *(p + 1));
      trigger.intersectionID() = OPTIONAL<INTEGER>(static_cast<int>((*p << 8) | *(p + 1)));
    } else {
      trigger.intersectionID().set_to_omit();
    }
    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));
    if ((flag & 0x40) == 0x40) {
      DSRC__REGION__noCircular::RegulatorySpeedLimit r;
      r.type__().int2enum(static_cast<int>(*p++));
      r.speed() = static_cast<int>((*p << 8) | *(p + 1));
      loggers::get_instance().log_msg("ConfigRsuSimulatorLayer::process_ut_mapem_spatem_trigger: RegulatorySpeedLimit: ", r);
      trigger.regulatorySpeedLimit() = OPTIONAL<DSRC__REGION__noCircular::RegulatorySpeedLimit>(r);
    } else {
      trigger.regulatorySpeedLimit().set_to_omit();
    }
    p += 2;
    // FIXME Add flags
    trigger.latitude().set_to_omit();
@@ -929,7 +940,7 @@ int ConfigRsuSimulatorLayer::process_ut_ivim_trigger(const OCTETSTRING& data, pa
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_ivim_trigger: msg_id=%02x", msg_id);
    unsigned short flag = static_cast<unsigned short>((*p++) << 8 | (*p++));
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_ivim_trigger: flag=%02x", flag);
    LibItsIvim__TypesAndValues::UtIvimTrigger trigger; // See ETSI TR 103 34 099 Cause C.4.1 GenerateIvimEvent
    LibItsIvim__TypesAndValues::UtIvimTrigger trigger; // See ETSI TR 103 099 Cause C.4.1 GenerateIvimEvent
    // Decode ValidityFrom
    if ((flag & 0x8000) == 0x8000) {
      trigger.validFrom() = OPTIONAL<INTEGER>(oct2int(OCTETSTRING(6, p)));
@@ -1052,7 +1063,7 @@ int ConfigRsuSimulatorLayer::process_ut_ivim_update(const OCTETSTRING& data, par
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_ivim_update: msg_id=%02x", msg_id);
    unsigned char flag = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_ivim_update: flag=%02x", flag);
    LibItsIvim__TypesAndValues::UtIvimUpdate update; // See ETSI TR 103 34 099 Cause C.4.1 GenerateIvimEvent
    LibItsIvim__TypesAndValues::UtIvimUpdate update; // See ETSI TR 103 099 Cause C.4.1 GenerateIvimEvent
    // IviIdentificationNumber
    update.iviIdentificationNumber() = oct2int(OCTETSTRING(2, p));
    p += 2;
@@ -1141,7 +1152,7 @@ int ConfigRsuSimulatorLayer::process_ut_srem_trigger(const OCTETSTRING& data, pa
    unsigned char* p = (unsigned char*)static_cast<const unsigned char*>(data);
    unsigned char msg_id = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_geonetworking_trigger: msg_id=%02x", msg_id);
    LibItsSremSsem__TypesAndValues::UtSremTrigger trigger; // See ETSI TR 103 34 099
    LibItsSremSsem__TypesAndValues::UtSremTrigger trigger; // See ETSI TR 103 099
    // BasicVehicleRole
    trigger.basicVehicleRole() = oct2int(OCTETSTRING(1, p++));
    // Request Importance Level
@@ -1172,7 +1183,7 @@ int ConfigRsuSimulatorLayer::process_ut_srem_update(const OCTETSTRING& data, par
    unsigned char* p = (unsigned char*)static_cast<const unsigned char*>(data);
    unsigned char msg_id = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_geonetworking_update: msg_id=%02x", msg_id);
    LibItsSremSsem__TypesAndValues::UtSremUpdate update; // See ETSI TR 103 34 099
    LibItsSremSsem__TypesAndValues::UtSremUpdate update; // See ETSI TR 103 099
    // RequestID
    update.requestID() = oct2int(OCTETSTRING(1, p++));
    // BasicVehicleRole
@@ -1203,7 +1214,7 @@ int ConfigRsuSimulatorLayer::process_ut_srem_termination(const OCTETSTRING& data
    unsigned char* p = (unsigned char*)static_cast<const unsigned char*>(data);
    unsigned char msg_id = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_geonetworking_termination: msg_id=%02x", msg_id);
    LibItsSremSsem__TypesAndValues::UtSremCancelation termination; // See ETSI TR 103 34 099
    LibItsSremSsem__TypesAndValues::UtSremCancelation termination; // See ETSI TR 103 099
    // RequestID
    termination.requestID() = oct2int(OCTETSTRING(1, p++));

@@ -1232,7 +1243,7 @@ int ConfigRsuSimulatorLayer::process_ut_rtcmem_trigger(const OCTETSTRING& data,
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_rtcmem_trigger: msg_id=%02x", msg_id);
    unsigned char flag = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_rtcmem_trigger: flag=%02x", flag);
    LibItsRtcmem__TypesAndValues::UtRtcmemTrigger trigger; // See ETSI TR 103 34 099 Cause C.10.1 GenerateRtcmemEvent
    LibItsRtcmem__TypesAndValues::UtRtcmemTrigger trigger; // See ETSI TR 103 099 Cause C.10.1 GenerateRtcmemEvent
    // Decode msgCnt
    trigger.msgCnt() = *p++;
    // Decode rev
@@ -1294,7 +1305,7 @@ int ConfigRsuSimulatorLayer::process_ut_rtcmem_update(const OCTETSTRING& data, p
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_rtcmem_update: msg_id=%02x", msg_id);
    unsigned char flag = *p++;
    loggers::get_instance().log("ConfigRsuSimulatorLayer::process_ut_rtcmem_update: flag=%02x", flag);
    LibItsRtcmem__TypesAndValues::UtRtcmemUpdate update; // See ETSI TR 103 34 099 Cause C.10.2 GenerateRtcmemUpdate
    LibItsRtcmem__TypesAndValues::UtRtcmemUpdate update; // See ETSI TR 103 099 Cause C.10.2 GenerateRtcmemUpdate
    // Decode msgs
    DSRC::RTCMmessageList msgs;
    p += 1; // Skip COER flag
+40 −7
Original line number Diff line number Diff line
@@ -29,6 +29,16 @@ int uppertester_mapem_spatem_codec::encode (const Record_Type& msg, OCTETSTRING&
    encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mapem_spatem_codec::c_utMapemSpatemInitialize));
  } else if (std::string(msg.get_descriptor()->name).compare("@LibItsMapemSpatem_TypesAndValues.UtMapemSpatemTrigger") == 0) {
    encoding_buffer.put_c(static_cast<const unsigned char>(uppertester_mapem_spatem_codec::c_utMapemSpatemTrigger));
    // See ETSI TR 103 099 V1.4.1 Clause C.9.1 GenerateMapemSpatemEvent
    unsigned char flags = 0x00;
    const LibItsMapemSpatem__TypesAndValues::UtMapemSpatemTrigger &r = static_cast<const LibItsMapemSpatem__TypesAndValues::UtMapemSpatemTrigger &>(msg);
    if (r.intersectionID().is_present()) { // F
      flags |= 0x80;
    }
    if (r.regulatorySpeedLimit().is_present()) { // V
      flags |= 0x40;
    }
    encoding_buffer.put_c(flags);
  } else { // Error
    data = OCTETSTRING(0, nullptr);
    loggers::get_instance().log("<<< uppertester_mapem_spatem_codec::encode: Return -1");
@@ -55,20 +65,43 @@ int uppertester_mapem_spatem_codec::encode_ (const Base_Type& type, const TTCN_T
          loggers::get_instance().warning("uppertester_mapem_spatem_codec::encode_: -1 result code returned");
          return -1;
        }
      } else {
        std::string s(r.fld_descr(i)->name);
        loggers::get_instance().log("uppertester_mapem_spatem_codec::encode_: Padding for %s", field_descriptor.name);
        if (s.rfind(".intersectionID") != string::npos) { // Pad with two bytes
          encoding_buffer.put_c((unsigned char)0x00);
          encoding_buffer.put_c((unsigned char)0x00);
        } else if (s.rfind(".regulatorySpeedLimit") != string::npos) { // Pad with three bytes
          encoding_buffer.put_c((unsigned char)0x00);
          encoding_buffer.put_c((unsigned char)0x00);
          encoding_buffer.put_c((unsigned char)0x00);
        }
      }
    } // End of 'for' statement
  } else {
    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_ (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();
    if (s.rfind(".intersectionID") != string::npos) {
      if (type.is_present()) {
        const OPTIONAL<INTEGER> &o = dynamic_cast<const OPTIONAL<INTEGER> &>(type);
        const INTEGER& iv = dynamic_cast<const INTEGER&>(*o.get_opt_value());
        loggers::get_instance().log_msg("uppertester_mapem_spatem_codec::encode_: iv=", iv);
        OCTETSTRING os = int2oct(iv, 2);
        encoding_buffer.put_s(os.lengthof(), static_cast<const unsigned char*>(os));
      }
    } else if (s.rfind(".regulatorySpeedLimit") == 0) {
      if (type.is_present()) {
        const OPTIONAL<DSRC__REGION__noCircular::RegulatorySpeedLimit> &o = dynamic_cast<const OPTIONAL<DSRC__REGION__noCircular::RegulatorySpeedLimit> &>(type);
        const DSRC__REGION__noCircular::RegulatorySpeedLimit& rv = dynamic_cast<const DSRC__REGION__noCircular::RegulatorySpeedLimit&>(*o.get_opt_value());
        const int t = rv.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);
        const int s = rv.speed();
        OCTETSTRING os = int2oct(s, 2);
        encoding_buffer.put_s(os.lengthof(), static_cast<const unsigned char*>(os));
      }
    } else {
      loggers::get_instance().log("uppertester_mapem_spatem_codec::encode_ (else): processing type %s/%s", type.get_descriptor()->name, field_descriptor.name);
      type.encode(field_descriptor, encoding_buffer, TTCN_EncDec::CT_RAW);
    }
  }
+12 −5
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
LibItsCommon_Pixits.PX_IUT_STATION_ID := 2533729309

LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB
LibItsCam_Pics.PICS_IS_IUT_SECURED := true
LibItsMapemSpatem_Pics.PICS_IS_IUT_SECURED := false

[LOGGING]
# In this section you can specify the name of the log file and the classes of events
@@ -88,9 +88,9 @@ LogEventTypes:= Yes
#     save_mode   : 1 to save sent packet, 0 otherwise

#Cygwin
#system.mapemSpatemPort.params := "IVIM(next_header=btpB)/BTP(dst_port=2001)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=/home/yanng/tmp/asn1c_cert)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)"
#system.mapemSpatemPort.params := "MapemSpatem(next_header=btpB,header_type=gbc)/BTP(dst_port=2003)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=/home/yanng/tmp/asn1c_cert)/ETH(mac_src=e2b7b30429eb)/PCAP(mac_src=e2b7b30429eb,nic=CEBB111F-D749-4B40-8B4D-DBB060E90987,filter=and ether proto 0x8947)"
# Linux
system.mapemSpatemPort.params := "MapemSpatem(next_header=btpB,header_type=gbc)/BTP(dst_port=2003)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=1,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=dc536045af7e)/PCAP(mac_src=dc536045af7e,nic=wlp2s0,filter=and ether proto 0x8947)"
system.mapemSpatemPort.params := "MapemSpatem(next_header=btpB,header_type=gbc)/BTP(dst_port=2003)/GN(ll_address=4C5E0C14D2EA,latitude=43551050,longitude=10298730,distanceA=1500,distanceB=1500,angle=0,device_mode=1,secured_mode=0,sec_db_path=/home/yann/tmp/asn1c_cert)/ETH(mac_src=dc536045af7f)/PCAP(mac_src=dc536045af7f,nic=wlp2s0,filter=and ether proto 0x8947)"

# MapemSpatem UpperTester port based on UDP (ETSI Wlan)
system.utPort.params := "UT_MAPEMSPATEM/UDP(dst_ip=127.0.0.1,dst_port=12345,src_port=12346)"
@@ -162,7 +162,7 @@ system.utPort.params := "UT_MAPEMSPATEM/UDP(dst_ip=127.0.0.1,dst_port=12345,src_
# Check that RLT service sends a MAPEM message containing roadSegments when it is permitted by the signing certificate.
#ItsMapem_TestCases.TC_IS_RLT_GEN_RATE_BV_01
# Check that the IUT can successfully process all mandatory fields of MAPEM received
ItsMapem_TestCases.TC_IS_RLT_GEN_RCV_BV_03
#ItsMapem_TestCases.TC_IS_RLT_GEN_RCV_BV_03
# Check that the IUT accepts the MAPEM signed with valid certificate.
#ItsMapem_TestCases.TC_IS_RLT_RCV_SEC_BV_01
# Check that the IUT skips the MAPEM signed with certificate without permissions to sign MAPEM.
@@ -172,6 +172,13 @@ ItsMapem_TestCases.TC_IS_RLT_GEN_RCV_BV_03
# Check that the IUT skips the MAPEM containing roadSegments signed with certificate without service specific permissions (SSP) to sign such a MAPEM
#ItsMapem_TestCases.TC_IS_RLT_RCV_SEC_BO_04



# Check that protocolVersion is set to 1 and messageID is set to 4
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_01
# An IUT shall include the unique identifier for the intersection as part of the signal phase and timing message broadcast
ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_02

[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
KillTimer := 10.0
+24 −24
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, v_mapem.msgIn.map_.intersections[0].id.id, m_speedLimits(maxSpeedInConstructionZone, 30)));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, v_mapem.msgIn.map_.intersections[0].id.id, m_speedLimits(maxSpeedInConstructionZone, 30)));
                
                tc_ac.start;
                alt {
@@ -171,7 +171,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, v_mapem.msgIn.map_.intersections[0].id.id, v_mapem.msgIn.map_.intersections[0].speedLimits[0]));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, v_mapem.msgIn.map_.intersections[0].id.id, v_mapem.msgIn.map_.intersections[0].speedLimits[0]));
                
                tc_ac.start;
                alt {
@@ -280,7 +280,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, -, -, PX_3D_REF_POINT_LATITUDE));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, -, -, PX_3D_REF_POINT_LATITUDE));
                
                tc_ac.start;
                alt {
@@ -336,7 +336,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, 7));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, 7));
                
                tc_ac.start;
                alt {
@@ -424,7 +424,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -508,7 +508,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -588,7 +588,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -669,7 +669,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -750,7 +750,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -831,7 +831,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -925,7 +925,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -1020,7 +1020,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -1100,7 +1100,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -1180,7 +1180,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -1260,7 +1260,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
@@ -1380,7 +1380,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile0));
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(v_mapem) { 
@@ -1502,7 +1502,7 @@ module ItsMapem_TpFunctions {
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContentWithFragmentation));
                f_utTriggerEvent(m_utTriggerEvent(mapProfile2)); // FIXME Add parameters to update default profile or create a MamSpatUpdate message
                tc_ac.start;
                alt {
                    [not v_firstFragmentReceived] mapemSpatemPort.receive(
@@ -1583,7 +1583,7 @@ module ItsMapem_TpFunctions {
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": INFO: Successfully received well-formed MAPEM. ***");
                        f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                        f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                        v_tlmServiceStarted := true;
                        tc_ac.start;
                        repeat;
@@ -1604,7 +1604,7 @@ module ItsMapem_TpFunctions {
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
@@ -1878,7 +1878,7 @@ module ItsMapem_TpFunctions {
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            f_utTriggerEvent(m_utTriggerEvent(mapProfile0));
            
            tc_ac.start;
            alt {
@@ -1929,7 +1929,7 @@ module ItsMapem_TpFunctions {
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            f_utTriggerEvent(m_utTriggerEvent(mapProfile0));
            
            tc_ac.start;
            alt {
@@ -1980,7 +1980,7 @@ module ItsMapem_TpFunctions {
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            f_utTriggerEvent(m_utTriggerEvent(mapProfile0));
            
            tc_noac.start;
            alt {
@@ -2031,7 +2031,7 @@ module ItsMapem_TpFunctions {
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            f_utTriggerEvent(m_utTriggerEvent(mapProfile0));
            
            tc_ac.start;
            alt {
@@ -2082,7 +2082,7 @@ module ItsMapem_TpFunctions {
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            f_utTriggerEvent(m_utTriggerEvent(mapProfile0));
            
            tc_noac.start;
            alt {
+53 −53

File changed.

Preview size limit exceeded, changes collapsed.

Loading