X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Feasy-setup%2Fsampleapp%2Fmediator%2Flinux%2Frichsdk_sample%2Fsubmediator.cpp;fp=service%2Feasy-setup%2Fsampleapp%2Fmediator%2Flinux%2Frichsdk_sample%2Fmediator_cpp.cpp;h=e38a9b303f086a3359d7666c9c69414d00629efe;hb=7f00f942c39b7bc27c7eeecf213a239c3fe4173c;hp=dbd85ef240c0f83aeb5c81019717dea853ae585b;hpb=edcfc3d2329da7b914771c0dcff5f42c9b74fd93;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/easy-setup/sampleapp/mediator/linux/richsdk_sample/mediator_cpp.cpp b/service/easy-setup/sampleapp/mediator/linux/richsdk_sample/submediator.cpp similarity index 78% rename from service/easy-setup/sampleapp/mediator/linux/richsdk_sample/mediator_cpp.cpp rename to service/easy-setup/sampleapp/mediator/linux/richsdk_sample/submediator.cpp index dbd85ef..e38a9b3 100755 --- a/service/easy-setup/sampleapp/mediator/linux/richsdk_sample/mediator_cpp.cpp +++ b/service/easy-setup/sampleapp/mediator/linux/richsdk_sample/submediator.cpp @@ -24,6 +24,7 @@ #include "OCPlatform.h" #include "OCApi.h" #include "OCProvisioningManager.hpp" +#include "securevirtualresourcetypes.h" #include "EasySetup.hpp" #include "ESRichCommon.h" @@ -31,7 +32,7 @@ #define ES_SAMPLE_APP_TAG "ES_SAMPLE_APP_TAG" #define DECLARE_MENU(FUNC, ...) { #FUNC, FUNC } -#define JSON_DB_PATH "./oic_svr_db_client.dat" +#define JSON_DB_PATH "./oic_svr_db_subclient.dat" using namespace OC; using namespace OIC::Service; @@ -51,12 +52,15 @@ int processUserInput(int min = std::numeric_limits::min(), { assert(min <= max); - int input; + int input = 0; std::cin >> input; std::cin.ignore(std::numeric_limits::max(), '\n'); - if (!std::cin.fail() && min <= input && input <= max) return input; + if (!std::cin.fail() && min <= input && input <= max) + { + return input; + } std::cin.clear(); std::cin.ignore(std::numeric_limits::max(), '\n'); @@ -64,11 +68,10 @@ int processUserInput(int min = std::numeric_limits::min(), throw std::runtime_error("Invalid Input, please try again"); } -void printConfiguration(EnrolleeConf conf) +void printConfiguration(const EnrolleeConf& conf) { cout << "===========================================" << endl; cout << "\tDevice Name : " << conf.getDeviceName() << endl; - cout << "\tModel Number : " << conf.getModelNumber() << endl; for(auto it : conf.getWiFiModes()) { @@ -80,7 +83,7 @@ void printConfiguration(EnrolleeConf conf) cout << "===========================================" << endl; } -void printStatus(EnrolleeStatus status) +void printStatus(const EnrolleeStatus& status) { cout << "===========================================" << endl; cout << "\tProvStatus : " << status.getProvStatus() << endl; @@ -88,18 +91,42 @@ void printStatus(EnrolleeStatus status) cout << "===========================================" << endl; } -void provisionSecurityStatusCallback(std::shared_ptr secProvisioningStatus) +ESOwnershipTransferData provisionSecurityStatusCallback(std::shared_ptr secProvisioningStatus) { - if(secProvisioningStatus->getESResult() != ES_OK) + cout << "provisionSecurityStatusCallback IN" << endl; + cout << "ESResult : " << secProvisioningStatus->getESResult() << std::endl; + cout << "Device ID : " << secProvisioningStatus->getDeviceUUID() << std::endl; + + if(secProvisioningStatus->getESResult() == ES_SECURE_RESOURCE_IS_DISCOVERED) { - cout << "provisionSecurity is failed." << endl; - return; +#ifdef __WITH_DTLS__ + cout << "Owned Status : " << secProvisioningStatus->isOwnedDevice() << std::endl; + cout << "OT Method : " << secProvisioningStatus->getSelectedOTMethod() << std::endl; +#ifdef MULTIPLE_OWNER + cout << "MOT Enabled : " << secProvisioningStatus->isMOTEnabled() << std::endl; + + // TEST + ESOwnershipTransferData OTData; + OTData.setMOTMethod(OIC_PRECONFIG_PIN, "12345678"); + + cout << "Enter!" << std::endl; + getchar(); + + return OTData; +#endif +#endif + + } + else if(secProvisioningStatus->getESResult() == ES_OK) + { + cout << "provisionSecurity is success." << std::endl; } else { - cout << "provisionSecurity is success." << endl; - cout << "uuid : " << secProvisioningStatus->getDeviceUUID()<< endl; + cout << "provisionSecurity is failed." << endl; } + + return {}; } void provisionSecurity() @@ -112,7 +139,7 @@ void provisionSecurity() try { - remoteEnrollee->provisionSecurity(provisionSecurityStatusCallback); + remoteEnrollee->provisionSecurity((SecurityProvStatusCbWithOption)provisionSecurityStatusCallback); } catch (OCException &e) { @@ -211,7 +238,6 @@ void provisionDeviceProperty() DeviceProp devProp; devProp.setWiFiProp("Iotivity_SSID", "Iotivity_PWD", WPA2_PSK, TKIP_AES); - devProp.setDevConfProp("korean", "Korea", "Location"); try { @@ -224,6 +250,41 @@ void provisionDeviceProperty() } } +void connectRequestStatusCallback(std::shared_ptr< ConnectRequestStatus > requestStatus) +{ + if(requestStatus->getESResult() != ES_OK) + { + cout << "Request to connection is failed." << endl; + return; + } + else + { + cout << "Request to connection is success." << endl; + } +} + +void requestToConnect() +{ + if(!remoteEnrollee) + { + std::cout << "RemoteEnrollee is null, retry Discovery EnrolleeResource." << endl; + return; + } + + try + { + std::vector types; + types.push_back(ES_CONNECT_WIFI); + types.push_back(ES_CONNECT_COAPCLOUD); + remoteEnrollee->requestToConnect(types, connectRequestStatusCallback); + } + catch (OCException &e) + { + std::cout << "Exception during provisionDeviceProperties call" << e.reason(); + return; + } +} + void cloudProvisioningStatusCallback(std::shared_ptr< CloudPropProvisioningStatus > provStatus) { switch (provStatus->getESResult()) @@ -280,7 +341,7 @@ void foundResource(std::shared_ptr resource) // Do some operations with resource object. if(resource && !curResource && - resource->getResourceTypes().at(0) == OC_RSRVD_ES_RES_TYPE_PROV) + resource->getResourceTypes().at(0) == OC_RSRVD_ES_RES_TYPE_EASYSETUP) { std::cout<<"DISCOVERED Resource:"< resource) void discoveryEnrolleeResource() { - try - { - std::ostringstream requestURI; - requestURI << OC_RSRVD_WELL_KNOWN_URI << "?rt=" << OC_RSRVD_ES_RES_TYPE_PROV; + try + { + std::ostringstream requestURI; + requestURI << OC_RSRVD_WELL_KNOWN_URI << "?rt=" << OC_RSRVD_ES_RES_TYPE_EASYSETUP; OCPlatform::findResource("", requestURI.str(), CT_DEFAULT, &foundResource); std::cout<< "Finding Resource... " < lck(g_discoverymtx); g_cond.wait_for(lck, std::chrono::seconds(5)); - } - catch (OCException& e) - { - std::cout << "Exception in discoveryEnrolleeResource: "<