Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +20 −10 Original line number Diff line number Diff line Loading @@ -145,8 +145,8 @@ module ItsRSUsSimulator_Functions { var integer v_counter; vc_longPosVectorRsu := PICS_RSU_PARAMS[p_rsu_id].longPosVector; // MAPEM if (PICS_GENERATE_MAPEM and ispresent(PICS_MAPEM_PARMS_RSUs[p_rsu_id].intersections)) { // MAPEM, only if PX_ETSI_USE_CASE_ID is set to 3 if ((vc_mapem == true) and (PX_ETSI_USE_CASE_ID == 3) and ispresent(PICS_MAPEM_PARMS_RSUs[p_rsu_id].intersections)) { // Build the list of the MAPEM events v_mapem := m_mapemParm( Loading @@ -159,9 +159,11 @@ module ItsRSUsSimulator_Functions { // Update revision fields v_mapem.map_.intersections[0].revision := f_incMsgIssueRevision(); // TODO Add more? } else { vc_mapem := false; } // SPATEM if (PICS_GENERATE_SPATEM and (lengthof(PICS_SPATEM_PARMS_RSUs[p_rsu_id]) != 0)) { // SPATEM, only if PX_ETSI_USE_CASE_ID is set to 3 if ((vc_spatem == true) and (PX_ETSI_USE_CASE_ID == 3) and (lengthof(PICS_SPATEM_PARMS_RSUs[p_rsu_id]) != 0)) { // Reset counter vc_currentPhaseStartTime := 36001; vc_endPhaseStartTime := 0; Loading @@ -181,9 +183,11 @@ module ItsRSUsSimulator_Functions { // TODO Build SPATEM with dynamic values } // End of 'for' statement // TODO Build SPATEM with dynamic values } else { vc_spatem := false; } // IVIM if (PICS_GENERATE_IVIM and ispresent(PICS_IVIM_PARMS_RSUs[p_rsu_id].provider)) { // IVIM, only if PX_ETSI_USE_CASE_ID is set to 5 if ((vc_ivim == true) and (PX_ETSI_USE_CASE_ID == 5) and ispresent(PICS_IVIM_PARMS_RSUs[p_rsu_id].provider)) { // Build the list of the IVIM events v_ivim := m_ivimParm( Loading @@ -198,9 +202,11 @@ module ItsRSUsSimulator_Functions { )); // Update ivi status v_ivim.ivi.mandatory.validFrom := f_getCurrentTime(); } else { vc_ivim := false; } // DENM if (PICS_GENERATE_DENM) { // DENM, only if PX_ETSI_USE_CASE_ID is set to 1 if ((vc_denm == true) and (PX_ETSI_USE_CASE_ID == 1)) { // Build the list of the DENM events for the specified RSU (PX_RSU_ID) and the given zone (PX_ETSI_ZONE_ID) for (v_counter := 0; v_counter < lengthof(PICS_DENM_EVENTS_RSU[p_rsu_id][PX_ETSI_ZONE_ID - 1]); v_counter := v_counter + 1) { var DenmEventsParmsPerZone v_denmEventsParmsPerZone := PICS_DENM_EVENTS_RSU[p_rsu_id][PX_ETSI_ZONE_ID - 1]; Loading Loading @@ -229,9 +235,11 @@ module ItsRSUsSimulator_Functions { v_denms[v_counter].denm.alacarte := m_alacarte(v_denmEventsParmsPerZone[v_counter].roadWorksContainerExtended); } } // End of 'for' statement } else { vc_denm := false; } // CAM if (PICS_GENERATE_CAM) { if (vc_cam == true) { // Build the list of the CAM events v_cam := m_camParm( Loading @@ -243,7 +251,7 @@ module ItsRSUsSimulator_Functions { PICS_RSU_PARAMS[p_rsu_id].pathHistory ); } if (PICS_GENERATE_BEACON) { if (vc_beacon == true) { // Build the list of the BeACON events v_beacon := 'AAAAAAAA'O; // TODO Use a PICS } Loading Loading @@ -424,6 +432,8 @@ module ItsRSUsSimulator_Functions { v_spatem.spat.intersections[v_intersection].states[0].state_time_speed[0].timing.minEndTime := vc_currentPhaseStartTime; v_spatem.spat.intersections[v_intersection].states[1].state_time_speed[0].timing.minEndTime := vc_currentPhaseStartTime + vc_repitition_duration[(vc_spatemStatesId + 1) mod vc_spatemStatesNum]; v_spatem.spat.intersections[v_intersection].states[2].state_time_speed[0].timing.minEndTime := vc_currentPhaseStartTime + vc_repitition_duration[(vc_spatemStatesId + 2) mod vc_spatemStatesNum]; v_spatem.spat.intersections[v_intersection].timeStamp := f_getCurrentTime() mod 65536; v_spatem.spat.intersections[v_intersection].moy := f_getMinuteOfTheYear(); } // End of 'for' statement p_payload := valueof( Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +567 −24 File changed.Preview size limit exceeded, changes collapsed. Show changes ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pixits.ttcn +7 −4 Original line number Diff line number Diff line Loading @@ -22,18 +22,21 @@ module ItsRSUsSimulator_Pixits { /** * @desc Indicate which RSU to simulate */ modulepar integer PX_RSU_ID := 3; modulepar integer PX_RSU_ID := 1; /** * @desc Indicate which Use Case to simulate * @remark Used only for DENM * @remark UC1 (DENM): PX_ETSI_USE_CASE_ID := 1 * UC3 (TLM): PX_ETSI_USE_CASE_ID := 3 * UC5 (IVIM): PX_ETSI_USE_CASE_ID := 5 * UC6 (CAM): PX_ETSI_USE_CASE_ID := 6 */ modulepar integer PX_ETSI_USE_CASE_ID := 6; modulepar integer PX_ETSI_USE_CASE_ID := 5; /** * @desc Indicate which zone to simulate * @remark Used only for DENM */ modulepar integer PX_ETSI_ZONE_ID := 2; modulepar integer PX_ETSI_ZONE_ID := 1; } // End of module ItsRSUsSimulator_Pixits ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn +9 −9 Original line number Diff line number Diff line Loading @@ -103,21 +103,21 @@ module ItsRSUsSimulator_TestCases { repeat; } } [PICS_GENERATE_BEACON] tc_beacon.timeout { [vc_beacon == true] tc_beacon.timeout { log("*** " & testcasename() & ": DEBUG: Processing BEACON ***"); f_prepare_beacon(v_payload); f_send(v_payload, PICS_CAM_ITS_AID); tc_beacon.start; repeat; } [PICS_GENERATE_CAM] tc_cam.timeout { [vc_cam == true] tc_cam.timeout { log("*** " & testcasename() & ": DEBUG: Processing CAM ***"); f_prepare_cam(v_payload); f_send(v_payload, PICS_CAM_ITS_AID); tc_cam.start; repeat; } [PICS_GENERATE_DENM] tc_denm.timeout { [vc_denm == true] tc_denm.timeout { log("*** " & testcasename() & ": DEBUG: Processing DENM ***"); for (var integer v_i := 0; v_i < lengthof(vc_rsuMessagesValueList[vc_rsu_id].denms); v_i := v_i + 1) { f_prepare_denm(v_payload); Loading @@ -126,14 +126,14 @@ module ItsRSUsSimulator_TestCases { tc_denm.start; repeat; } [PICS_GENERATE_MAPEM] tc_mapem.timeout { [vc_mapem == true] tc_mapem.timeout { log("*** " & testcasename() & ": DEBUG: Processing MAPEM ***"); f_prepare_mapem(v_payload); f_send(v_payload, PICS_MAPEM_ITS_AID); tc_mapem.start; repeat; } [PICS_GENERATE_SPATEM] tc_spatem.timeout { [vc_spatem == true] tc_spatem.timeout { log("*** " & testcasename() & ": DEBUG: Processing SPATEM ***"); for (var integer v_counter := 0; v_counter < lengthof(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems); v_counter := v_counter + 1) { f_prepare_spatem(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems[v_counter], v_payload); Loading @@ -142,7 +142,7 @@ module ItsRSUsSimulator_TestCases { tc_spatem.start; repeat; } [PICS_GENERATE_IVIM] tc_ivim.timeout { [vc_ivim == true] tc_ivim.timeout { log("*** " & testcasename() & ": DEBUG: Processing IVIM ***"); f_prepare_ivim(v_payload); f_send(v_payload, PICS_IVIM_ITS_AID); Loading Loading @@ -188,7 +188,7 @@ module ItsRSUsSimulator_TestCases { mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam( mw_longPosVectorPosition_vendors( PICS_UC6_VEHICLE_POSITION PICS_UC6_VEHICLE_POSITION // Ignore RSUsimultor CAM messages ), ?, e_btpB Loading Loading @@ -256,14 +256,14 @@ module ItsRSUsSimulator_TestCases { f_initialiseVehicleSimulatorComponent(p_component, v_cam); tc_cam.start; tc_ca_uc6.start; alt { [] tc_cam.timeout { log("*** " & testcasename() & ": DEBUG: Processing CAM ***"); f_send_vehicle_cam(v_cam, v_idx); v_idx := v_idx + 1; if (v_idx < lengthof(PICS_USECASE6_VEHICLE_POSITIONS)) { tc_cam.start; tc_ca_uc6.start; repeat; } // else, terminate } Loading ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestSystem.ttcn +8 −0 Original line number Diff line number Diff line Loading @@ -83,8 +83,16 @@ module ItsRSUsSimulator_TestSystem { */ var integer vc_spatemStatesNum := lengthof(vc_repitition_duration); var boolean vc_beacon := PICS_GENERATE_BEACON; var boolean vc_cam := PICS_GENERATE_CAM; var boolean vc_denm := PICS_GENERATE_DENM; var boolean vc_ivim := PICS_GENERATE_IVIM; var boolean vc_mapem := PICS_GENERATE_MAPEM; var boolean vc_spatem := PICS_GENERATE_SPATEM; timer tc_beacon := PICS_BEACON_FREQUENCY; timer tc_cam := PICS_CAM_FREQUENCY; timer tc_ca_uc6 := PICS_CAM_FREQUENCY_UC6; timer tc_denm := PICS_DENM_FREQUENCY; timer tc_mapem := PICS_MAPEM_FREQUENCY; timer tc_spatem := PICS_SPATEM_FREQUENCY; Loading Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn +20 −10 Original line number Diff line number Diff line Loading @@ -145,8 +145,8 @@ module ItsRSUsSimulator_Functions { var integer v_counter; vc_longPosVectorRsu := PICS_RSU_PARAMS[p_rsu_id].longPosVector; // MAPEM if (PICS_GENERATE_MAPEM and ispresent(PICS_MAPEM_PARMS_RSUs[p_rsu_id].intersections)) { // MAPEM, only if PX_ETSI_USE_CASE_ID is set to 3 if ((vc_mapem == true) and (PX_ETSI_USE_CASE_ID == 3) and ispresent(PICS_MAPEM_PARMS_RSUs[p_rsu_id].intersections)) { // Build the list of the MAPEM events v_mapem := m_mapemParm( Loading @@ -159,9 +159,11 @@ module ItsRSUsSimulator_Functions { // Update revision fields v_mapem.map_.intersections[0].revision := f_incMsgIssueRevision(); // TODO Add more? } else { vc_mapem := false; } // SPATEM if (PICS_GENERATE_SPATEM and (lengthof(PICS_SPATEM_PARMS_RSUs[p_rsu_id]) != 0)) { // SPATEM, only if PX_ETSI_USE_CASE_ID is set to 3 if ((vc_spatem == true) and (PX_ETSI_USE_CASE_ID == 3) and (lengthof(PICS_SPATEM_PARMS_RSUs[p_rsu_id]) != 0)) { // Reset counter vc_currentPhaseStartTime := 36001; vc_endPhaseStartTime := 0; Loading @@ -181,9 +183,11 @@ module ItsRSUsSimulator_Functions { // TODO Build SPATEM with dynamic values } // End of 'for' statement // TODO Build SPATEM with dynamic values } else { vc_spatem := false; } // IVIM if (PICS_GENERATE_IVIM and ispresent(PICS_IVIM_PARMS_RSUs[p_rsu_id].provider)) { // IVIM, only if PX_ETSI_USE_CASE_ID is set to 5 if ((vc_ivim == true) and (PX_ETSI_USE_CASE_ID == 5) and ispresent(PICS_IVIM_PARMS_RSUs[p_rsu_id].provider)) { // Build the list of the IVIM events v_ivim := m_ivimParm( Loading @@ -198,9 +202,11 @@ module ItsRSUsSimulator_Functions { )); // Update ivi status v_ivim.ivi.mandatory.validFrom := f_getCurrentTime(); } else { vc_ivim := false; } // DENM if (PICS_GENERATE_DENM) { // DENM, only if PX_ETSI_USE_CASE_ID is set to 1 if ((vc_denm == true) and (PX_ETSI_USE_CASE_ID == 1)) { // Build the list of the DENM events for the specified RSU (PX_RSU_ID) and the given zone (PX_ETSI_ZONE_ID) for (v_counter := 0; v_counter < lengthof(PICS_DENM_EVENTS_RSU[p_rsu_id][PX_ETSI_ZONE_ID - 1]); v_counter := v_counter + 1) { var DenmEventsParmsPerZone v_denmEventsParmsPerZone := PICS_DENM_EVENTS_RSU[p_rsu_id][PX_ETSI_ZONE_ID - 1]; Loading Loading @@ -229,9 +235,11 @@ module ItsRSUsSimulator_Functions { v_denms[v_counter].denm.alacarte := m_alacarte(v_denmEventsParmsPerZone[v_counter].roadWorksContainerExtended); } } // End of 'for' statement } else { vc_denm := false; } // CAM if (PICS_GENERATE_CAM) { if (vc_cam == true) { // Build the list of the CAM events v_cam := m_camParm( Loading @@ -243,7 +251,7 @@ module ItsRSUsSimulator_Functions { PICS_RSU_PARAMS[p_rsu_id].pathHistory ); } if (PICS_GENERATE_BEACON) { if (vc_beacon == true) { // Build the list of the BeACON events v_beacon := 'AAAAAAAA'O; // TODO Use a PICS } Loading Loading @@ -424,6 +432,8 @@ module ItsRSUsSimulator_Functions { v_spatem.spat.intersections[v_intersection].states[0].state_time_speed[0].timing.minEndTime := vc_currentPhaseStartTime; v_spatem.spat.intersections[v_intersection].states[1].state_time_speed[0].timing.minEndTime := vc_currentPhaseStartTime + vc_repitition_duration[(vc_spatemStatesId + 1) mod vc_spatemStatesNum]; v_spatem.spat.intersections[v_intersection].states[2].state_time_speed[0].timing.minEndTime := vc_currentPhaseStartTime + vc_repitition_duration[(vc_spatemStatesId + 2) mod vc_spatemStatesNum]; v_spatem.spat.intersections[v_intersection].timeStamp := f_getCurrentTime() mod 65536; v_spatem.spat.intersections[v_intersection].moy := f_getMinuteOfTheYear(); } // End of 'for' statement p_payload := valueof( Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn +567 −24 File changed.Preview size limit exceeded, changes collapsed. Show changes
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pixits.ttcn +7 −4 Original line number Diff line number Diff line Loading @@ -22,18 +22,21 @@ module ItsRSUsSimulator_Pixits { /** * @desc Indicate which RSU to simulate */ modulepar integer PX_RSU_ID := 3; modulepar integer PX_RSU_ID := 1; /** * @desc Indicate which Use Case to simulate * @remark Used only for DENM * @remark UC1 (DENM): PX_ETSI_USE_CASE_ID := 1 * UC3 (TLM): PX_ETSI_USE_CASE_ID := 3 * UC5 (IVIM): PX_ETSI_USE_CASE_ID := 5 * UC6 (CAM): PX_ETSI_USE_CASE_ID := 6 */ modulepar integer PX_ETSI_USE_CASE_ID := 6; modulepar integer PX_ETSI_USE_CASE_ID := 5; /** * @desc Indicate which zone to simulate * @remark Used only for DENM */ modulepar integer PX_ETSI_ZONE_ID := 2; modulepar integer PX_ETSI_ZONE_ID := 1; } // End of module ItsRSUsSimulator_Pixits
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn +9 −9 Original line number Diff line number Diff line Loading @@ -103,21 +103,21 @@ module ItsRSUsSimulator_TestCases { repeat; } } [PICS_GENERATE_BEACON] tc_beacon.timeout { [vc_beacon == true] tc_beacon.timeout { log("*** " & testcasename() & ": DEBUG: Processing BEACON ***"); f_prepare_beacon(v_payload); f_send(v_payload, PICS_CAM_ITS_AID); tc_beacon.start; repeat; } [PICS_GENERATE_CAM] tc_cam.timeout { [vc_cam == true] tc_cam.timeout { log("*** " & testcasename() & ": DEBUG: Processing CAM ***"); f_prepare_cam(v_payload); f_send(v_payload, PICS_CAM_ITS_AID); tc_cam.start; repeat; } [PICS_GENERATE_DENM] tc_denm.timeout { [vc_denm == true] tc_denm.timeout { log("*** " & testcasename() & ": DEBUG: Processing DENM ***"); for (var integer v_i := 0; v_i < lengthof(vc_rsuMessagesValueList[vc_rsu_id].denms); v_i := v_i + 1) { f_prepare_denm(v_payload); Loading @@ -126,14 +126,14 @@ module ItsRSUsSimulator_TestCases { tc_denm.start; repeat; } [PICS_GENERATE_MAPEM] tc_mapem.timeout { [vc_mapem == true] tc_mapem.timeout { log("*** " & testcasename() & ": DEBUG: Processing MAPEM ***"); f_prepare_mapem(v_payload); f_send(v_payload, PICS_MAPEM_ITS_AID); tc_mapem.start; repeat; } [PICS_GENERATE_SPATEM] tc_spatem.timeout { [vc_spatem == true] tc_spatem.timeout { log("*** " & testcasename() & ": DEBUG: Processing SPATEM ***"); for (var integer v_counter := 0; v_counter < lengthof(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems); v_counter := v_counter + 1) { f_prepare_spatem(vc_rsuMessagesValueList[PX_RSU_ID - 1].spatems[v_counter], v_payload); Loading @@ -142,7 +142,7 @@ module ItsRSUsSimulator_TestCases { tc_spatem.start; repeat; } [PICS_GENERATE_IVIM] tc_ivim.timeout { [vc_ivim == true] tc_ivim.timeout { log("*** " & testcasename() & ": DEBUG: Processing IVIM ***"); f_prepare_ivim(v_payload); f_send(v_payload, PICS_IVIM_ITS_AID); Loading Loading @@ -188,7 +188,7 @@ module ItsRSUsSimulator_TestCases { mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam( mw_longPosVectorPosition_vendors( PICS_UC6_VEHICLE_POSITION PICS_UC6_VEHICLE_POSITION // Ignore RSUsimultor CAM messages ), ?, e_btpB Loading Loading @@ -256,14 +256,14 @@ module ItsRSUsSimulator_TestCases { f_initialiseVehicleSimulatorComponent(p_component, v_cam); tc_cam.start; tc_ca_uc6.start; alt { [] tc_cam.timeout { log("*** " & testcasename() & ": DEBUG: Processing CAM ***"); f_send_vehicle_cam(v_cam, v_idx); v_idx := v_idx + 1; if (v_idx < lengthof(PICS_USECASE6_VEHICLE_POSITIONS)) { tc_cam.start; tc_ca_uc6.start; repeat; } // else, terminate } Loading
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestSystem.ttcn +8 −0 Original line number Diff line number Diff line Loading @@ -83,8 +83,16 @@ module ItsRSUsSimulator_TestSystem { */ var integer vc_spatemStatesNum := lengthof(vc_repitition_duration); var boolean vc_beacon := PICS_GENERATE_BEACON; var boolean vc_cam := PICS_GENERATE_CAM; var boolean vc_denm := PICS_GENERATE_DENM; var boolean vc_ivim := PICS_GENERATE_IVIM; var boolean vc_mapem := PICS_GENERATE_MAPEM; var boolean vc_spatem := PICS_GENERATE_SPATEM; timer tc_beacon := PICS_BEACON_FREQUENCY; timer tc_cam := PICS_CAM_FREQUENCY; timer tc_ca_uc6 := PICS_CAM_FREQUENCY_UC6; timer tc_denm := PICS_DENM_FREQUENCY; timer tc_mapem := PICS_MAPEM_FREQUENCY; timer tc_spatem := PICS_SPATEM_FREQUENCY; Loading