Commit 45ff4c90 authored by garciay's avatar garciay
Browse files

Add UC3 & UC5 support

parent 0ad847cc
......@@ -67,7 +67,6 @@ module ItsRSUsSimulator_Functions {
// Map
map(self:acPort, system:acPort);
map(self:utPort, system:utPort);
map(self:cfPort, system:cfPort);
map(self:geoNetworkingPort, system:geoNetworkingPort);
......@@ -94,7 +93,6 @@ module ItsRSUsSimulator_Functions {
// Unmap
unmap(self:acPort, system:acPort);
unmap(self:utPort, system:utPort);
unmap(self:cfPort, system:cfPort);
unmap(self:geoNetworkingPort, system:geoNetworkingPort);
......@@ -121,7 +119,7 @@ module ItsRSUsSimulator_Functions {
vc_longPosVectorRsu := PICS_RSU_PARAMS[p_rsu_id].longPosVector;
// MAPEM
if (PICS_GENERATE_MAPEM) {
if (PICS_GENERATE_MAPEM and ispresent(PICS_MAPEM_PARMS_RSUs[p_rsu_id].intersections)) {
// Build the list of the MAPEM events
v_mapem :=
m_mapemParm(
......@@ -136,8 +134,8 @@ module ItsRSUsSimulator_Functions {
// TODO Add more?
}
// SPATEM
if (PICS_GENERATE_SPATEM) {
// Build the list of the DENM events
if (PICS_GENERATE_SPATEM and (lengthof(PICS_SPATEM_PARMS_RSUs[p_rsu_id]) != 0)) {
// Build the list of the SPATEM events
for (v_counter := 0; v_counter < lengthof(PICS_SPATEM_PARMS_RSUs[p_rsu_id]); v_counter := v_counter + 1) {
v_spatems[v_counter] :=
m_spatemParm(
......@@ -154,8 +152,8 @@ module ItsRSUsSimulator_Functions {
// TODO Build SPATEM with dynamic values
}
// IVIM
if (PICS_GENERATE_IVIM) {
// Build the list of the MAPEM events
if (PICS_GENERATE_IVIM and ispresent(PICS_IVIM_PARMS_RSUs[p_rsu_id].provider)) {
// Build the list of the IVIM events
v_ivim :=
m_ivimParm(
PICS_RSU_PARAMS[p_rsu_id].stationID,
......@@ -165,7 +163,7 @@ module ItsRSUsSimulator_Functions {
PICS_IVIM_PARMS_RSUs[p_rsu_id].iviIdentificationNumber,
0//IviStatus_new_
),
{ PICS_IVIM_PARMS_RSUs[p_rsu_id].iviContainer }
PICS_IVIM_PARMS_RSUs[p_rsu_id].iviContainers
));
// Update ivi status
v_ivim.ivi.mandatory.validFrom := f_getCurrentTime();
......@@ -321,6 +319,18 @@ module ItsRSUsSimulator_Functions {
) runs on ItsRSUsSimulator {
var template (value) SPATEM v_spatem := p_spatem; // Make a copy
vc_currentPhaseStartTime := f_getCurrentTime();
vc_endPhaseStartTime := vc_currentPhaseStartTime + vc_repitition_duration[vc_spatemStatesId];
// Rebuild SPATEM message
for (var integer v_intersection := 0; v_intersection < lengthof(v_spatem.spat.intersections); v_intersection := v_intersection + 1) {
var template (value) MovementList v_states := vc_states[PX_RSU_ID - 1][v_intersection];
......
......@@ -46,6 +46,9 @@ module ItsRSUsSimulator_TestSystem {
* @desc DENM sequence number index
*/
var SequenceNumber vc_sequenceNumber := 0;
/**
* @desc TODO
*/
var MsgCount vc_msgIssueRevision := 0;
/**
* @desc List of MovementState per intersection and per RSU
......@@ -55,12 +58,25 @@ module ItsRSUsSimulator_TestSystem {
* @desc Current SPATEM state
*/
var integer vc_spatemStatesId := 0;
/**
* @desc TODO
*/
var TimestampIts vc_currentPhaseStartTime := 0;
/**
* @desc TODO
*/
var TimestampIts vc_endPhaseStartTime := 0;
var SpatemRepetionDuration vc_repitition_duration := {
PICS_SPATEM_REPITITION_DURATION_STATE_1,
PICS_SPATEM_REPITITION_DURATION_STATE_2,
PICS_SPATEM_REPITITION_DURATION_STATE_3
};
timer tc_cam := PICS_CAM_FREQUENY;
timer tc_denm := PICS_DENM_FREQUENY;
timer tc_mapem := PICS_MAPEM_FREQUENY;
timer tc_spatem := PICS_SPATEM_FREQUENY;
timer tc_ivim := PICS_IVIM_FREQUENY;
timer tc_cam := PICS_CAM_FREQUENCY;
timer tc_denm := PICS_DENM_FREQUENCY;
timer tc_mapem := PICS_MAPEM_FREQUENCY;
timer tc_spatem := PICS_SPATEM_FREQUENCY;
timer tc_ivim := PICS_IVIM_FREQUENCY;
} // End of component ItsRSUsSimulator
......
......@@ -33,6 +33,11 @@ module ItsRSUsSimulator_TypesAndValues {
*/
type record of SPATEM SPATEMs;
/**
* @desc TODO
*/
type record of UInt32 SpatemRepetionDuration;
/**
* @desc Defines the list of messages to be sent by a single RSU
* @member cam CAM message that a RSU shall send
......@@ -114,7 +119,7 @@ module ItsRSUsSimulator_TypesAndValues {
* @desc Describe the parameter for each MAPEM event
*/
type record MapemParm {
IntersectionGeometryList intersections,
IntersectionGeometryList intersections optional,
RoadSegmentList roadSegments optional
} // End of type MapemParm
......@@ -167,13 +172,15 @@ module ItsRSUsSimulator_TypesAndValues {
*/
group ivimDataStructures {
type record length (1 .. 8) of IviContainer IviContainers;
/**
* @desc Describe the parameter for each IVIM event
*/
type record IvimParm {
Provider provider,
IviIdentificationNumber iviIdentificationNumber,
IviContainer iviContainer
Provider provider optional,
IviIdentificationNumber iviIdentificationNumber optional,
IviContainers iviContainers optional
} // End of type IvimParm
/**
......
Markdown is supported
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