int main() { struct timespec timeout; OIC_LOG(DEBUG, TAG, "OCServer is starting..."); // Set callbacks for verification SetDisplayNumCB(NULL, displayNumCB); SetUserConfirmCB(NULL, confirmNumCB); // Set Verification Option for ownership transfer // Currently, BOTH display AND confirm SetVerifyOption((VerifyOptionBitmask_t)(DISPLAY_NUM | USER_CONFIRM)); // Initialize Persistent Storage for SVR database OCPersistentStorage ps = {server_fopen, fread, fwrite, fclose, unlink}; OCRegisterPersistentStorageHandler(&ps); if (OCInit(NULL, 0, OC_SERVER) != OC_STACK_OK) { OIC_LOG(ERROR, TAG, "OCStack init error"); return 0; } /* * Declare and create the example resource: LED */ createLEDResource(gResourceUri, &LED, false, 0); timeout.tv_sec = 0; timeout.tv_nsec = 100000000L; // Break from loop with Ctrl-C OIC_LOG(INFO, TAG, "Entering ocserver main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OIC_LOG(ERROR, TAG, "OCStack process error"); return 0; } nanosleep(&timeout, NULL); } OIC_LOG(INFO, TAG, "Exiting ocserver main loop..."); if (OCStop() != OC_STACK_OK) { OIC_LOG(ERROR, TAG, "OCStack process error"); } return 0; }
int main() { struct timespec timeout; OIC_LOG(DEBUG, TAG, "OCServer is starting..."); // Initialize Persistent Storage for SVR database OCPersistentStorage ps = {server_fopen, fread, fwrite, fclose, unlink}; OCRegisterPersistentStorageHandler(&ps); if (OCInit(NULL, 0, OC_SERVER) != OC_STACK_OK) { OIC_LOG(ERROR, TAG, "OCStack init error"); return 0; } /** * If server supported random pin based ownership transfer, * callback of print PIN should be registered before runing server. */ SetGeneratePinCB(&GeneratePinCB); /* * Declare and create the example resource: LED */ createLEDResource(gResourceUri, &LED, false, 0); timeout.tv_sec = 0; timeout.tv_nsec = 100000000L; // Break from loop with Ctrl-C OIC_LOG(INFO, TAG, "Entering ocserver main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OIC_LOG(ERROR, TAG, "OCStack process error"); return 0; } nanosleep(&timeout, NULL); } OIC_LOG(INFO, TAG, "Exiting ocserver main loop..."); if (OCStop() != OC_STACK_OK) { OIC_LOG(ERROR, TAG, "OCStack process error"); } return 0; }
int main(int argc, char* argv[]) { struct timespec timeout; OC_LOG(DEBUG, TAG, "OCServer is starting..."); // Initialize Persistent Storage for SVR database OCPersistentStorage ps = {}; ps.open = server_fopen; ps.read = fread; ps.write = fwrite; ps.close = fclose; ps.unlink = unlink; OCRegisterPersistentStorageHandler(&ps); if (OCInit(NULL, 0, OC_SERVER) != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack init error"); return 0; } /* * Declare and create the example resource: LED */ createLEDResource(gResourceUri, &LED, false, 0); timeout.tv_sec = 0; timeout.tv_nsec = 100000000L; // Break from loop with Ctrl-C OC_LOG(INFO, TAG, "Entering ocserver main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); return 0; } nanosleep(&timeout, NULL); } OC_LOG(INFO, TAG, "Exiting ocserver main loop..."); if (OCStop() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); } return 0; }
int main(int argc, char* argv[]) { OC_LOG(DEBUG, TAG, "OCServer is starting..."); if (OCInit(NULL, 0, OC_SERVER) != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack init error"); return 0; } // Declare and create the example resource: LED createLEDResource(gResourceUri, &LED, false, 42); // Initialize slow response alarm signal(SIGALRM, AlarmHandler); // Break from loop with Ctrl-C OC_LOG(INFO, TAG, "Entering ocserver main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); return 0; } sleep(2); } OC_LOG(INFO, TAG, "Exiting ocserver main loop..."); // Free requests if (!gRequestList.empty()) { for (auto iter = gRequestList.begin(); iter != gRequestList.end(); ++iter) { OICFree((*iter)->query); OCPayloadDestroy((*iter)->payload); OICFree(*iter); } gRequestList.clear(); } if (OCStop() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); } return 0; }
int main(int /*argc*/, char* /*argv*/[]) { OC_LOG(DEBUG, TAG, "OCServer is starting..."); if (OCInit(NULL, 0, OC_SERVER) != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack init error"); return 0; } /* * Declare and create the example resource: LED */ createLEDResource(gResourceUri, &LED, false, 0); // Break from loop with Ctrl-C OC_LOG(INFO, TAG, "Entering ocserver main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); return 0; } sleep(2); } OC_LOG(INFO, TAG, "Exiting ocserver main loop..."); if (OCStop() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); } return 0; }
OCEntityHandlerResult ProcessPostRequest (OCEntityHandlerRequest *ehRequest, OCEntityHandlerResponse *response, OCRepPayload **payload) { OCRepPayload *respPLPost_led = NULL; OCEntityHandlerResult ehResult = OC_EH_OK; /* * The entity handler determines how to process a POST request. * Per the REST paradigm, POST can also be used to update representation of existing * resource or create a new resource. * In the sample below, if the POST is for /a/led then a new instance of the LED * resource is created with default representation (if representation is included in * POST payload it can be used as initial values) as long as the instance is * lesser than max new instance count. Once max instance count is reached, POST on * /a/led updated the representation of /a/led (just like PUT) */ if (ehRequest->resource == LED.handle) { if (gCurrLedInstance < SAMPLE_MAX_NUM_POST_INSTANCE) { // Create new LED instance char newLedUri[15] = "/a/led/"; int newLedUriLength = strlen(newLedUri); snprintf (newLedUri + newLedUriLength, sizeof(newLedUri)-newLedUriLength, "%d", gCurrLedInstance); respPLPost_led = OCRepPayloadCreate(); OCRepPayloadSetUri(respPLPost_led, gResourceUri); OCRepPayloadSetPropString(respPLPost_led, "createduri", newLedUri); if (0 == createLEDResource (newLedUri, &gLedInstance[gCurrLedInstance], false, 0)) { OIC_LOG (INFO, TAG, "Created new LED instance"); gLedInstance[gCurrLedInstance].state = 0; gLedInstance[gCurrLedInstance].power = 0; gCurrLedInstance++; strncpy ((char *)response->resourceUri, newLedUri, MAX_URI_LENGTH); ehResult = OC_EH_RESOURCE_CREATED; } } else { respPLPost_led = constructResponse(ehRequest); } } else { for (int i = 0; i < SAMPLE_MAX_NUM_POST_INSTANCE; i++) { if (ehRequest->resource == gLedInstance[i].handle) { if (i == 0) { respPLPost_led = constructResponse(ehRequest); break; } else if (i == 1) { respPLPost_led = constructResponse(ehRequest); } } } } if (respPLPost_led != NULL) { *payload = respPLPost_led; ehResult = OC_EH_OK; } else { OIC_LOG_V (INFO, TAG, "Payload was NULL"); ehResult = OC_EH_ERROR; } return ehResult; }
int main(int argc, char* argv[]) { uint8_t addr[20] = {0}; uint8_t* paddr = NULL; uint16_t port = OC_WELL_KNOWN_PORT; uint8_t ifname[] = "eth0"; OC_LOG(DEBUG, TAG, "OCServer is starting..."); /*Get Ip address on defined interface and initialize coap on it with random port number * this port number will be used as a source port in all coap communications*/ if ( OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr)) == ERR_SUCCESS) { OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port); paddr = addr; } if (OCInit((char *) paddr, port, OC_SERVER) != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack init error"); return 0; } /* * Declare and create the example resource: LED */ createLEDResource(gResourceUri, &LED, false, 0); // Initialize slow response alarm signal(SIGALRM, AlarmHandler); // Break from loop with Ctrl-C OC_LOG(INFO, TAG, "Entering ocserver main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); return 0; } sleep(2); } OC_LOG(INFO, TAG, "Exiting ocserver main loop..."); // Free requests if (!gRequestList.empty()) { for (auto iter = gRequestList.begin(); iter != gRequestList.end(); ++iter) { OCFree((*iter)->query); OCFree((*iter)->reqJSONPayload); OCFree(*iter); } gRequestList.clear(); } if (OCStop() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); } return 0; }