Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
ATS
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TST
ATS
Commits
5cde9288
Commit
5cde9288
authored
5 years ago
by
Miguel Angel Reina Ortega
Browse files
Options
Downloads
Patches
Plain Diff
Sending the "AE-ID_changed" acPrimitive only when MQTT is used
Signed-off-by:
reinaortega
<
miguelangel.reinaortega@etsi.org
>
parent
9a19270f
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
LibOneM2M/OneM2M_Functions.ttcn
+96
-20
96 additions, 20 deletions
LibOneM2M/OneM2M_Functions.ttcn
with
96 additions
and
20 deletions
LibOneM2M/OneM2M_Functions.ttcn
+
96
−
20
View file @
5cde9288
...
@@ -140,6 +140,7 @@ module OneM2M_Functions {
...
@@ -140,6 +140,7 @@ module OneM2M_Functions {
// Variables
// Variables
var
charstring
v_binding
;
var
charstring
v_binding
;
var
charstring
v_binding_in
;
var
charstring
v_host
;
var
charstring
v_host
;
//Initialization of component variables
//Initialization of component variables
...
@@ -149,6 +150,7 @@ module OneM2M_Functions {
...
@@ -149,6 +150,7 @@ module OneM2M_Functions {
// Map
// Map
map
(
self
:
mcaPort
,
system
:
mcaPort
)
param
(
PX_TS_AE1
.
mcaPort
);
map
(
self
:
mcaPort
,
system
:
mcaPort
)
param
(
PX_TS_AE1
.
mcaPort
);
map
(
self
:
mcaPortIn
,
system
:
mcaPortIn
)
param
(
PX_TS_AE1
.
mcaPortIn
);
map
(
self
:
acPort
,
system
:
acPort
);
map
(
self
:
acPort
,
system
:
acPort
);
if
(
PX_UT_IMPLEMENTED
)
{
if
(
PX_UT_IMPLEMENTED
)
{
map
(
self
:
utPort
,
system
:
utPort
)
param
(
PX_TS_UT
);
map
(
self
:
utPort
,
system
:
utPort
)
param
(
PX_TS_UT
);
...
@@ -167,8 +169,19 @@ module OneM2M_Functions {
...
@@ -167,8 +169,19 @@ module OneM2M_Functions {
v_binding
:=
"WSCK"
;
v_binding
:=
"WSCK"
;
v_host
:=
PX_TS_AE1
.
mcaPort
.
binding
.
wsBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_AE1
.
mcaPort
.
binding
.
wsBindingDesc
.
bindingDesc
.
remotePort
);
v_host
:=
PX_TS_AE1
.
mcaPort
.
binding
.
wsBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_AE1
.
mcaPort
.
binding
.
wsBindingDesc
.
bindingDesc
.
remotePort
);
}
}
if
(
ischosen
(
PX_TS_AE1
.
mcaPortIn
.
binding
.
httpBindingDesc
))
{
v_binding_in
:=
"HTTP"
;
}
else
if
(
ischosen
(
PX_TS_AE1
.
mcaPortIn
.
binding
.
coapBindingDesc
))
{
v_binding_in
:=
"COAP"
;
}
else
if
(
ischosen
(
PX_TS_AE1
.
mcaPortIn
.
binding
.
mqttBindingDesc
))
{
v_binding_in
:=
"MQTT"
;
}
else
{
v_binding_in
:=
"WSCK"
;
}
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_port
))]
:=
{
mcaPort
,
v_host
,
v_binding
,
c_serializationLabel
[
enum2int
(
PX_TS_AE1
.
mcaPort
.
serialization
)]
};
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_port
))]
:=
{
mcaPort
,
v_host
,
v_binding
,
c_serializationLabel
[
enum2int
(
PX_TS_AE1
.
mcaPort
.
serialization
)]
};
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_in_port
))]
:=
{
mcaPortIn
,
v_host
,
v_binding_in
,
c_serializationLabel
[
enum2int
(
PX_TS_AE1
.
mcaPortIn
.
serialization
)]
};
activate
(
a_default
());
activate
(
a_default
());
vc_aeSimu
:=
activate
(
a_cse_cf02_ae1
());
vc_aeSimu
:=
activate
(
a_cse_cf02_ae1
());
...
@@ -356,6 +369,7 @@ module OneM2M_Functions {
...
@@ -356,6 +369,7 @@ module OneM2M_Functions {
// Variables
// Variables
var
charstring
v_binding
;
var
charstring
v_binding
;
var
charstring
v_binding_in
;
var
PrimitiveContent
v_cSEBaseResource
;
var
PrimitiveContent
v_cSEBaseResource
;
var
charstring
v_host
;
var
charstring
v_host
;
...
@@ -369,24 +383,36 @@ module OneM2M_Functions {
...
@@ -369,24 +383,36 @@ module OneM2M_Functions {
vc_cSEBaseIndex
:=
f_setLocalResource
(
v_cSEBaseResource
,
int5
,
-
1
);
vc_cSEBaseIndex
:=
f_setLocalResource
(
v_cSEBaseResource
,
int5
,
-
1
);
// Map
// Map
map
(
self
:
mcaPort
,
system
:
mcaPort
)
param
(
PX_TS_CSE1
.
mcaPort
);
//TODO To be consistent, we should use mcaPortIn for AE testing
map
(
self
:
mcaPortIn
,
system
:
mcaPortIn
)
param
(
PX_TS_CSE1
.
mcaPortIn
);
//TODO To be consistent, we should use mcaPortIn for AE testing
map
(
self
:
mcaPortIn
,
system
:
mcaPortIn
)
param
(
PX_TS_CSE1
.
mcaPortIn
);
//TODO To be consistent, we should use mcaPortIn for AE testing
map
(
self
:
acPort
,
system
:
acPort
);
map
(
self
:
acPort
,
system
:
acPort
);
if
(
ischosen
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
httpBindingDesc
))
{
if
(
ischosen
(
PX_TS_CSE1
.
mcaPort
.
binding
.
httpBindingDesc
))
{
v_binding
:=
"HTTP"
;
v_binding
:=
"HTTP"
;
v_host
:=
PX_TS_CSE1
.
mcaPort
In
.
binding
.
httpBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
httpBindingDesc
.
bindingDesc
.
remotePort
);
v_host
:=
PX_TS_CSE1
.
mcaPort
.
binding
.
httpBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
.
binding
.
httpBindingDesc
.
bindingDesc
.
remotePort
);
}
else
if
(
ischosen
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
coapBindingDesc
))
{
}
else
if
(
ischosen
(
PX_TS_CSE1
.
mcaPort
.
binding
.
coapBindingDesc
))
{
v_binding
:=
"COAP"
;
v_binding
:=
"COAP"
;
v_host
:=
PX_TS_CSE1
.
mcaPort
In
.
binding
.
coapBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
coapBindingDesc
.
bindingDesc
.
remotePort
);
v_host
:=
PX_TS_CSE1
.
mcaPort
.
binding
.
coapBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
.
binding
.
coapBindingDesc
.
bindingDesc
.
remotePort
);
}
else
if
(
ischosen
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
mqttBindingDesc
))
{
}
else
if
(
ischosen
(
PX_TS_CSE1
.
mcaPort
.
binding
.
mqttBindingDesc
))
{
v_binding
:=
"MQTT"
;
v_binding
:=
"MQTT"
;
v_host
:=
PX_TS_CSE1
.
mcaPort
In
.
binding
.
mqttBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
mqttBindingDesc
.
bindingDesc
.
remotePort
);
v_host
:=
PX_TS_CSE1
.
mcaPort
.
binding
.
mqttBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
.
binding
.
mqttBindingDesc
.
bindingDesc
.
remotePort
);
}
else
{
}
else
{
v_binding
:=
"WSCK"
;
v_binding
:=
"WSCK"
;
v_host
:=
PX_TS_CSE1
.
mcaPort
In
.
binding
.
wsBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
In
.
binding
.
wsBindingDesc
.
bindingDesc
.
remotePort
);
v_host
:=
PX_TS_CSE1
.
mcaPort
.
binding
.
wsBindingDesc
.
bindingDesc
.
sutAddress
&
":"
&
int2str
(
PX_TS_CSE1
.
mcaPort
.
binding
.
wsBindingDesc
.
bindingDesc
.
remotePort
);
}
}
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_in_port
))]
:=
{
mcaPortIn
,
v_host
,
v_binding
,
c_serializationLabel
[
enum2int
(
PX_TS_CSE1
.
mcaPortIn
.
serialization
)]
};
if
(
ischosen
(
PX_TS_CSE1
.
mcaPortIn
.
binding
.
httpBindingDesc
))
{
v_binding_in
:=
"HTTP"
;
}
else
if
(
ischosen
(
PX_TS_CSE1
.
mcaPortIn
.
binding
.
coapBindingDesc
))
{
v_binding_in
:=
"COAP"
;
}
else
if
(
ischosen
(
PX_TS_CSE1
.
mcaPortIn
.
binding
.
mqttBindingDesc
))
{
v_binding_in
:=
"MQTT"
;
}
else
{
v_binding_in
:=
"WSCK"
;
}
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_port
))]
:=
{
mcaPort
,
v_host
,
v_binding
,
c_serializationLabel
[
enum2int
(
PX_TS_CSE1
.
mcaPort
.
serialization
)]
};
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_in_port
))]
:=
{
mcaPortIn
,
v_host
,
v_binding_in
,
c_serializationLabel
[
enum2int
(
PX_TS_CSE1
.
mcaPortIn
.
serialization
)]
};
if
(
PX_UT_IMPLEMENTED
)
{
if
(
PX_UT_IMPLEMENTED
)
{
map
(
self
:
utPort
,
system
:
utPort
)
param
(
PX_TS_UT
);
map
(
self
:
utPort
,
system
:
utPort
)
param
(
PX_TS_UT
);
...
@@ -1007,9 +1033,7 @@ module OneM2M_Functions {
...
@@ -1007,9 +1033,7 @@ module OneM2M_Functions {
vc_aeAuxIndex
:=
f_setResource
(
v_response
.
primitive
.
responsePrimitive
.
primitiveContent
,
int2
);
vc_aeAuxIndex
:=
f_setResource
(
v_response
.
primitive
.
responsePrimitive
.
primitiveContent
,
int2
);
if
(
ispresent
(
v_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)){
if
(
ispresent
(
v_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)){
f_sendAcPrimitive
(
"AE-ID_changed"
,
oct2char
(
unichar2oct
(
v_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)));
f_sendAcPrimitive
(
"AE-ID_changed"
,
vc_aeAuxIndex
);
}
else
{
f_sendAcPrimitive
(
"AE-ID_changed"
,
"0"
);
}
}
}
}
}
}
...
@@ -1073,10 +1097,8 @@ module OneM2M_Functions {
...
@@ -1073,10 +1097,8 @@ module OneM2M_Functions {
vc_aeAuxIndex
:=
f_setResource
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
,
int2
);
vc_aeAuxIndex
:=
f_setResource
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
,
int2
);
if
(
ispresent
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)){
if
(
ispresent
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)){
f_sendAcPrimitive
(
"AE-ID_changed"
,
oct2char
(
unichar2oct
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)));
f_sendAcPrimitive
(
"AE-ID_changed"
,
vc_aeAuxIndex
);
}
else
{
}
f_sendAcPrimitive
(
"AE-ID_changed"
,
"0"
);
}
}
}
}
}
[]
mcaPort
.
receive
(
mw_response
(
mw_responsePrimitiveKO
))
[]
mcaPort
.
receive
(
mw_response
(
mw_responsePrimitiveKO
))
...
@@ -1397,6 +1419,9 @@ module OneM2M_Functions {
...
@@ -1397,6 +1419,9 @@ module OneM2M_Functions {
v_resourceIndex
:=
f_setResource
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
,
p_resourceType
,
p_parentIndex
);
v_resourceIndex
:=
f_setResource
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
,
p_resourceType
,
p_parentIndex
);
if
(
p_resourceType
==
int2
)
{
if
(
p_resourceType
==
int2
)
{
vc_aeAuxIndex
:=
v_resourceIndex
;
vc_aeAuxIndex
:=
v_resourceIndex
;
if
(
ispresent
(
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
aE
.
aE_ID
)){
f_sendAcPrimitive
(
"AE-ID_changed"
,
vc_aeAuxIndex
);
}
}
else
if
(
p_resourceType
==
int9
)
{
}
else
if
(
p_resourceType
==
int9
)
{
//Check that group members are correctly in the group
//Check that group members are correctly in the group
if
(
not
(
match
(
v_request
.
primitiveContent
.
group_
.
memberIDs
,
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
group_
.
memberIDs
)))
{
if
(
not
(
match
(
v_request
.
primitiveContent
.
group_
.
memberIDs
,
vc_response
.
primitive
.
responsePrimitive
.
primitiveContent
.
group_
.
memberIDs
)))
{
...
@@ -5469,12 +5494,39 @@ module OneM2M_Functions {
...
@@ -5469,12 +5494,39 @@ module OneM2M_Functions {
* @param data Corresponding information for the correct execution of the given action
* @param data Corresponding information for the correct execution of the given action
* @verdict
* @verdict
*/
*/
function
f_sendAcPrimitive
(
in
charstring
p_event
,
in
charstring
p_data
)
runs
on
Tester
{
function
f_sendAcPrimitive
(
in
charstring
p_event
,
in
integer
p_aeIndex
)
runs
on
Tester
{
var
XSD
.
ID
v_aeResourceAddress
;
var
charstring
v_spRelativeAeIdForMqtt
;
select
(
p_event
)
{
var
charstring
v_data
:=
""
&
p_data
;
// clear encoding rules (ttwb issue ?)
acPort
.
send
(
AcRequestPrimitive
:
{
p_event
,
{
charstring
:=
v_data
}});
case
(
"AE-ID_changed"
)
{
//Calculate the SP-Relative-AE-ID following format defined in TS-0010 MQTT
v_aeResourceAddress
:=
f_getResourceAddress
(
p_aeIndex
,
e_nonHierarchical
,
e_spRelative
);
if
(
vc_resourcesList
[
p_aeIndex
].
resource
.
aE
.
aE_ID
[
0
]
==
"S"
)
{
v_spRelativeAeIdForMqtt
:=
f_resourceIdCleaner
(
v_aeResourceAddress
);
}
else
{
v_spRelativeAeIdForMqtt
:=
f_getSpRelativeAeIdForMqtt
(
v_aeResourceAddress
);
}
if
((
vc_config
==
e_cf01
)
or
((
vc_config
==
e_cf02
)
and
(
vc_testSystemRole
==
e_ae
))
or
(
vc_config
==
e_cf03
))
{
if
(
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_port
))].
myProtocolBinding
==
"MQTT"
)
{
acPort
.
send
(
AcRequestPrimitive
:
{
p_event
,
{
charstring
:=
v_spRelativeAeIdForMqtt
}});
}
if
(
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mca_in_port
))].
myProtocolBinding
==
"MQTT"
)
{
acPort
.
send
(
AcRequestPrimitive
:
{
p_event
,
{
charstring
:=
v_spRelativeAeIdForMqtt
}});
}
}
if
(((
vc_config
==
e_cf02
)
and
(
vc_testSystemRole
==
e_cse
))
or
(
vc_config
==
e_cf04
))
{
if
(
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mcc_port
))].
myProtocolBinding
==
"MQTT"
)
{
acPort
.
send
(
AcRequestPrimitive
:
{
p_event
,
{
charstring
:=
v_spRelativeAeIdForMqtt
}});
}
if
(
vc_myInterfaces
[
enum2int
(
valueof
(
InterfaceIds
:
e_mcc_in_port
))].
myProtocolBinding
==
"MQTT"
)
{
acPort
.
send
(
AcRequestPrimitive
:
{
p_event
,
{
charstring
:=
v_spRelativeAeIdForMqtt
}});
}
}
}
}
}
}
}
//end of group AcFunctions
}
//end of group AcFunctions
...
@@ -5671,6 +5723,30 @@ module OneM2M_Functions {
...
@@ -5671,6 +5723,30 @@ module OneM2M_Functions {
//log("result: " & result);
//log("result: " & result);
return
result
;
return
result
;
}
}
/**
* @desc Get the SP-Relative-AE-ID for MQTT
* @param p_aeResourceAddress AE resource address in SP-Relative-Resource-ID format
* @return SP-Relative-AE-ID for MQTT
*/
function
f_getSpRelativeAeIdForMqtt
(
in
XSD
.
ID
p_aeResourceAddress
)
return
charstring
{
var
integer
v_length
:=
lengthof
(
p_aeResourceAddress
);
var
integer
i
;
var
XSD
.
ID
v_aeId
:=
p_aeResourceAddress
;
var
charstring
v_result
;
//log("p_resourceID: " & p_resourceID);
for
(
i
:=
v_length
-
1
;
i
>=
0
;
i
:=
i
-
1
){
if
(
p_aeResourceAddress
[
i
]
==
"/"
){
//log("result: " & result);
v_aeId
[
i
]
:=
":"
;
break
;
}
}
v_result
:=
oct2char
(
unichar2oct
(
f_resourceIdCleaner
(
v_aeId
)));
//log("result: " & result);
return
v_result
;
}
/**
/**
* @desc Replace the CSE-Name by the shortcut ("-") in a structured resource id format
* @desc Replace the CSE-Name by the shortcut ("-") in a structured resource id format
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment