David Fletcher
/
cc3100_test
TI's CC3100 host driver and demo. Experimental and a work in progress.
Diff: simplelink/cc3100_sl_common.h
- Revision:
- 0:bbe98578d4c0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/simplelink/cc3100_sl_common.h Mon Nov 17 19:38:34 2014 +0000 @@ -0,0 +1,181 @@ +/* + * sl_config.h - get time sample application + * + * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef __SL_CONFIG_H__ +#define __SL_CONFIG_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" { +#endif + +//Vars taken from main +extern _u32 g_Status ; +extern _u32 g_GatewayIP; +extern _u32 g_StationIP; + +/**/ +#define LOOP_FOREVER() \ + {\ + while(1); \ + } + +#define ASSERT_ON_ERROR(error_code) \ + {\ + /* Handling the error-codes is specific to the application */ \ + if (error_code < 0) return error_code; \ + /* else, continue w/ execution */ \ + } + +#define pal_Memset(x,y,z) memset((void *)x,y,z) +#define pal_Memcpy(x,y,z) memcpy((void *)x, (const void *)y, z) +#define pal_Memcmp(x,y,z) memcmp((const void *)x, (const void *)y, z) +#define pal_Strlen(x) strlen((const char *)x) +#define pal_Strcmp(x,y) strcmp((const char *)x, (const char *)y) +#define pal_Strcpy(x,y) strcpy((char *)x, (const char *)y) +#define pal_Strstr(x,y) strstr((const char *)x, (const char *)y) +#define pal_Strncmp(x,y,z) strncmp((const char *)x, (const char *)y, z) +#define pal_Strcat(x,y) strcat((char *)x, (const char *)y) + +/* + * Values for below macros shall be modified per the access-point's (AP) properties + * SimpleLink device will connect to following AP when the application is executed + */ +#define SSID_NAME "**********" /* Access point name to connect to. */ +#define SEC_TYPE SL_SEC_TYPE_WPA_WPA2 /* Security type of the Access piont */ +#define PASSKEY "**********" /* Password in case of secure AP */ +#define PASSKEY_LEN pal_Strlen(PASSKEY) /* Password length in case of secure AP */ + +/* Configuration of the device when it comes up in AP mode */ +#define SSID_AP_MODE "mysimplelink" /* SSID of the CC3100 in AP mode */ +#define PASSWORD_AP_MODE "" /* Password of CC3100 AP */ +#define SEC_TYPE_AP_MODE SL_SEC_TYPE_OPEN /* Can take SL_SEC_TYPE_WEP or + * SL_SEC_TYPE_WPA as well */ + +/* + * Values for below macros shall be modified based on current time + */ +#define DATE 24 /* Current Date */ +#define MONTH 7 /* Month */ +#define YEAR 2014 /* Current year */ +#define HOUR 17 /* Time - hours */ +#define MINUTE 30 /* Time - minutes */ +#define SECOND 0 /* Time - seconds */ + +#define SUCCESS 0 + +/* Status bits - These are used to set/reset the corresponding bits in a 'status_variable' */ +typedef enum{ + STATUS_BIT_CONNECTION = 0, /* If this bit is: + * 1 in a 'status_variable', the device is connected to the AP + * 0 in a 'status_variable', the device is not connected to the AP + */ + + STATUS_BIT_STA_CONNECTED, /* If this bit is: + * 1 in a 'status_variable', client is connected to device + * 0 in a 'status_variable', client is not connected to device + */ + + STATUS_BIT_IP_ACQUIRED, /* If this bit is: + * 1 in a 'status_variable', the device has acquired an IP + * 0 in a 'status_variable', the device has not acquired an IP + */ + + STATUS_BIT_IP_LEASED, /* If this bit is: + * 1 in a 'status_variable', the device has leased an IP + * 0 in a 'status_variable', the device has not leased an IP + */ + + STATUS_BIT_CONNECTION_FAILED, /* If this bit is: + * 1 in a 'status_variable', failed to connect to device + * 0 in a 'status_variable' + */ + + STATUS_BIT_P2P_NEG_REQ_RECEIVED,/* If this bit is: + * 1 in a 'status_variable', connection requested by remote wifi-direct device + * 0 in a 'status_variable', + */ + STATUS_BIT_SMARTCONFIG_DONE, /* If this bit is: + * 1 in a 'status_variable', smartconfig completed + * 0 in a 'status_variable', smartconfig event couldn't complete + */ + + STATUS_BIT_SMARTCONFIG_STOPPED /* If this bit is: + * 1 in a 'status_variable', smartconfig process stopped + * 0 in a 'status_variable', smartconfig process running + */ + +}e_StatusBits; + +#define SET_STATUS_BIT(status_variable, bit) status_variable |= ((unsigned long)1<<(bit)) +#define CLR_STATUS_BIT(status_variable, bit) status_variable &= ~((unsigned long)1<<(bit)) +#define GET_STATUS_BIT(status_variable, bit) (0 != (status_variable & ((unsigned long)1<<(bit)))) + +#define IS_CONNECTED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_CONNECTION) +#define IS_STA_CONNECTED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_STA_CONNECTED) +#define IS_IP_ACQUIRED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_IP_ACQUIRED) +#define IS_IP_LEASED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_IP_LEASED) +#define IS_CONNECTION_FAILED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_CONNECTION_FAILED) +#define IS_P2P_NEG_REQ_RECEIVED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_P2P_NEG_REQ_RECEIVED) +#define IS_SMARTCONFIG_DONE(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_SMARTCONFIG_DONE) +#define IS_SMARTCONFIG_STOPPED(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_SMARTCONFIG_STOPPED) + +#define IS_PING_DONE(status_variable) GET_STATUS_BIT(status_variable, \ + STATUS_BIT_PING_DONE) + +#define STATUS_BIT_PING_DONE 31 + +static void SimpleLinkPingReport(SlPingReport_t *pPingReport); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /*__SL_CONFIG_H__*/ +