// This is a function called back when a device is discovered OCStackApplicationResult discoveryReqCB(void* ctx, OCDoHandle handle, OCClientResponse * clientResponse) { if (ctx == (void*) DEFAULT_CONTEXT_VALUE) { OIC_LOG(INFO, TAG, "DISCOVER callback recvd"); } if (!clientResponse) { OIC_LOG_V(INFO, TAG, "discoveryReqCB received Null clientResponse"); } OIC_LOG_V(INFO, TAG, "StackResult: %s", getResult(clientResponse->result)); OIC_LOG_PAYLOAD(INFO, clientResponse->payload); responseAddr = clientResponse->devAddr; switch(TEST_CASE) { OIC_LOG_V(INFO, TAG, "TEST_CASE %u\n", TEST_CASE); case TEST_GET_REQ_NON: InitGetRequest(OC_LOW_QOS); break; case TEST_PUT_REQ_NON: InitPutRequest(OC_LOW_QOS); break; case TEST_POST_REQ_NON: InitPostRequest(OC_LOW_QOS); break; case TEST_DELETE_REQ_NON: InitDeleteRequest(OC_LOW_QOS); break; case TEST_OBS_REQ_NON: case TEST_OBS_REQ_NON_CANCEL_IMM: InitObserveRequest(OC_LOW_QOS); break; default: PrintUsage(); break; } SET_BUT_NOT_USED(handle); return OC_STACK_KEEP_TRANSACTION; }
// This is a function called back when a device is discovered OCStackApplicationResult discoveryReqCB(void* ctx, OCDoHandle /*handle*/, OCClientResponse * clientResponse) { if (ctx == (void*) DEFAULT_CONTEXT_VALUE) { OIC_LOG(INFO, TAG, "Callback Context for DISCOVER query recvd successfully"); } if (clientResponse) { OIC_LOG_V(INFO, TAG, "StackResult: %s", getResult(clientResponse->result)); std::string connectionType = getConnectivityType (clientResponse->connType); OIC_LOG_V(INFO, TAG, "Discovered on %s", connectionType.c_str()); OIC_LOG_V(INFO, TAG, "Device =============> Discovered @ %s:%d", clientResponse->devAddr.addr, clientResponse->devAddr.port); OIC_LOG_PAYLOAD(INFO, clientResponse->payload); ConnType = clientResponse->connType; serverAddr = clientResponse->devAddr; OCDiscoveryPayload *payload = (OCDiscoveryPayload*) clientResponse->payload; if (!payload) { return OC_STACK_DELETE_TRANSACTION; } OCResourcePayload *resource = (OCResourcePayload*) payload->resources; if (!resource) { OIC_LOG_V (INFO, TAG, "No resources in payload"); return OC_STACK_DELETE_TRANSACTION; } coapServerResource = resource->uri; switch(TestCase) { case TEST_GET_REQ_NON: InitGetRequest(OC_LOW_QOS, 0, 0); break; case TEST_GET_REQ_NON_WITH_FILTERS: InitGetRequest(OC_LOW_QOS, 0, 1); break; case TEST_PUT_REQ_NON: InitPutRequest(OC_LOW_QOS); break; case TEST_POST_REQ_NON: InitPostRequest(OC_LOW_QOS); break; case TEST_DELETE_REQ_NON: InitDeleteRequest(OC_LOW_QOS); break; case TEST_OBS_REQ_NON: case TEST_OBS_REQ_NON_CANCEL_IMM: InitObserveRequest(OC_LOW_QOS); break; case TEST_GET_UNAVAILABLE_RES_REQ_NON: InitGetRequestToUnavailableResource(OC_LOW_QOS); break; case TEST_GET_REQ_CON: InitGetRequest(OC_HIGH_QOS, 0, 0); break; case TEST_POST_REQ_CON: InitPostRequest(OC_HIGH_QOS); break; case TEST_DELETE_REQ_CON: InitDeleteRequest(OC_HIGH_QOS); break; case TEST_OBS_REQ_CON: InitObserveRequest(OC_HIGH_QOS); break; #ifdef WITH_PRESENCE case TEST_OBS_PRESENCE: case TEST_OBS_PRESENCE_WITH_FILTER: case TEST_OBS_PRESENCE_WITH_FILTERS: case TEST_OBS_MULTICAST_PRESENCE: InitPresence(); break; #endif case TEST_GET_REQ_NON_WITH_VENDOR_HEADER_OPTIONS: InitGetRequest(OC_LOW_QOS, 1, 0); break; case TEST_DISCOVER_PLATFORM_REQ: InitPlatformDiscovery(OC_LOW_QOS); break; case TEST_DISCOVER_DEV_REQ: InitDeviceDiscovery(OC_LOW_QOS); break; default: PrintUsage(); break; } } else { OIC_LOG_V(INFO, TAG, "discoveryReqCB received Null clientResponse"); } return OC_STACK_KEEP_TRANSACTION; }
// This is a function called back when a device is discovered OCStackApplicationResult discoveryReqCB(void* ctx, OCDoHandle handle, OCClientResponse * clientResponse) { uint8_t remoteIpAddr[4]; uint16_t remotePortNu; if (ctx == (void*) DEFAULT_CONTEXT_VALUE) { OC_LOG(INFO, TAG, "Callback Context for DISCOVER query recvd successfully"); } if (clientResponse) { OC_LOG_V(INFO, TAG, "StackResult: %s", getResult(clientResponse->result)); OCDevAddrToIPv4Addr((OCDevAddr *) clientResponse->addr, remoteIpAddr, remoteIpAddr + 1, remoteIpAddr + 2, remoteIpAddr + 3); OCDevAddrToPort((OCDevAddr *) clientResponse->addr, &remotePortNu); std::string connectionType = getConnectivityType (clientResponse->connType); OC_LOG_V(INFO, TAG, "Discovered on %s", connectionType.c_str()); OC_LOG_V(INFO, TAG, "Device =============> Discovered %s @ %d.%d.%d.%d:%d", clientResponse->resJSONPayload, remoteIpAddr[0], remoteIpAddr[1], remoteIpAddr[2], remoteIpAddr[3], remotePortNu); parseClientResponse(clientResponse); switch(TEST_CASE) { case TEST_GET_REQ_NON: InitGetRequest(OC_LOW_QOS, 0, 0); break; case TEST_GET_REQ_NON_WITH_FILTERS: InitGetRequest(OC_LOW_QOS, 0, 1); break; case TEST_PUT_REQ_NON: InitPutRequest(OC_LOW_QOS); break; case TEST_POST_REQ_NON: InitPostRequest(OC_LOW_QOS); break; case TEST_DELETE_REQ_NON: InitDeleteRequest(OC_LOW_QOS); break; case TEST_OBS_REQ_NON: case TEST_OBS_REQ_NON_CANCEL_IMM: InitObserveRequest(OC_LOW_QOS); break; case TEST_GET_UNAVAILABLE_RES_REQ_NON: InitGetRequestToUnavailableResource(OC_LOW_QOS); break; case TEST_GET_REQ_CON: InitGetRequest(OC_HIGH_QOS, 0, 0); break; case TEST_POST_REQ_CON: InitPostRequest(OC_HIGH_QOS); break; case TEST_DELETE_REQ_CON: InitDeleteRequest(OC_HIGH_QOS); break; case TEST_OBS_REQ_CON: InitObserveRequest(OC_HIGH_QOS); break; #ifdef WITH_PRESENCE case TEST_OBS_PRESENCE: case TEST_OBS_PRESENCE_WITH_FILTER: case TEST_OBS_PRESENCE_WITH_FILTERS: case TEST_OBS_MULTICAST_PRESENCE: InitPresence(); break; #endif case TEST_GET_REQ_NON_WITH_VENDOR_HEADER_OPTIONS: InitGetRequest(OC_LOW_QOS, 1, 0); break; case TEST_DISCOVER_DEV_REQ: InitDeviceDiscovery(OC_LOW_QOS); break; default: PrintUsage(); break; } } else { OC_LOG_V(INFO, TAG, "discoveryReqCB received Null clientResponse"); } return OC_STACK_KEEP_TRANSACTION; }