diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 82fcaf906da5580052ff6c9c82db022638242a65..819b32ab929575b37606c587be7091308499e421 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2341,7 +2341,9 @@ module OneM2M_Functions { v_myResource.remoteCSE.trigger_Recipient_ID:= omit; }*/ v_myResource.remoteCSE.nodeLink := omit; - + v_myResource.remoteCSE.cSEBase := p_resource.remoteCSE.cSEBase; + v_myResource.remoteCSE.cSE_ID := p_resource.remoteCSE.cSE_ID; + v_myResource.remoteCSE.requestReachability := p_resource.remoteCSE.requestReachability; } } else if (p_resourceType == int10002 and ispresent (p_resource)) { //AE Annc if(ischosen(p_resource.aEAnnc)) { @@ -2403,18 +2405,22 @@ module OneM2M_Functions { if(ischosen (p_resource.accessControlPolicy)){ v_myResource.accessControlPolicy := valueof(p_resource.accessControlPolicy); - v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex); - v_myResource.accessControlPolicy.resourceType := p_resourceType; - v_myResource.accessControlPolicy.resourceID := "accessControlPolicy" & int2str(v_resourceIndex); - v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); - v_myResource.accessControlPolicy.creationTime := fx_generateTimestamp(); - if(not(ispresent(p_resource.accessControlPolicy.expirationTime))) { - v_myResource.accessControlPolicy.expirationTime := "20301231T012345"; - } - v_myResource.accessControlPolicy.lastModifiedTime := v_myResource.accessControlPolicy.creationTime; - v_myResource.accessControlPolicy.announceTo := omit; - v_myResource.accessControlPolicy.announcedAttribute := omit; - + if(not(ispresent(p_resource.accessControlPolicy.resourceName))) { + v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex); + } + + v_myResource.accessControlPolicy.resourceType := p_resourceType; + v_myResource.accessControlPolicy.resourceID := "accessControlPolicy" & int2str(v_resourceIndex); + v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.accessControlPolicy.creationTime := fx_generateTimestamp(); + if(not(ispresent(p_resource.accessControlPolicy.expirationTime))) { + v_myResource.accessControlPolicy.expirationTime := "20301231T012345"; + } + v_myResource.accessControlPolicy.lastModifiedTime := v_myResource.accessControlPolicy.creationTime; + v_myResource.accessControlPolicy.announceTo := omit; + v_myResource.accessControlPolicy.announcedAttribute := omit; + v_myResource.accessControlPolicy.privileges := p_resource.accessControlPolicy.privileges; + v_myResource.accessControlPolicy.selfPrivileges := p_resource.accessControlPolicy.selfPrivileges; } } else if(p_resourceType == int2 and ispresent(p_resource)) {//AE if(ischosen(p_resource.aE)){ @@ -2429,9 +2435,13 @@ module OneM2M_Functions { } v_myResource.aE.resourceID := "ae" & int2str(v_resourceIndex); v_myResource.aE.aE_ID := v_myResource.aE.resourceID; - v_myResource.aE.resourceName := "ae" & int2str(v_resourceIndex); + if(not(ispresent(p_resource.aE.resourceName))) { + v_myResource.aE.resourceName := "ae" & int2str(v_resourceIndex); + } + v_myResource.aE.app_ID := p_resource.aE.app_ID; + v_myResource.aE.requestReachability := p_resource.aE.requestReachability; } - } else if(p_resourceType == int3 and ispresent(p_resource)) { + } else if(p_resourceType == int3 and ispresent(p_resource)) { //Container if(ischosen(p_resource.container)){ v_myResource.container := valueof(p_resource.container); v_myResource.container.resourceType := p_resourceType; @@ -2443,14 +2453,21 @@ module OneM2M_Functions { v_myResource.container.expirationTime := "20301231T012345"; } v_myResource.container.resourceID := "cnt" & int2str(v_resourceIndex); - v_myResource.container.resourceName := "cnt" & int2str(v_resourceIndex); + if(not(ispresent(p_resource.container.resourceName))) { + v_myResource.container.resourceName := "cnt" & int2str(v_resourceIndex); + } + v_myResource.container.stateTag := 0; + v_myResource.container.currentNrOfInstances := 0; + v_myResource.container.currentByteSize := 0; } - } else if(p_resourceType == int4 and ispresent(p_resource)) { + } else if(p_resourceType == int4 and ispresent(p_resource)) { //ContentInstance if(ischosen(p_resource.contentInstance)){ v_myResource.contentInstance := valueof(p_resource.contentInstance); - v_myResource.contentInstance.resourceID := "cnt" & int2str(v_resourceIndex); - v_myResource.contentInstance.resourceName := "cnt" & int2str(v_resourceIndex); + v_myResource.contentInstance.resourceID := "cin" & int2str(v_resourceIndex); + if(not(ispresent(p_resource.contentInstance.resourceName))) { + v_myResource.contentInstance.resourceName := "cin" & int2str(v_resourceIndex); + } v_myResource.contentInstance.resourceType := p_resourceType; v_myResource.contentInstance.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); v_myResource.contentInstance.creationTime := fx_generateTimestamp(); @@ -2463,7 +2480,24 @@ module OneM2M_Functions { v_myResource.contentInstance.content := p_resource.contentInstance.content; } - } + } else if(p_resourceType == int23 and ispresent(p_resource)) { //Subscription + if(ischosen(p_resource.subscription)){ + v_myResource.subscription := valueof(p_resource.subscription); + v_myResource.subscription.resourceID := "sub" & int2str(v_resourceIndex); + if(not(ispresent(p_resource.subscription.resourceName))) { + v_myResource.subscription.resourceName := "sub" & int2str(v_resourceIndex); + } + v_myResource.subscription.resourceType := p_resourceType; + v_myResource.subscription.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.subscription.creationTime := fx_generateTimestamp(); + v_myResource.subscription.lastModifiedTime := v_myResource.container.creationTime; + if(not(ispresent(p_resource.subscription.expirationTime))) { + v_myResource.subscription.expirationTime := "20301231T012345"; + } + v_myResource.subscription.notificationURI := p_resource.subscription.notificationURI; + } + + } return v_myResource; }//End of function @@ -2510,8 +2544,47 @@ module OneM2M_Functions { } } else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.container) and (ischosen(p_resource.container))) {//Container + if(ispresent(p_resource.container.expirationTime)) { + vc_localResourcesList[p_localResourceIndex].resource.container.expirationTime := p_resource.container.expirationTime; + } + if(ispresent(p_resource.container.labels)) { + vc_localResourcesList[p_localResourceIndex].resource.container.labels := p_resource.container.labels; + } + if(ispresent(p_resource.container.announceTo)) { + vc_localResourcesList[p_localResourceIndex].resource.container.announceTo := p_resource.container.announceTo; + } + if(ispresent(p_resource.container.announcedAttribute)) { + vc_localResourcesList[p_localResourceIndex].resource.container.announcedAttribute := p_resource.container.announcedAttribute; + } + } else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.contentInstance) and (ischosen(p_resource.contentInstance))) {//ContentInstance + if(ispresent(p_resource.contentInstance.expirationTime)) { + vc_localResourcesList[p_localResourceIndex].resource.contentInstance.expirationTime := p_resource.contentInstance.expirationTime; + } + if(ispresent(p_resource.contentInstance.labels)) { + vc_localResourcesList[p_localResourceIndex].resource.contentInstance.labels := p_resource.contentInstance.labels; + } + if(ispresent(p_resource.contentInstance.announceTo)) { + vc_localResourcesList[p_localResourceIndex].resource.contentInstance.announceTo := p_resource.contentInstance.announceTo; + } + if(ispresent(p_resource.contentInstance.announcedAttribute)) { + vc_localResourcesList[p_localResourceIndex].resource.contentInstance.announcedAttribute := p_resource.contentInstance.announcedAttribute; + } + } else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.subscription) and (ischosen(p_resource.subscription))) {//Subscription + if(ispresent(p_resource.subscription.expirationTime)) { + vc_localResourcesList[p_localResourceIndex].resource.subscription.expirationTime := p_resource.subscription.expirationTime; + } + if(ispresent(p_resource.subscription.labels)) { + vc_localResourcesList[p_localResourceIndex].resource.subscription.labels := p_resource.subscription.labels; + } + if(ispresent(p_resource.subscription.announceTo)) { + vc_localResourcesList[p_localResourceIndex].resource.subscription.announceTo := p_resource.subscription.announceTo; + } + if(ispresent(p_resource.subscription.announcedAttribute)) { + vc_localResourcesList[p_localResourceIndex].resource.subscription.announcedAttribute := p_resource.subscription.announcedAttribute; + } } + }//End of function /**