[IOT-1774]Add BLE, NFC, RA flag for RI endpoint
authorbg.chun <bg.chun@samsung.com>
Mon, 23 Jan 2017 07:13:55 +0000 (16:13 +0900)
committerAshok Babu Channa <ashok.channa@samsung.com>
Wed, 1 Feb 2017 07:36:45 +0000 (07:36 +0000)
BLE, NFC, RA is not working due to endpoint.
So add BLE, NFC, RA flag for RI endpoint to make work
BLE, NFC, RA adapter

Change-Id: Iaf7ba69e5b28465876ef3abb986479cacb91e1b7
Signed-off-by: bg.chun <bg.chun@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/16691
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
Reviewed-by: Alex Kelley <alexke@microsoft.com>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
resource/csdk/include/octypes.h
resource/csdk/stack/src/ocendpoint.c
resource/csdk/stack/src/ocresource.c
resource/csdk/stack/src/ocstack.c

index 8adb2ac..0769d4f 100755 (executable)
@@ -1346,6 +1346,18 @@ typedef enum
     /** coap + rfcomm */
     OC_COAP_RFCOMM    = (1 << 6),
 #endif
+#ifdef LE_ADAPTER
+    /** coap + gatt */
+    OC_COAP_GATT      = (1 << 7),
+#endif
+#ifdef NFC_ADAPTER
+    /** coap + nfc */
+    OC_COAP_NFC       = (1 << 8),
+#endif
+#ifdef RA_ADAPTER
+    /** coap + remote_access */
+    OC_COAP_RA        = (1 << 9),
+#endif
     /** Allow all endpoint.*/
     OC_ALL       = 0xffff
 } OCTpsSchemeFlags;
index 3beec8c..93711ed 100644 (file)
@@ -65,6 +65,24 @@ OCStackResult OCGetSupportedEndpointFlags(const OCTpsSchemeFlags givenFlags, OCT
         *out = (OCTpsSchemeFlags)(*out | OC_COAP_RFCOMM);
     }
 #endif
+#ifdef LE_ADAPTER
+    if ((givenFlags & OC_COAP_GATT) && (SelectedNetwork & CA_ADAPTER_GATT_BTLE))
+    {
+        *out = (OCTpsSchemeFlags)(*out | OC_COAP_GATT);
+    }
+#endif
+#ifdef NFC_ADAPTER
+    if ((givenFlags & OC_COAP_NFC) && (SelectedNetwork & CA_ADAPTER_NFC))
+    {
+        *out = (OCTpsSchemeFlags)(*out | OC_COAP_NFC);
+    }
+#endif
+#ifdef RA_ADAPTER
+    if ((givenFlags & OC_COAP_RA) && (SelectedNetwork & CA_ADAPTER_REMOTE_ACCESS))
+    {
+        *out = (OCTpsSchemeFlags)(*out | OC_COAP_RA);
+    }
+#endif
 
     return OC_STACK_OK;
 }
@@ -121,13 +139,36 @@ OCStackResult OCGetMatchedTpsFlags(const CATransportAdapter_t adapter,
 #endif
 #ifdef EDR_ADAPTER
     // OC_COAP_RFCOMM
-    if ((adapter & OC_ADAPTER_RFCOMM_BTEDR) && (flags == OC_DEFAULT_FLAGS))
+    if (adapter & OC_ADAPTER_RFCOMM_BTEDR)
     {
         // typecasting to support C90(arduino)
         *out = (OCTpsSchemeFlags)(*out | OC_COAP_RFCOMM);
     }
 #endif
-
+#ifdef LE_ADAPTER
+    // OC_COAP_GATT
+    if (adapter & CA_ADAPTER_GATT_BTLE)
+    {
+        // typecasting to support C90(arduino)
+        *out = (OCTpsSchemeFlags)(*out | OC_COAP_GATT);
+    }
+#endif
+#ifdef NFC_ADAPTER
+    // OC_COAP_NFC
+    if (adapter & CA_ADAPTER_NFC)
+    {
+        // typecasting to support C90(arduino)
+        *out = (OCTpsSchemeFlags)(*out | OC_COAP_NFC);
+    }
+#endif
+#ifdef RA_ADAPTER
+    // OC_COAP_RA
+    if (adapter & CA_ADAPTER_REMOTE_ACCESS)
+    {
+        // typecasting to support C90(arduino)
+        *out = (OCTpsSchemeFlags)(*out | OC_COAP_RA);
+    }
+#endif
     return OC_STACK_OK;
 }
 
