int main(void) { /* Create and initialise server session */ AwaServerSession * session = AwaServerSession_New(); /* Use default IPC configuration */ AwaServerSession_Connect(session); /* Create WRITE operation */ AwaServerWriteOperation * operation = AwaServerWriteOperation_New(session, AwaWriteMode_Update); /* * This example uses object /2 which is the Lwm2m ACL object. */ /* Create a new object instance by specifying the object instance path */ AwaServerWriteOperation_CreateObjectInstance(operation, "/2/10"); AwaServerWriteOperation_Perform(operation, CLIENT_ID, OPERATION_PERFORM_TIMEOUT); /* Operations must be freed after use */ AwaServerWriteOperation_Free(&operation); AwaServerSession_Disconnect(session); AwaServerSession_Free(&session); return 0; }
int main(void) { /* Create and initialise server session */ AwaServerSession * session = AwaServerSession_New(); /* Use default IPC configuration */ AwaServerSession_Connect(session); /* Create WRITE operation */ AwaServerWriteOperation * operation = AwaServerWriteOperation_New(session, AwaWriteMode_Update); /* * This example uses resource /3/0/15 which is the Timezone * resource in the standard Device object. It is a string. */ /* Add the resource path and value to the WRITE operation */ AwaServerWriteOperation_AddValueAsCString(operation, "/3/0/15", "Pacific/Auckland"); AwaServerWriteOperation_Perform(operation, CLIENT_ID, OPERATION_PERFORM_TIMEOUT); /* Operations must be freed after use */ AwaServerWriteOperation_Free(&operation); AwaServerSession_Disconnect(session); AwaServerSession_Free(&session); return 0; }
int main(int argc, char ** argv) { int result = 1; struct gengetopt_args_info ai; AwaServerSession * session = NULL; AwaServerWriteOperation * operation = NULL; char address[128]; unsigned int port; if (cmdline_parser(argc, argv, &ai) != 0) { result = 1; goto cleanup; } g_logLevel = ai.debug_given ? 2 : (ai.verbose_given ? 1 : 0); AwaLog_SetLevel(ai.debug_given ? AwaLogLevel_Debug : (ai.verbose_given ? AwaLogLevel_Verbose : AwaLogLevel_Warning)); if (ai.inputs_num == 0 && ai.create_given == 0) { Error("Specify one or more resource paths.\n"); result = 1; goto cleanup; } port = ai.ipcPort_arg; strncpy(address, ai.ipcAddress_arg, strlen(ai.ipcAddress_arg)+1); // Establish Awa Session with the daemon session = Server_EstablishSession(address, port); if (session == NULL) { Error("Failed to establish Awa Session\n"); result = 1; goto cleanup; } AwaWriteMode mode = AwaWriteMode_Update; if (ai.replace_given) mode = AwaWriteMode_Replace; operation = AwaServerWriteOperation_New(session, mode); if (operation == NULL) { Error("AwaServerWriteOperation_New failed\n"); Server_ReleaseSession(&session); result = 1; goto cleanup; } // Add create directives first int count = 0; count = CreateTargets(session, operation, ai.clientID_arg, ai.create_arg, ai.create_given); // Add target paths and values from the command line int i = 0; for (i = 0; i < ai.inputs_num; ++i) { Target * target = CreateTarget(ai.inputs[i]); if (target != NULL) { char * value = Server_GetValue(session, target, ai.inputs[i]); if (value != NULL) { if (AddTargetWithValue(session, operation, target, value) == 0) { ++count; } free(value); value = NULL; } FreeTarget(&target); } } if (count > 0) { result = ProcessWriteOperation(operation, ai.clientID_arg); } cleanup: if (operation) { AwaServerWriteOperation_Free(&operation); } if (session) { Server_ReleaseSession(&session); } cmdline_parser_free(&ai); return result; }