OCStackResult DirectPairingDiscovery()
{
    // initiate direct pairing discovery
    OIC_LOG(INFO, TAG, "   Discovering Only Owned Devices on Network..");
    discoveredDevs = OCDiscoverDirectPairingDevices(DP_DISCOVERY_TIMEOUT);
    if(NULL == discoveredDevs)
    {
        OIC_LOG(ERROR, TAG, "OCDiscoverDirectPairingDevices API error");
        return OC_STACK_ERROR;
    }

    // display the discovered unowned list
    printf("   > Discovered Direct-Pairing Support Devices\n");
    printList(discoveredDevs);

    return OC_STACK_OK;
}
示例#2
0
    OCStackResult InProcClientWrapper::FindDirectPairingDevices(unsigned short waittime,
            GetDirectPairedCallback& callback)
    {
        if (!callback || 0 == waittime)
        {
            return OC_STACK_INVALID_PARAM;
        }

        OCStackResult result = OC_STACK_ERROR;
        const OCDPDev_t *list = nullptr;
        PairedDevices dpDeviceList;

        auto cLock = m_csdkLock.lock();

        if (cLock)
        {
            std::lock_guard<std::recursive_mutex> lock(*cLock);

            list = OCDiscoverDirectPairingDevices(waittime);
            if (NULL == list)
            {
                result = OC_STACK_NO_RESOURCE;
                oclog() << "findDirectPairingDevices(): No device found for direct pairing"
                    << std::flush;
            }
            else {
                convert(list, dpDeviceList);
                std::thread exec(callback, dpDeviceList);
                exec.detach();
                result = OC_STACK_OK;
            }
        }
        else
        {
            result = OC_STACK_ERROR;
        }

        return result;
    }