diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 9a4df0fff7886f64918d3f43f51ec695d3bc6939..eb9a5c342063df63f9e545b75409ce979e1f477e 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1015,6 +1015,18 @@ module OneM2M_Functions { } + /** + * @desc Sending of sync point + */ + function f_sendSyncPoint(SyncPoints p_syncPoint, in Tester p_component) runs on Tester { + + f_connectInfoPort(p_component); + + infoPort.send(p_syncPoint); + + f_disconnectInfoPort(p_component); + } + }//end of group sendFunctions }// end of group InfoPortCommunication @@ -1282,18 +1294,21 @@ module OneM2M_Functions { if (PX_RUN_POSTAMBLE) { - if(vc_config == e_cf02) { - if(vc_cse1.alive) { - f_cse_postamble_cse1(); - } - } - if(vc_auxiliaryAe2Up) { if (vc_ae2.alive) { f_cse_postamble_aeSimu(vc_ae2); } } + if(vc_config == e_cf02) { + if(vc_cse1.running) { + vc_cse1.stop; + } + if(vc_cse1.alive) { + vc_cse1.start(f_cse_defaultHandler()); + } + } + for(i := lengthof(vc_resourcesIndexToBeDeleted) -1; i >=0; i := i - 1) { v_resourceAddress := f_getResourceAddress(vc_resourcesIndexToBeDeleted[i]); @@ -1320,6 +1335,19 @@ module OneM2M_Functions { } } + + if(vc_config == e_cf02) { + if(vc_cse1.running) { + f_sendSyncPoint(e_done, vc_cse1); + } + vc_cse1.done; + } + + if(vc_config == e_cf02) { + if(vc_cse1.alive) { + f_cse_postamble_cse1(); + } + } } } @@ -2618,6 +2646,25 @@ module OneM2M_Functions { }// end f_cse_createResourceHandler + /** + * @desc Activate default for CseSimu + */ + function f_cse_defaultHandler() runs on CseSimu { + + //Activate defaults when running on a PTC + f_cse_activateDefaults_cse1(); + + tc_ac.start; + alt { + [] infoPort.receive(OneM2M_TypesAndValues.SyncPoints:e_done) { + log(__SCOPE__, "Peer component done") + } + []tc_ac.timeout { + } + } + + }// end f_cse_defaultHandler + /** * @desc Creation of a local resource * @param p_resourceType Resource type of the resource to be created @@ -2985,7 +3032,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); - v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(f_getCompletePoA(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(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))].myHost))), vc_cSEBaseIndex, int16); vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn index 3a84774a12a1a488f9f0faa67cca883a9d50f50e..4a404f7c81c47547b0a5b9abb7963e605d3e300f 100644 --- a/LibOneM2M/OneM2M_Ports.ttcn +++ b/LibOneM2M/OneM2M_Ports.ttcn @@ -50,9 +50,9 @@ module OneM2M_Ports { */ type port InfoPort message { in - RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer, XSD.ID; + RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer, XSD.ID, SyncPoints; out - RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer, XSD.ID; + RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer, XSD.ID, SyncPoints; } diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index 0580e601068bfaf76774ae42c40ce223cbfab023..9aaf4883acca6dd1d34f8cfe222995a34dc72e1f 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -3902,6 +3902,11 @@ group InvalidTypes { group OtherTypes { + type enumerated SyncPoints { + e_done (0), + e_error (1) + } + type enumerated Configurations { e_cf01, e_cf02,