@@ -419,6 +460,23 @@ OCTpsSchemeFlags OCGetSupportedTpsFlags()
         ret = (OCTpsSchemeFlags)(ret | OC_COAP_RFCOMM);
     }
 #endif
-
+#ifdef LE_ADAPTER
+    if (SelectedNetwork & CA_ADAPTER_GATT_BTLE)
+    {
+        ret = (OCTpsSchemeFlags)(ret | OC_COAP_GATT);
+    }
+#endif
+#ifdef NFC_ADAPTER
+    if (SelectedNetwork & CA_ADAPTER_NFC)
+    {
+        ret = (OCTpsSchemeFlags)(ret | OC_COAP_NFC);
+    }
+#endif
+#ifdef RA_ADAPTER
+    if (SelectedNetwork & CA_ADAPTER_REMOTE_ACCESS)
+    {
+        ret = (OCTpsSchemeFlags)(ret | OC_COAP_RA);
+    }
+#endif
     return ret;
 }
\ No newline at end of file
index e60e016..4ab4c92 100755 (executable)
@@ -498,15 +498,15 @@ static size_t GetIntrospectionDataSize(const OCPersistentStorage *ps)
     }
 
     fp = ps->open(OC_INTROSPECTION_FILE_NAME, "rb");
-    if (fp)\r
-    {\r
-        size_t bytesRead = 0;\r
-        do\r
-        {\r
-            bytesRead = ps->read(buffer, 1, INTROSPECTION_FILE_SIZE_BLOCK, fp);\r
-            size += bytesRead;\r
-        } while (bytesRead);\r
-        ps->close(fp);\r
+    if (fp)
+    {
+        size_t bytesRead = 0;
+        do
+        {
+            bytesRead = ps->read(buffer, 1, INTROSPECTION_FILE_SIZE_BLOCK, fp);
+            size += bytesRead;
+        } while (bytesRead);
+        ps->close(fp);
     }
     return size;
 }
@@ -886,7 +886,7 @@ OCStackResult BuildVirtualResourceResponse(const OCResource *resourcePtr,
                                            CAEndpoint_t *networkInfo,
                                            uint32_t infoSize)
 {
-    if (!resourcePtr || !payload || !networkInfo)
+    if (!resourcePtr || !payload)
     {
         return OC_STACK_INVALID_PARAM;
     }
@@ -1394,7 +1394,7 @@ static OCStackResult HandleVirtualResource (OCServerRequest *request, OCResource
         uint32_t infoSize = 0;
 
         CAResult_t caResult = CAGetNetworkInformation(&networkInfo, &infoSize);
-        if (CA_STATUS_OK != caResult || !networkInfo || infoSize == 0)
+        if (CA_STATUS_FAILED == caResult)
         {
             OIC_LOG(ERROR, TAG, "CAGetNetworkInformation has error on parsing network infomation");
             return OC_STACK_ERROR;
index 560c9eb..1cdd4da 100644 (file)
@@ -3465,6 +3465,15 @@ OCStackResult OCCreateResourceWithEp(OCResourceHandle *handle,
 #ifdef EDR_ADAPTER
     validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_RFCOMM);
 #endif
+#ifdef LE_ADAPTER
+    validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_GATT);
+#endif
+#ifdef NFC_ADAPTER
+    validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_NFC);
+#endif
+#ifdef RA_ADAPTER
+    validTps = (OCTpsSchemeFlags)(validTps | OC_COAP_RA);
+#endif
 
     if ((resourceTpsTypes < OC_COAP) || ((resourceTpsTypes != OC_ALL) &&
                                          (resourceTpsTypes > validTps)))