Skip to content
Snippets Groups Projects
Commit e5ddded4 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Adding support to change MQTT topic for sending messages before registration if needed

parent c49e3f36
No related branches found
No related tags found
2 merge requests!63Merge Release4-onwards into Release4,!62Merge Release2-onwards into Release2
......@@ -1051,6 +1051,7 @@ module OneM2M_Functions {
f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive);
vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2);
vc_componentRegistered := true;
if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){
f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
......@@ -1107,6 +1108,7 @@ module OneM2M_Functions {
if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.aE)) {
vc_aeIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int2);
vc_componentRegistered := true;
if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){
f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
......@@ -1428,6 +1430,7 @@ module OneM2M_Functions {
v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex);
if(p_resourceType == int2) {
vc_aeIndex := v_resourceIndex;
vc_componentRegistered := true;
if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){
f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
}
......@@ -2806,6 +2809,7 @@ module OneM2M_Functions {
setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive);
vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1);
vc_componentRegistered := true;
v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(f_getLocalPoA(PX_TS_CSE1.mccPortIn, "")))), vc_cSEBaseIndex, int16); // FIXME To be review not sure we have to use CSE1
vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex);
}
......@@ -2861,6 +2865,7 @@ module OneM2M_Functions {
f_send(e_mcc_in_port, m_response(v_response));
vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource(f_getLocalPoA(PX_TS_CSE1.mcaPortIn, "")))), int16, -1, true);
vc_componentRegistered := true;
v_resourceIndex := vc_remoteCseIndex;
v_remoteCSERegistered:=true;
tc_ac.start(10.0);
......@@ -3437,6 +3442,7 @@ module OneM2M_Functions {
v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex);
if(p_resourceType == int16) { //remoteCSE
vc_remoteCseIndex := v_resourceIndex;
vc_componentRegistered := true;
}
}
[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
......@@ -5651,6 +5657,12 @@ module OneM2M_Functions {
}
}
}
case ("MqttSetDefaultTopicToNotRegistration") {
acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_aeIndex)}});
}
case ("MqttSetDefaultTopicToRegistration") {
acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_aeIndex)}});
}
}
}
}//end of group AcFunctions
......@@ -5971,6 +5983,24 @@ module OneM2M_Functions {
if(ischosen(p_msgOut.primitive.requestPrimitive)){
p_msgOut.primitive.requestPrimitive.requestIdentifier := p_msgOut.primitive.requestPrimitive.requestIdentifier & f_rnd(1, 1000000);
}
if(not(vc_componentRegistered)) {
if(valueof(p_msgOut.protocolBinding) == "MQTT") {
if(ischosen(p_msgOut.primitive.requestPrimitive)) {
if(ispresent(p_msgOut.primitive.requestPrimitive.resourceType)) {
if(valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int2){
//Modify default topic to publish a non-registration message
f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1);
vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
return;
} //else {
//f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1);
//}
}
}
}
}
//TODO: Handle response to normal messages before CSE registration occurs
vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
}
......
......@@ -49,6 +49,7 @@ module OneM2M_TestSystem {
//About configuration of the component
var Configurations vc_config;
var TestSystemRole vc_testSystemRole;
var boolean vc_componentRegistered := false;
//Default behaviour
var default vc_aeSimu := null;
var default vc_cseSimu := null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment