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 { ...@@ -1051,6 +1051,7 @@ module OneM2M_Functions {
f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive); f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive);
vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2); vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2);
vc_componentRegistered := true;
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", vc_aeIndex); f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
...@@ -1107,6 +1108,7 @@ module OneM2M_Functions { ...@@ -1107,6 +1108,7 @@ module OneM2M_Functions {
if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.aE)) { if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.aE)) {
vc_aeIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int2); vc_aeIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int2);
vc_componentRegistered := true;
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", vc_aeIndex); f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
...@@ -1428,6 +1430,7 @@ module OneM2M_Functions { ...@@ -1428,6 +1430,7 @@ 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_aeIndex := v_resourceIndex; vc_aeIndex := v_resourceIndex;
vc_componentRegistered := true;
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", vc_aeIndex); f_sendAcPrimitive("AE-ID_changed", vc_aeIndex);
} }
...@@ -2806,6 +2809,7 @@ module OneM2M_Functions { ...@@ -2806,6 +2809,7 @@ module OneM2M_Functions {
setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly"); setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive); f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive);
vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1); 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 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); vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex);
} }
...@@ -2861,6 +2865,7 @@ module OneM2M_Functions { ...@@ -2861,6 +2865,7 @@ module OneM2M_Functions {
f_send(e_mcc_in_port, m_response(v_response)); 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_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_resourceIndex := vc_remoteCseIndex;
v_remoteCSERegistered:=true; v_remoteCSERegistered:=true;
tc_ac.start(10.0); tc_ac.start(10.0);
...@@ -3437,6 +3442,7 @@ module OneM2M_Functions { ...@@ -3437,6 +3442,7 @@ 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 == int16) { //remoteCSE if(p_resourceType == int16) { //remoteCSE
vc_remoteCseIndex := v_resourceIndex; vc_remoteCseIndex := v_resourceIndex;
vc_componentRegistered := true;
} }
} }
[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
...@@ -5651,6 +5657,12 @@ module OneM2M_Functions { ...@@ -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 }//end of group AcFunctions
...@@ -5971,6 +5983,24 @@ module OneM2M_Functions { ...@@ -5971,6 +5983,24 @@ module OneM2M_Functions {
if(ischosen(p_msgOut.primitive.requestPrimitive)){ if(ischosen(p_msgOut.primitive.requestPrimitive)){
p_msgOut.primitive.requestPrimitive.requestIdentifier := p_msgOut.primitive.requestPrimitive.requestIdentifier & f_rnd(1, 1000000); 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); vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut);
} }
......
...@@ -49,6 +49,7 @@ module OneM2M_TestSystem { ...@@ -49,6 +49,7 @@ module OneM2M_TestSystem {
//About configuration of the component //About configuration of the component
var Configurations vc_config; var Configurations vc_config;
var TestSystemRole vc_testSystemRole; var TestSystemRole vc_testSystemRole;
var boolean vc_componentRegistered := false;
//Default behaviour //Default behaviour
var default vc_aeSimu := null; var default vc_aeSimu := null;
var default vc_cseSimu := null; var default vc_cseSimu := null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment