Host library for controlling a WiConnect enabled Wi-Fi module.

Dependents:   wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more

internal/common.h

Committer:
dan_ackme
Date:
2014-08-11
Revision:
1:6ec9998427ad
Parent:
0:ea85c4bb5e1f
Child:
2:05e20e184e7e

File content as of revision 1:6ec9998427ad:

/*
 * Copyright 2014, ACKme Networks
 * All Rights Reserved.
 *
 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks;
 * the contents of this file may not be disclosed to third parties, copied
 * or duplicated in any form, in whole or in part, without the prior
 * written permission of ACKme Networks.
 */

#pragma once



#include "WiconnectCommands.h"

/* Note we need the 2 concats below because arguments to ##
 * are not expanded, so we need to expand __LINE__ with one indirection
 * before doing the actual concatenation. */
#define ASSERT_CONCAT_(a, b) a##b
#define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b)
#define ct_assert(e) enum { ASSERT_CONCAT(assert_line_, __LINE__) = 1/(!!(e)) }


#ifndef WICONNECT_ASYNC_TIMER_ENABLED
#define CHECK_CALLBACK_AVAILABLE(cb) if(cb.isValid()) return WICONNECT_UNSUPPORTED
#else
#define CHECK_CALLBACK_AVAILABLE(cb)
#endif

#define CHECK_CLEANUP_COMMAND()                                     \
    if(result != WICONNECT_PROCESSING)                              \
    {                                                               \
        wiconnect->internalProcessingState = 0;                     \
        wiconnect->currentCommandId = NULL;                         \
    }

#define CHECK_OTHER_COMMAND_EXECUTING()                             \
{                                                                   \
    static const volatile uint8_t __funcId = 0;                     \
    if(wiconnect->currentCommandId == NULL)                         \
    {                                                               \
        wiconnect->currentCommandId = (void*)&__funcId;             \
    }                                                               \
    else if(wiconnect->currentCommandId != (void*)&__funcId)        \
    {                                                               \
        return WICONNECT_ANOTHER_CMD_EXECUTING;                     \
    }                                                               \
}


#define WICONNECT_IS_IDLE() (wiconnect->currentCommandId == NULL)




#ifdef WICONNECT_USE_DEFAULT_STRING_BUFFERS
#define SET_STR_BUFFER(_buffer, size)                               \
    char *ptr, *buf;                                                \
    static char defaultBuffer[size];                                \
    ptr = buf = (_buffer == NULL) ? defaultBuffer : _buffer;
#else
#define SET_STR_BUFFER(_buffer, size)                               \
    char *ptr, *buf;                                                \
    if(_buffer == NULL)                                             \
    {                                                               \
        return "<null>";                                            \
    }                                                               \
    ptr = buf = _buffer;
#endif