1 //******************************************************************
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
24 * This file contains the implementation for EasySetup Enrollee device
27 #include "easysetup.h"
29 #include "resourcehandler.h"
30 #include "easysetupcallbacks.h"
33 * @var ES_ENROLLEE_TAG
34 * @brief Logging tag for module name.
36 #define ES_ENROLLEE_TAG "ES"
38 //-----------------------------------------------------------------------------
40 //-----------------------------------------------------------------------------
41 static bool gIsSecured = false;
43 static ESProvisioningCallbacks gESProvisioningCb;
45 void ESWiFiRsrcCallback(ESResult esResult, ESWiFiProvData *eventData)
47 OIC_LOG_V(DEBUG, ES_ENROLLEE_TAG, "ESWiFiRsrcCallback IN");
51 OIC_LOG_V(ERROR, ES_ENROLLEE_TAG, "ESWiFiRsrcCallback Error Occured");
55 // deliver data to ESProvisioningCallbacks
56 if(gESProvisioningCb.WiFiProvCb != NULL)
58 gESProvisioningCb.WiFiProvCb(eventData);
62 OIC_LOG_V(ERROR, ES_ENROLLEE_TAG, "WiFiProvCb is NULL");
67 void ESCloudRsrcCallback(ESResult esResult, ESCloudProvData *eventData)
69 OIC_LOG_V(DEBUG, ES_ENROLLEE_TAG, "ESCloudRsrcCallback IN");
73 OIC_LOG_V(ERROR, ES_ENROLLEE_TAG, "ESCloudRsrcCallback Error Occured");
77 if(gESProvisioningCb.CloudDataProvCb != NULL)
79 gESProvisioningCb.CloudDataProvCb(eventData);
83 OIC_LOG_V(ERROR, ES_ENROLLEE_TAG, "CloudDataProvCb is NULL");
88 void ESDevconfRsrcallback(ESResult esResult, ESDevConfProvData *eventData)
90 OIC_LOG_V(DEBUG, ES_ENROLLEE_TAG, "ESDevconfRsrcallback IN");
94 OIC_LOG_V(ERROR, ES_ENROLLEE_TAG, "ESDevconfRsrcallback Error Occured");
98 if(gESProvisioningCb.DevConfProvCb != NULL)
100 gESProvisioningCb.DevConfProvCb(eventData);
104 OIC_LOG_V(ERROR, ES_ENROLLEE_TAG, "DevConfProvCb is NULL");
109 ESResult ESInitEnrollee(bool isSecured, ESResourceMask resourceMask, ESProvisioningCallbacks callbacks)
111 OIC_LOG(INFO, ES_ENROLLEE_TAG, "ESInitEnrollee IN");
113 gIsSecured = isSecured;
115 if((resourceMask & ES_WIFI_RESOURCE) == ES_WIFI_RESOURCE)
117 if(callbacks.WiFiProvCb != NULL)
119 gESProvisioningCb.WiFiProvCb = callbacks.WiFiProvCb;
120 RegisterWifiRsrcEventCallBack(ESWiFiRsrcCallback);
124 OIC_LOG(ERROR, ES_ENROLLEE_TAG, "WiFiProvCb NULL");
128 if((resourceMask & ES_DEVCONF_RESOURCE) == ES_DEVCONF_RESOURCE)
130 if(callbacks.DevConfProvCb != NULL)
132 gESProvisioningCb.DevConfProvCb = callbacks.DevConfProvCb;
133 RegisterDevConfRsrcEventCallBack(ESDevconfRsrcallback);
137 OIC_LOG(ERROR, ES_ENROLLEE_TAG, "DevConfProvCb NULL");
141 if((resourceMask & ES_CLOUD_RESOURCE) == ES_CLOUD_RESOURCE)
143 if(callbacks.DevConfProvCb != NULL)
145 gESProvisioningCb.CloudDataProvCb = callbacks.CloudDataProvCb;
146 RegisterCloudRsrcEventCallBack(ESCloudRsrcCallback);
150 OIC_LOG(ERROR, ES_ENROLLEE_TAG, "CloudDataProvCb NULL");
155 if(CreateEasySetupResources(gIsSecured, resourceMask) != OC_STACK_OK)
157 // TODO : Error Handling
162 OIC_LOG(INFO, ES_ENROLLEE_TAG, "ESInitEnrollee OUT");
166 ESResult ESTerminateEnrollee()
168 UnRegisterResourceEventCallBack();
170 //Delete Prov resource
171 if (DeleteEasySetupResources() != OC_STACK_OK)
173 OIC_LOG(ERROR, ES_ENROLLEE_TAG, "Deleting prov resource error!!");
177 OIC_LOG(ERROR, ES_ENROLLEE_TAG, "ESTerminateEnrollee success");
181 static bool ESEnrolleeValidateParam(OCConnectivityType networkType, const char *ssid,
182 const char *passwd, ESEnrolleeEventCallback cb)
184 if (!ssid || !passwd || !cb)
186 OIC_LOG(ERROR, ES_ENROLLEE_TAG, "ESEnrolleeValidateParam - Invalid parameters");