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;
}
Ejemplo n.º 3
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;
}