Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ITS - Intelligent Transport Systems
ITS
Commits
4da49c99
Commit
4da49c99
authored
Nov 24, 2016
by
garciay
Browse files
Plugtest settings
parent
cf7d74f8
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
319 additions
and
67 deletions
+319
-67
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
+75
-17
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn
+108
-15
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pixits.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pixits.ttcn
+11
-9
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn
+50
-3
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn
+54
-23
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestSystem.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestSystem.ttcn
+2
-0
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TypesAndValues.ttcn
+19
-0
No files found.
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
View file @
4da49c99
...
...
@@ -14,6 +14,7 @@ module ItsRSUsSimulator_Functions {
import
from
MAPEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SPATEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
IVIM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
EVCSN_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SREM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SSEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
DSRC
language
"ASN.1:1997"
all
;
...
...
@@ -185,6 +186,7 @@ module ItsRSUsSimulator_Functions {
var
template
(
omit
)
MAPEM
v_mapem
:=
omit
;
var
template
(
omit
)
SPATEMs
v_spatems
:=
omit
;
var
template
(
omit
)
IVIM
v_ivim
:=
omit
;
var
template
(
omit
)
EvcsnPdu
v_evcsn
:=
omit
;
var
template
(
omit
)
SSEM
v_ssem
:=
omit
;
var
integer
v_counter
;
...
...
@@ -250,6 +252,27 @@ module ItsRSUsSimulator_Functions {
}
else
{
vc_ivim
:=
false
;
}
// EVCSN, only if PX_ETSI_USE_CASE_ID is set to 8
if
((
vc_evcsn
==
true
)
and
(
PX_ETSI_USE_CASE_ID
==
8
))
{
// Build the list of the EVCSN events
v_evcsn
:=
m_evcsnParm
(
PICS_RSU_PARAMS
[
p_rsu_id
].
stationID
,
m_evcsn
(
m_itsPOIHeader
(
-
,
0
,
// To be updated at run time
-
),
m_itsEVCSNData
(
-
,
{
PICS_ITS_CHARGING
}
)
));
// Update poi status
}
else
{
vc_evcsn
:=
false
;
}
// 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)
...
...
@@ -364,6 +387,7 @@ module ItsRSUsSimulator_Functions {
v_mapem
,
v_spatems
,
v_ivim
,
v_evcsn
,
v_ssem
);
if
(
PICS_RSU_PARAMS
[
p_rsu_id
].
geoShape
==
e_geoCircle
)
{
...
...
@@ -520,10 +544,14 @@ module ItsRSUsSimulator_Functions {
}
}
// End of 'select' statement
}
if
(
v_currentTimeMark
>=
vc_endPhaseStartTime
)
{
// Change state
vc_spatemStatesId
:=
(
vc_spatemStatesId
+
1
)
mod
vc_spatemStatesNum
;
vc_currentPhaseStartTime
:=
v_currentTimeMark
;
vc_endPhaseStartTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_30
);
if
(
v_currentTimeMark
>=
vc_endPhaseStartTime
)
{
var
float
t
:=
(
int2float
(
v_currentTimeMark
-
vc_endPhaseStartTime
)
/
int2float
(
v_currentTimeMark
));
log
(
"t = "
,
t
);
if
(
t
<
1.0
)
{
// Change state
vc_spatemStatesId
:=
(
vc_spatemStatesId
+
1
)
mod
vc_spatemStatesNum
;
vc_currentPhaseStartTime
:=
v_currentTimeMark
;
vc_endPhaseStartTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_30
);
}
}
log
(
"vc_currentPhaseStartTime = "
,
vc_currentPhaseStartTime
);
log
(
"v_currentTimeMark = "
,
v_currentTimeMark
);
...
...
@@ -535,25 +563,26 @@ module ItsRSUsSimulator_Functions {
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
:=
{
v_states
[
vc_spatemStatesId
]
};
v_spatem
.
spat
.
intersections
[
v_intersection
].
moy
:=
f_getMinuteOfTheYear
();
v_spatem
.
spat
.
intersections
[
v_intersection
].
timeStamp
:=
f_getDSecond
();
v_spatem
.
spat
.
intersections
[
v_intersection
].
revision
:=
(
valueof
(
v_spatem
.
spat
.
intersections
[
v_intersection
].
revision
)
+
1
)
mod
128
;
select
(
vc_spatemStatesId
)
{
case
(
0
)
{
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
]
:=
v_states
[
1
];
case
(
0
)
{
// permissive_Movement_Allowed
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
]
:=
v_states
[
1
];
// permissive-clearance
//v_spatem.spat.intersections[v_intersection].states[2] := v_states[2];
// Update startTime & minEndTime
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
0
].
state_time_speed
[
0
].
timing
.
minEndTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_30
);
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
].
state_time_speed
[
0
].
timing
.
startTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_30
);
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
].
state_time_speed
[
0
].
timing
.
minEndTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_40
);
}
case
(
1
)
{
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
]
:=
v_states
[
2
];
case
(
1
)
{
// permissive-clearance
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
]
:=
v_states
[
2
];
// stop-And-Remain
//v_spatem.spat.intersections[v_intersection].states[2] := v_states[0];
// Update startTime & minEndTime
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
0
].
state_time_speed
[
0
].
timing
.
minEndTime
:=
f_computeEndPhaseStartTime
(
v_currentTimeMark
,
PICS_SPATEM_REPITITION_DURATION_STATE_10
);
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
].
state_time_speed
[
0
].
timing
.
startTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_10
);
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
].
state_time_speed
[
0
].
timing
.
minEndTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_30
);
}
case
(
2
)
{
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
]
:=
v_states
[
0
];
case
(
2
)
{
// stop-And-Remain
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
1
]
:=
v_states
[
0
];
// permissive_Movement_Allowed
//v_spatem.spat.intersections[v_intersection].states[2] := v_states[1];
// Update startTime & minEndTime
v_spatem
.
spat
.
intersections
[
v_intersection
].
states
[
0
].
state_time_speed
[
0
].
timing
.
minEndTime
:=
f_computeEndPhaseStartTime
(
vc_currentPhaseStartTime
,
PICS_SPATEM_REPITITION_DURATION_STATE_20
);
...
...
@@ -597,6 +626,25 @@ module ItsRSUsSimulator_Functions {
);
}
// End of function f_prepare_ivim
function
f_prepare_evcsn
(
out
template
(
value
)
Payload
p_payload
)
runs
on
ItsRSUsSimulator
{
vc_rsuMessagesValueList
[
vc_rsu_id
].
evcsn
.
evcsn
.
poiHeader
.
timeStamp
:=
f_getCurrentTime
();
// Check if it is ITS or UTC time
log
(
"vc_rsuMessagesValueList[vc_rsu_id].evcsn"
,
valueof
(
vc_rsuMessagesValueList
[
vc_rsu_id
].
evcsn
));
p_payload
:=
valueof
(
f_adaptPayload
(
bit2oct
(
encvalue
(
valueof
(
vc_rsuMessagesValueList
[
vc_rsu_id
].
evcsn
))),
PICS_EVCSN_BTP_DESTINATION_PORT
,
PICS_EVCSN_BTP_SOURCE_PORT
)
);
}
// End of function f_prepare_evcsn
function
f_adaptPayload
(
in
template
(
value
)
octetstring
p_finalPayload
,
in
template
(
value
)
BtpPortId
p_destPort
,
...
...
@@ -652,7 +700,17 @@ module ItsRSUsSimulator_Functions {
return
v_payload
;
}
// End of function f_adaptPayload
function
f_isInApproach
(
in
ThreeDLocation
p_detectionPoint
,
in
ThreeDLocation
p_location
,
in
float
p_dist
:=
150.0
)
return
boolean
{
var
float
v_dist
:=
fx_computeDistance
(
p_detectionPoint
.
latitude
,
p_detectionPoint
.
longitude
,
p_location
.
latitude
,
p_location
.
longitude
);
log
(
"v_dist = "
,
v_dist
);
return
v_dist
<=
p_dist
;
}
function
f_mirror_and_send_vehicle_cam
(
in
template
(
value
)
CAM
p_camSimu
,
in
CAM
p_camVehicle
,
...
...
@@ -663,12 +721,12 @@ module ItsRSUsSimulator_Functions {
var
template
(
value
)
Payload
v_payload
;
// Apply 90° rotation
if
(
PICS_USE_
S
PV
==
true
)
{
if
(
PICS_USE_
L
PV
==
true
)
{
fx_computePositionFromRotation
(
p_location
.
latitude
,
p_location
.
longitude
,
PICS_UC6_COLLISION_POINT
.
latitude
,
PICS_UC6_COLLISION_POINT
.
longitude
,
PICS_UC6_COLLISION_POINT
_Z2
.
latitude
,
// Z1
PICS_UC6_COLLISION_POINT
_Z2
.
longitude
,
// Z1
900
,
v_newPosition
.
latitude
,
v_newPosition
.
longitude
...
...
@@ -678,9 +736,9 @@ module ItsRSUsSimulator_Functions {
fx_computePositionFromRotation
(
p_camVehicle
.
cam
.
camParameters
.
basicContainer
.
referencePosition
.
latitude
,
p_camVehicle
.
cam
.
camParameters
.
basicContainer
.
referencePosition
.
longitude
,
PICS_UC6_COLLISION_POINT
.
latitude
,
PICS_UC6_COLLISION_POINT
.
longitude
,
90
0
,
PICS_UC6_COLLISION_POINT
_Z2
.
latitude
,
// Z1
PICS_UC6_COLLISION_POINT
_Z2
.
longitude
,
// Z1
245
0
,
v_newPosition
.
latitude
,
v_newPosition
.
longitude
);
...
...
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pics.ttcn
View file @
4da49c99
...
...
@@ -11,6 +11,7 @@ module ItsRSUsSimulator_Pics {
import
from
SPATEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
IVIM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
IVI
language
"ASN.1:1997"
all
;
import
from
EVCSN_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SREM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SSEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
DSRC
language
"ASN.1:1997"
all
;
...
...
@@ -457,7 +458,7 @@ module ItsRSUsSimulator_Pics {
}
}
// End of PICS_UC6_VEHICLE_GEOAREA
modulepar
boolean
PICS_USE_
S
PV
:=
true
;
modulepar
boolean
PICS_USE_
L
PV
:=
true
;
}
// End of group camUseCase6VehicleTemplateDescription
...
...
@@ -468,16 +469,25 @@ module ItsRSUsSimulator_Pics {
/**
* @desc Coordinates of the collision point
*/
modulepar
ThreeDLocation
PICS_UC6_COLLISION_POINT
:=
{
modulepar
ThreeDLocation
PICS_UC6_COLLISION_POINT
_Z1
:=
{
latitude
:=
435522970
,
longitude
:=
103000170
,
elevation
:=
'0000'O
}
// End of PICS_UC6_COLLISION_POINT
/**
* @desc Coordinates of the collision point
*/
modulepar
ThreeDLocation
PICS_UC6_COLLISION_POINT_Z2
:=
{
latitude
:=
435512220
,
longitude
:=
103000290
,
elevation
:=
'0000'O
}
// End of PICS_UC6_COLLISION_POINT_Z2
/**
* @desc Vehicle detection area
*/
modulepar
RectangularRegion
PICS_UC6_CAM_DETECTION_AREA
:=
{
modulepar
RectangularRegion
PICS_UC6_CAM_DETECTION_AREA
_Z1
:=
{
northwest
:=
{
latitude
:=
435529170
,
longitude
:=
102998330
...
...
@@ -486,7 +496,27 @@ module ItsRSUsSimulator_Pics {
latitude
:=
435522420
,
longitude
:=
103011400
}
}
// End of PICS_UC6_CAM_DETECTION_AREA
}
// End of PICS_UC6_CAM_DETECTION_AREA_Z1
/**
* @desc Vehicle detection area
*/
modulepar
RectangularRegion
PICS_UC6_CAM_DETECTION_AREA_Z2
:=
{
northwest
:=
{
latitude
:=
435530140
,
longitude
:=
102984290
},
southeast
:=
{
latitude
:=
435501600
,
longitude
:=
103012880
}
}
// End of PICS_UC6_CAM_DETECTION_AREA_Z2
modulepar
ThreeDLocation
PX_UC6_APPROACH_POINT_Z2
:=
{
latitude
:=
435511100
,
longitude
:=
102988040
,
elevation
:=
'0000'O
};
}
// End of group camUseCase6SyncLocation
...
...
@@ -2644,7 +2674,7 @@ module ItsRSUsSimulator_Pics {
group
mapemZone1
{
modulepar
IntersectionReferenceID
PICS_Z1_M1_SL_IDX
:=
{
region
:=
1
,
region
:=
3
,
id
:=
13001
}
// End of PICS_Z1_M1_SL_IDX
...
...
@@ -2800,7 +2830,7 @@ module ItsRSUsSimulator_Pics {
group
mapemZone2
{
modulepar
IntersectionReferenceID
PICS_Z2_M1_SL_IDX
:=
{
region
:=
1
,
region
:=
3
,
id
:=
23001
}
// End of PICS_Z2_M1_SL_IDX
...
...
@@ -2956,7 +2986,7 @@ module ItsRSUsSimulator_Pics {
group
mapemZone3
{
modulepar
IntersectionReferenceID
PICS_Z3_M1_SL_IDX
:=
{
region
:=
1
,
region
:=
3
,
id
:=
33001
}
// End of PICS_Z3_M1_SL_IDX
...
...
@@ -3112,7 +3142,7 @@ module ItsRSUsSimulator_Pics {
group
mapemZone4
{
modulepar
IntersectionReferenceID
PICS_Z4_M1_SL_IDX
:=
{
region
:=
1
,
region
:=
3
,
id
:=
43001
}
// End of PICS_Z4_M1_SL_IDX
...
...
@@ -3268,7 +3298,7 @@ module ItsRSUsSimulator_Pics {
group
mapemZone5
{
modulepar
IntersectionReferenceID
PICS_Z5_M1_SL_IDX
:=
{
region
:=
1
,
region
:=
3
,
id
:=
53001
}
// End of PICS_Z5_M1_SL_IDX
...
...
@@ -3424,7 +3454,7 @@ module ItsRSUsSimulator_Pics {
group
mapemZone6
{
modulepar
IntersectionReferenceID
PICS_Z6_M1_SL_IDX
:=
{
region
:=
1
,
region
:=
3
,
id
:=
63001
}
// End of PICS_Z6_M1_SL_IDX
...
...
@@ -4182,14 +4212,14 @@ module ItsRSUsSimulator_Pics {
modulepar
UInt32
PICS_IVIM_ITS_AID
:=
139
;
modulepar
PosConfidenceEllipse
PICS_IVIM_POSITION_CONFIDENCE_ELLIPSE
:=
{
semiMajorConfidence
:=
SemiAxisLength_oneCentimeter_
,
semiMinorConfidence
:=
SemiAxisLength_oneCentimeter_
,
semiMajorOrientation
:=
HeadingValue_wgs84North_
semiMajorConfidence
:=
100
,
semiMinorConfidence
:=
100
,
semiMajorOrientation
:=
0
}
// End of PICS_DENM_POSITION_CONFIDENCE_ELLIPSE
modulepar
Altitude
PICS_IVIM_ALTITUDE
:=
{
altitudeValue
:=
AltitudeValue_referenceEllipsoidSurface_
,
altitudeConfidence
:=
unavailable
altitudeConfidence
:=
alt_000_01
}
// End of PICS_DENM_ALTITUDE
}
// End of group ivimCommonParams
...
...
@@ -4277,7 +4307,7 @@ module ItsRSUsSimulator_Pics {
modulepar
IvimParm
PICS_Z1_I1_POS1
:=
{
provider
:=
{
countryCode
:=
'
00
00000001'B
,
countryCode
:=
'
11
00000001'B
,
providerIdentifier
:=
13
},
iviIdentificationNumber
:=
12
,
...
...
@@ -5616,6 +5646,64 @@ module ItsRSUsSimulator_Pics {
}
// End of group ivimEvents
group
poimEvents
{
group
poimCommonParams
{
modulepar
BtpPortId
PICS_EVCSN_BTP_DESTINATION_PORT
:=
2010
;
modulepar
BtpPortId
PICS_EVCSN_BTP_SOURCE_PORT
:=
0
;
modulepar
UInt32
PICS_EVCSN_ITS_AID
:=
100
;
// FIXME Find the correct value
modulepar
ItsChargingSpotDataElements
PICS_CHARGING_SPOT_DATA_01
:=
{
type_
:=
ChargingSpotType_standardOrFastChargeMode3_
,
evEquipmentID
:=
omit
,
typeOfReceptacle
:=
'000'B
,
energyAvailability
:=
"all"
,
parkingPlacesData
:=
omit
}
// End of PICS_CHARGING_SPOT_DATA_01
}
// End of group poimCommonParams
group
poimZone1
{
modulepar
ReferencePosition
PICS_POI_LOCATION_01
:=
{
latitude
:=
435582150
,
longitude
:=
103065170
,
positionConfidenceEllipse
:=
{
semiMajorConfidence
:=
100
,
semiMinorConfidence
:=
100
,
semiMajorOrientation
:=
0
},
altitude
:=
{
altitudeValue
:=
AltitudeValue_referenceEllipsoidSurface_
,
altitudeConfidence
:=
alt_000_01
}
}
// End of PICS_POI_LOCATION_01
modulepar
ItsChargingStationData
PICS_ITS_CHARGING
:=
{
chargingStationID
:=
9876
,
utilityDistributorId
:=
omit
,
providerID
:=
omit
,
chargingStationLocation
:=
PICS_POI_LOCATION_01
,
address_
:=
omit
,
phoneNumber
:=
omit
,
accessibility
:=
"open"
,
digitalMap
:=
omit
,
openingDaysHours
:=
"full"
,
pricing
:=
"2.00"
,
bookingContactInfo
:=
omit
,
payment
:=
omit
,
chargingSpotsAvailable
:=
{
PICS_CHARGING_SPOT_DATA_01
}
}
}
modulepar
PoimParmListRsu
PICS_EVCSN_PARMS_RSUs
:=
{
PICS_ITS_CHARGING
// RSU #1
}
}
// End of group poimEvents
group
ssemEvents
{
group
ssemCommonParams
{
...
...
@@ -5676,6 +5764,11 @@ module ItsRSUsSimulator_Pics {
*/
modulepar
float
PICS_IVIM_FREQUENCY
:=
1.0
;
/**
* @desc EVCSN frequency timer
*/
modulepar
float
PICS_EVCSN_FREQUENCY
:=
1.0
;
}
// End of group generationFrequencies
}
// End of module ItsRSUsSimulator_Pics
\ No newline at end of file
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Pixits.ttcn
View file @
4da49c99
...
...
@@ -27,18 +27,18 @@ module ItsRSUsSimulator_Pixits {
/**
* @desc Indicate which Use Case to simulate
* @remark UC1 (DENM only): PX_ETSI_USE_CASE_ID := 1
* UC3 (TLM MAPEM/SPATEM): PX_ETSI_USE_CASE_ID := 3 !! PX_RSU_ID 2
* UC5 (IVIM only): PX_ETSI_USE_CASE_ID := 5 !! PX_RSU_ID 2
* UC6 (CAM only): PX_ETSI_USE_CASE_ID := 6 !! PX_RSU_ID 2
* UC7 (CAM only): PX_ETSI_USE_CASE_ID := 7 !! PX_RSU_ID 2
* UC9 (CAM only): PX_ETSI_USE_CASE_ID := 9 !! PX_RSU_ID 5
* UC3 (TLM MAPEM/SPATEM): PX_ETSI_USE_CASE_ID := 3
* UC5 (IVIM only): PX_ETSI_USE_CASE_ID := 5
* UC6 (CAM only): PX_ETSI_USE_CASE_ID := 6
* UC7 (CAM only): PX_ETSI_USE_CASE_ID := 7
* UC8 (EVCSN only): PX_ETSI_USE_CASE_ID := 8
* UC9 (CAM only): PX_ETSI_USE_CASE_ID := 9
* @remark LibItsGeoNetworking_Pixits.PX_GN_UPPER_LAYER := e_btpB
*/
modulepar
integer
PX_ETSI_USE_CASE_ID
:=
1
;
modulepar
integer
PX_ETSI_USE_CASE_ID
:=
6
;
/**
* @desc Indicate which zone to simulate
* @remark Used only for DENM
*/
modulepar
integer
PX_ETSI_ZONE_ID
:=
1
;
...
...
@@ -46,7 +46,7 @@ module ItsRSUsSimulator_Pixits {
modulepar
boolean
PICS_GENERATE_CAM
:=
true
;
modulepar
boolean
PICS_GENERATE_DENM
:=
tru
e
;
modulepar
boolean
PICS_GENERATE_DENM
:=
fals
e
;
modulepar
boolean
PICS_GENERATE_IVIM
:=
false
;
...
...
@@ -54,6 +54,8 @@ module ItsRSUsSimulator_Pixits {
modulepar
boolean
PICS_GENERATE_SPATEM
:=
false
;
modulepar
boolean
PICS_GENERATE_SSEM
:=
true
;
modulepar
boolean
PICS_GENERATE_SSEM
:=
false
;
modulepar
boolean
PICS_GENERATE_EVCSN
:=
false
;
}
// End of module ItsRSUsSimulator_Pixits
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Templates.ttcn
View file @
4da49c99
...
...
@@ -11,6 +11,7 @@ module ItsRSUsSimulator_Templates {
import
from
SPATEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
IVIM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
IVI
language
"ASN.1:1997"
all
;
import
from
EVCSN_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
SSEM_PDU_Descriptions
language
"ASN.1:1997"
all
;
import
from
DSRC
language
"ASN.1:1997"
all
;
...
...
@@ -52,6 +53,7 @@ module ItsRSUsSimulator_Templates {
in
template
(
omit
)
MAPEM
p_mapem
:=
omit
,
in
template
(
omit
)
SPATEMs
p_spatems
:=
omit
,
in
template
(
omit
)
IVIM
p_ivim
:=
omit
,
in
template
(
omit
)
EvcsnPdu
p_evcsn
:=
omit
,
in
template
(
omit
)
SSEM
p_ssem
:=
omit
)
:=
{
beacon
:=
p_beacon
,
...
...
@@ -59,7 +61,9 @@ module ItsRSUsSimulator_Templates {
denms
:=
p_denms
,
mapem
:=
p_mapem
,
spatems
:=
p_spatems
,
ivim
:=
p_ivim
ivim
:=
p_ivim
,
evcsn
:=
p_evcsn
,
ssem
:=
p_ssem
}
// End of template RsuMessagesValue
group
geoNetworkingTemplates
{
...
...
@@ -190,7 +194,7 @@ module ItsRSUsSimulator_Templates {
template
(
present
)
GnNonSecuredPacket
mw_geoNwShbPacketWithNextHeader_cam
(
in
template
(
present
)
LongPosVector
p_sourceLongPosVec
:=
?
,
in
template
(
present
)
UInt8
p_hopLimit
:=
?
,
in
template
(
value
)
NextHeader
p_nextHeader
,
in
template
(
present
)
NextHeader
p_nextHeader
,
in
template
(
present
)
CAM
p_cam
:=
?
)
modifies
mw_geoNwShbPacket
:=
{
payload
:=
{
...
...
@@ -371,7 +375,49 @@ module ItsRSUsSimulator_Templates {
ivi
:=
p_ivi
}
}
// End of group ivimTemplates
}
// End of ivimTemplates
group
evcsnTemplates
{
template
(
value
)
EvcsnPdu
m_evcsnParm
(
in
template
(
value
)
StationID
p_stationID
,
in
template
(
value
)
EVChargingSpotNotificationPOIMessage
p_evcsn
)
:=
{
header
:=
{
protocolVersion
:=
ItsPduHeader_protocolVersion_currentVersion_
,
messageID
:=
7
,
//ItsPduHeader_messageID_evcsn_,
stationID
:=
p_stationID
},
evcsn
:=
p_evcsn
}
template
(
value
)
EVChargingSpotNotificationPOIMessage
m_evcsn
(
in
template
(
value
)
ItsPOIHeader
p_poiHeader
,
in
template
(
value
)
ItsEVCSNData
p_evcsnData
)
:=
{
poiHeader
:=
p_poiHeader
,
evcsnData
:=
p_evcsnData
}
template
(
value
)
ItsPOIHeader
m_itsPOIHeader
(
in
template
(
value
)
POIType
p_poiType
:=
1
,
in
template
(
value
)
TimestampIts
p_timeStamp
,
in
template
(
value
)
boolean
p_relayCapable
:=
true
)
:=
{
poiType
:=
p_poiType
,
timeStamp
:=
p_timeStamp
,
relayCapable
:=
p_relayCapable
}
template
(
value
)
ItsEVCSNData
m_itsEVCSNData
(
in
template
(
value
)
NumberStations
p_totalNumberOfStations
:=
1
,
in
template
(
value
)
ItsChargingStationDatas
p_itsChargingStationDatas
)
:=
{
totalNumberOfStations
:=
p_totalNumberOfStations
,
chargingStationsData
:=
p_itsChargingStationDatas
}
}
// End of group evcsnTemplates
group
denmTemplates
{
...
...
@@ -444,6 +490,7 @@ module ItsRSUsSimulator_Templates {
roadType
:=
omit
}
// End of field locationContainer
}
// End of template m_denmParm
}
// End of group denmTemplates
}
// End of module ItsRSUsSimulator_Templates
\ No newline at end of file
ttcn/AtsRSUsSimulator/ItsRSUsSimulator_TestCases.ttcn
View file @
4da49c99
...
...
@@ -66,9 +66,13 @@ module ItsRSUsSimulator_TestCases {
if
(
ispresent
(
vc_rsuMessagesValueList
[
vc_rsu_id
].
ivim
))
{
tc_ivim
.
start
;
}
if
(
ispresent
(
vc_rsuMessagesValueList
[
vc_rsu_id
].
evcsn
))
{
tc_evcsn
.
start
;
}
geoNetworkingPort
.
clear
;
alt
{
[]
geoNetworkingPort
.
receive
(
/*
[] geoNetworkingPort.receive(
mw_geoNwInd(
mw_geoNwPdu(
mw_geoNwTsbPacketWithNextHeader_srem(
...
...
@@ -80,7 +84,7 @@ module ItsRSUsSimulator_TestCases {
f_processSrem(v_gnInd.msgIn);
repeat;
}
/*
[] geoNetworkingPort.receive(
[] geoNetworkingPort.receive(
mw_geoNwInd(
mw_geoNwPdu(
mw_geoNwTsbPacketWithNextHeader_denm(
...
...
@@ -91,12 +95,12 @@ module ItsRSUsSimulator_TestCases {
//log("*** " & testcasename() & ": DEBUG: Processing DENM ***");
// Nothing to do, just for logging purposes
repeat;
}
*/
}
[] geoNetworkingPort.receive(mw_geoNwInd(?)) -> value v_gnInd { // Receive a message
//log("*** " & testcasename() & ": DEBUG: Recieving unsollicited message ***");
// Nothing to do, just for logging purposes
repeat;
}
}
*/
/*[] cfPort.receive(CfEvent:?) -> value v_cfEvent {
//log("*** " & testcasename() & ": DEBUG: Configuration port command:", v_cfEvent, " ***");
if (f_process_cf_event(v_cfEvent) == true) {
...
...
@@ -149,6 +153,13 @@ module ItsRSUsSimulator_TestCases {
tc_ivim
.
start
;
repeat
;
}
[
vc_evcsn
==
true
]
tc_evcsn
.
timeout
{
//log("*** " & testcasename() & ": DEBUG: Processing EVCSN ***");
f_prepare_evcsn
(
v_payload
);
f_send
(
v_payload
,
PICS_EVCSN_ITS_AID
);
tc_evcsn
.
start
;
repeat
;
}
}
// End of 'alt' statement
f_selfOrClientSyncAndVerdictTestBody
(
c_tbDone
,
e_success
);
...
...
@@ -169,7 +180,7 @@ module ItsRSUsSimulator_TestCases {
*/
testcase
TC_RSUSIMU_BV_02
()
runs
on
ItsRSUsSimulator
system
ItsRSUsSimulatorSystem
{
// Local variables
const
RectangularRegions
c_detectionArea
:=
{
PICS_UC6_CAM_DETECTION_AREA
};
const
RectangularRegions
c_detectionArea
:=
{
PICS_UC6_CAM_DETECTION_AREA
_Z2
};
// PICS_UC6_CAM_DETECTION_AREA_Z1
var
VehiclesSimulator
v_vehicles
:=
{};
var
integer
v_stationID
;
var
boolean
v_isInDetectionZone
;
...
...
@@ -180,7 +191,8 @@ module ItsRSUsSimulator_TestCases {
var
CfEvent
v_cfEvent
;