NNN50 WIFI_API library
Dependents: NNN50_CE_Test_UDP NNN50_linux_firmware NNN50_SoftAP_HelloWorld NNN50_BLEWIFISensor ... more
This is mbed compatible EthernetInterface lib exclude for Delta DFCM-NNN50 platform.
Additional information and examples can be found in mbed Handbook
Revision 25:2008b3bae5ca, committed 2017-06-22
- Comitter:
- tsungta
- Date:
- Thu Jun 22 01:13:11 2017 +0000
- Parent:
- 24:a588c7f472ba
- Child:
- 26:9663a6d037b1
- Commit message:
- 45:2792c00; Sync up with mbed-os-5.5.0; Refine coexistence mechanism to address BLE scan/connect issue when WIFI is enabled.; Fix some compile warning messages
Changed in this revision
Binary file EthernetInterface/Socket/socket_1.o has changed
Binary file EthernetInterface/Socket/tcpsocketconnection.o has changed
Binary file EthernetInterface/Socket/udpsocket_1.o has changed
Binary file EthernetInterface/ethernetinterface.o has changed
--- a/WIFIDevice.h Mon Jun 19 17:40:26 2017 +0000 +++ b/WIFIDevice.h Thu Jun 22 01:13:11 2017 +0000 @@ -64,7 +64,7 @@ * \param channel range from 1 to 14 (default: (1)) * \return 0 on success, a negative number on failure */ - int WIFIDevice::enableAccessPoint(char* SSID, char* PW, char* AP_ip = "192.168.1.1", uint8_t secType=M2M_WIFI_SEC_WEP, uint8_t channel=1); + int enableAccessPoint(char* SSID, char* PW, char* AP_ip = "192.168.1.1", uint8_t secType=M2M_WIFI_SEC_WEP, uint8_t channel=1); /** Erase a 4KB sector of embeeded flash. * Flash memory will be erased in groups of 4KB sector. @@ -94,6 +94,7 @@ }; int enableCoexistance(); +void RF_Switch_WIFI_lock(void); +void RF_Switch_WIFI_unlock(void); #endif /* WIFIDEVICE_H_ */ -
Binary file wifi_host_driver/bus_wrapper/source/nm_bus_wrapper_mbed_platform.o has changed
--- a/wifi_host_driver/common/include/nm_debug.h Mon Jun 19 17:40:26 2017 +0000 +++ b/wifi_host_driver/common/include/nm_debug.h Thu Jun 22 01:13:11 2017 +0000 @@ -42,6 +42,7 @@ #ifndef _NM_DEBUG_H_ #define _NM_DEBUG_H_ +#include "platform/mbed_error.h" #include "bsp/include/nm_bsp.h" //Tsungta #include "bsp/include/nm_bsp_internal.h" @@ -94,4 +95,3 @@ /**@}*/ #endif /* _NM_DEBUG_H_ */ -
--- a/wifi_host_driver/driver/include/m2m_types.h Mon Jun 19 17:40:26 2017 +0000
+++ b/wifi_host_driver/driver/include/m2m_types.h Thu Jun 22 01:13:11 2017 +0000
@@ -1,2139 +1,2138 @@
-/**
- *
- * \file
- *
- * \brief WINC Application Interface Internal Types.
- *
- * Copyright (c) 2015 Atmel Corporation. All rights reserved.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef __M2M_WIFI_TYPES_H__
-#define __M2M_WIFI_TYPES_H__
-
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-INCLUDES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-#ifndef _BOOT_
-#ifndef _FIRMWARE_
-#include "common/include/nm_common.h"
-#else
-#include "m2m_common.h"
-#endif
-#endif
-
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-MACROS
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-/**@defgroup WlanDefines Defines
- * @ingroup m2m_wifi
- */
-/**@{*/
-#define M2M_MAJOR_SHIFT (8)
-#define M2M_MINOR_SHIFT (4)
-#define M2M_PATCH_SHIFT (0)
-
-#define M2M_DRV_VERSION_SHIFT (16)
-#define M2M_FW_VERSION_SHIFT (0)
-
-#define M2M_GET_MAJOR(ver_info_hword) ((uint8)((ver_info_hword) >> M2M_MAJOR_SHIFT) & 0xff)
-#define M2M_GET_MINOR(ver_info_hword) ((uint8)((ver_info_hword) >> M2M_MINOR_SHIFT) & 0x0f)
-#define M2M_GET_PATCH(ver_info_hword) ((uint8)((ver_info_hword) >> M2M_PATCH_SHIFT) & 0x0f)
-
-#define M2M_GET_FW_VER(ver_info_word) ((uint16) ((ver_info_word) >> M2M_FW_VERSION_SHIFT))
-#define M2M_GET_DRV_VER(ver_info_word) ((uint16) ((ver_info_word) >> M2M_DRV_VERSION_SHIFT))
-
-#define M2M_GET_DRV_MAJOR(ver_info_word) M2M_GET_MAJOR(M2M_GET_DRV_VER(ver_info_word))
-#define M2M_GET_DRV_MINOR(ver_info_word) M2M_GET_MINOR(M2M_GET_DRV_VER(ver_info_word))
-#define M2M_GET_DRV_PATCH(ver_info_word) M2M_GET_PATCH(M2M_GET_DRV_VER(ver_info_word))
-
-#define M2M_GET_FW_MAJOR(ver_info_word) M2M_GET_MAJOR(M2M_GET_FW_VER(ver_info_word))
-#define M2M_GET_FW_MINOR(ver_info_word) M2M_GET_MINOR(M2M_GET_FW_VER(ver_info_word))
-#define M2M_GET_FW_PATCH(ver_info_word) M2M_GET_PATCH(M2M_GET_FW_VER(ver_info_word))
-
-#define M2M_MAKE_VERSION(major, minor, patch) ( \
- ((uint16)((major) & 0xff) << M2M_MAJOR_SHIFT) | \
- ((uint16)((minor) & 0x0f) << M2M_MINOR_SHIFT) | \
- ((uint16)((patch) & 0x0f) << M2M_PATCH_SHIFT))
-
-#define M2M_MAKE_VERSION_INFO(fw_major, fw_minor, fw_patch, drv_major, drv_minor, drv_patch) \
- ( \
- ( ((uint32)M2M_MAKE_VERSION((fw_major), (fw_minor), (fw_patch))) << M2M_FW_VERSION_SHIFT) | \
- ( ((uint32)M2M_MAKE_VERSION((drv_major), (drv_minor), (drv_patch))) << M2M_DRV_VERSION_SHIFT))
-#define REL_19_4_6_VER M2M_MAKE_VERSION_INFO(19,4,6,19,3,0)
-#define REL_19_4_5_VER M2M_MAKE_VERSION_INFO(19,4,5,19,3,0)
-#define REL_19_4_4_VER M2M_MAKE_VERSION_INFO(19,4,4,19,3,0)
-#define REL_19_4_3_VER M2M_MAKE_VERSION_INFO(19,4,3,19,3,0)
-#define REL_19_4_2_VER M2M_MAKE_VERSION_INFO(19,4,2,19,3,0)
-#define REL_19_4_1_VER M2M_MAKE_VERSION_INFO(19,4,1,19,3,0)
-#define REL_19_4_0_VER M2M_MAKE_VERSION_INFO(19,4,0,19,3,0)
-#define REL_19_3_1_VER M2M_MAKE_VERSION_INFO(19,3,1,19,3,0)
-#define REL_19_3_0_VER M2M_MAKE_VERSION_INFO(19,3,0,19,3,0)
-#define REL_19_2_2_VER M2M_MAKE_VERSION_INFO(19,2,2,19,2,0)
-#define REL_19_2_1_VER M2M_MAKE_VERSION_INFO(19,2,1,19,2,0)
-#define REL_19_2_0_VER M2M_MAKE_VERSION_INFO(19,2,0,19,2,0)
-#define REL_19_1_0_VER M2M_MAKE_VERSION_INFO(19,1,0,18,2,0)
-#define REL_19_0_0_VER M2M_MAKE_VERSION_INFO(19,0,0,18,1,1)
-
-/*======*======*======*======*
- FIRMWARE VERSION NO INFO
- *======*======*======*======*/
-
-#define M2M_FIRMWARE_VERSION_MAJOR_NO (19)
-/*!< Firmware Major release version number.
-*/
-
-
-#define M2M_FIRMWARE_VERSION_MINOR_NO (4)
-/*!< Firmware Minor release version number.
-*/
-
-#define M2M_FIRMWARE_VERSION_PATCH_NO (7)
-/*!< Firmware patch release version number.
-*/
-
-/*======*======*======*======*
- SUPPORTED DRIVER VERSION NO INFO
- *======*======*======*======*/
-
-#define M2M_DRIVER_VERSION_MAJOR_NO (19)
-/*!< Driver Major release version number.
-*/
-
-
-#define M2M_DRIVER_VERSION_MINOR_NO (3)
-/*!< Driver Minor release version number.
-*/
-
-#define M2M_DRIVER_VERSION_PATCH_NO (0)
-/*!< Driver patch release version number.
-*/
-
-
-#if !defined(M2M_FIRMWARE_VERSION_MAJOR_NO) || !defined(M2M_FIRMWARE_VERSION_MINOR_NO)
-#error Undefined version number
-#endif
-
-#define M2M_BUFFER_MAX_SIZE (1600UL - 4)
-/*!< Maximum size for the shared packet buffer.
- */
-
-
-#define M2M_MAC_ADDRES_LEN 6
-/*!< The size fo 802 MAC address.
- */
-
-#define M2M_ETHERNET_HDR_OFFSET 34
-/*!< The offset of the Ethernet header within the WLAN Tx Buffer.
- */
-
-
-#define M2M_ETHERNET_HDR_LEN 14
-/*!< Length of the Etherenet header in bytes.
-*/
-
-
-#define M2M_MAX_SSID_LEN 33
-/*!< Maximum size for the Wi-Fi SSID including the NULL termination.
- */
-
-
-#define M2M_MAX_PSK_LEN 65
-/*!< Maximum size for the WPA PSK including the NULL termination.
- */
-
-
-#define M2M_DEVICE_NAME_MAX 48
-/*!< Maximum Size for the device name including the NULL termination.
- */
-
-
-#define M2M_LISTEN_INTERVAL 1
-/*!< The STA uses the Listen Interval parameter to indicate to the AP how
- many beacon intervals it shall sleep before it retrieves the queued frames
- from the AP.
-*/
-
-#define MAX_HIDDEN_SITES 4
-/*!<
- max number of hidden SSID suuported by scan request
-*/
-
-
-#define M2M_1X_USR_NAME_MAX 21
-/*!< The maximum size of the user name including the NULL termination.
- It is used for RADIUS authentication in case of connecting the device to
- an AP secured with WPA-Enterprise.
-*/
-
-
-#define M2M_1X_PWD_MAX 41
-/*!< The maximum size of the password including the NULL termination.
- It is used for RADIUS authentication in case of connecting the device to
- an AP secured with WPA-Enterprise.
-*/
-
-#define M2M_CUST_IE_LEN_MAX 252
-/*!< The maximum size of IE (Information Element).
-*/
-
-#define PWR_DEFAULT PWR_HIGH
-/*********************
- *
- * WIFI GROUP requests
- */
-
-#define M2M_CONFIG_CMD_BASE 1
-/*!< The base value of all the host configuration commands opcodes.
-*/
-#define M2M_STA_CMD_BASE 40
-/*!< The base value of all the station mode host commands opcodes.
-*/
-#define M2M_AP_CMD_BASE 70
-/*!< The base value of all the Access Point mode host commands opcodes.
-*/
-#define M2M_P2P_CMD_BASE 90
-/*!< The base value of all the P2P mode host commands opcodes.
-*/
-#define M2M_SERVER_CMD_BASE 100
-/*!< The base value of all the power save mode host commands codes.
-*/
-/**********************
- * OTA GROUP requests
- */
-#define M2M_OTA_CMD_BASE 100
-/*!< The base value of all the OTA mode host commands opcodes.
- * The OTA Have special group so can extended from 1-M2M_MAX_GRP_NUM_REQ
-*/
-/***********************
- *
- * CRYPTO group requests
- */
-#define M2M_CRYPTO_CMD_BASE 1
-/*!< The base value of all the crypto mode host commands opcodes.
- * The crypto Have special group so can extended from 1-M2M_MAX_GRP_NUM_REQ
-*/
-
-#define M2M_MAX_GRP_NUM_REQ (127)
-/*!< max number of request in one group equal to 127 as the last bit reserved for config or data pkt
-*/
-
-#define WEP_40_KEY_STRING_SIZE ((uint8)10)
-/*!< Indicate the wep key size in bytes for 40 bit string passphrase.
-*/
-
-#define WEP_104_KEY_STRING_SIZE ((uint8)26)
-/*!< Indicate the wep key size in bytes for 104 bit string passphrase.
-*/
-#define WEP_KEY_MAX_INDEX ((uint8)4)
-/*!< Indicate the max key index value for WEP authentication
-*/
-#define M2M_SHA256_CONTEXT_BUFF_LEN (128)
-/*!< sha256 context size
-*/
-#define M2M_SCAN_DEFAULT_NUM_SLOTS (2)
-/*!< The default. number of scan slots performed by the WINC board.
-*/
-#define M2M_SCAN_DEFAULT_SLOT_TIME (30)
-/*!< The default. duration in miliseconds of a scan slots performed by the WINC board.
-*/
-#define M2M_SCAN_DEFAULT_NUM_PROBE (2)
-/*!< The default. number of scan slots performed by the WINC board.
-*/
-
-
-/*======*======*======*======*
- CONNECTION ERROR DEFINITIONS
- *======*======*======*======*/
-typedef enum {
- M2M_DEFAULT_CONN_INPROGRESS = ((sint8)-23),
- /*!<
- A failure that indicates that a default connection or forced connection is in progress
- */
- M2M_DEFAULT_CONN_FAIL,
- /*!<
- A failure response that indicates that the winc failed to connect to the cached network
- */
- M2M_DEFAULT_CONN_SCAN_MISMATCH,
- /*!<
- A failure response that indicates that no one of the cached networks
- was found in the scan results, as a result to the function call m2m_default_connect.
- */
- M2M_DEFAULT_CONN_EMPTY_LIST
- /*!<
- A failure response that indicates an empty network list as
- a result to the function call m2m_default_connect.
- */
-
-}tenuM2mDefaultConnErrcode;
-
-
-
-
-/*======*======*======*======*
- OTA DEFINITIONS
- *======*======*======*======*/
-
-#define OTA_STATUS_VALID (0x12526285)
-/*!<
- Magic value updated in the Control structure in case of ROLLACK image Valid
-*/
-#define OTA_STATUS_INVALID (0x23987718)
-/*!<
- Magic value updated in the Control structure in case of ROLLACK image InValid
-*/
-#define OTA_MAGIC_VALUE (0x1ABCDEF9)
-/*!<
- Magic value set at the beginning of the OTA image header
-*/
-
-#define OTA_FORMAT_VER_0 (0) /*Till 19.2.2 format*/
-#define OTA_FORMAT_VER_1 (1) /*starting from 19.3.0 CRC is used and sequence number is used*/
-/*!<
- Control structure format version
-*/
-#define OTA_SHA256_DIGEST_SIZE (32)
-/*!<
- Sha256 digest size in the OTA image,
- the sha256 digest is set at the beginning of image before the OTA header
-*/
-
-#define OTA_SUCCESS (0)
-/*!<
- OTA Success status
-*/
-#define OTA_ERR_WORKING_IMAGE_LOAD_FAIL ((sint8)-1)
-/*!<
- Failure to load the firmware image
-*/
-#define OTA_ERR_INVAILD_CONTROL_SEC ((sint8)-2)
-/*!<
- Control structure is being corrupted
-*/
-#define M2M_ERR_OTA_SWITCH_FAIL ((sint8)-3)
-/*!<
- switching to the updated image failed as may be the image is invalid
-*/
-#define M2M_ERR_OTA_START_UPDATE_FAIL ((sint8)-4)
-/*!<
- OTA update fail due to multiple reasons
- - Connection failure
- - Image integrity fail
-
-*/
-#define M2M_ERR_OTA_ROLLBACK_FAIL ((sint8)-5)
-/*!<
- Roll-back failed due to Roll-back image is not valid
-*/
-#define M2M_ERR_OTA_INVAILD_FLASH_SIZE ((sint8)-6)
-/*!<
- The OTA Support at least 4MB flash size, if the above error will appear if the current flash is less than 4M
-*/
-#define M2M_ERR_OTA_INVAILD_ARG ((sint8)-7)
-/*!<
- Invalid argument in any OTA Function
-*/
-/**@}*/
-
-/**
-* @addtogroup WlanEnums Enumerations and Typedefs
-* @ingroup m2m_wifi
-*/
- /**@{*/
-
-/*!
-@enum \
- tenuM2mConnChangedErrcode
-
-@brief
-
-*/
-typedef enum {
- M2M_ERR_SCAN_FAIL = ((uint8)1),
- /*!< Indicate that the WINC board has failed to perform the scan operation.
- */
- M2M_ERR_JOIN_FAIL,
- /*!< Indicate that the WINC board has failed to join the BSS .
- */
- M2M_ERR_AUTH_FAIL,
- /*!< Indicate that the WINC board has failed to authenticate with the AP.
- */
- M2M_ERR_ASSOC_FAIL,
- /*!< Indicate that the WINC board has failed to associate with the AP.
- */
- M2M_ERR_CONN_INPROGRESS,
- /*!< Indicate that the WINC board has another connection request in progress.
- */
-}tenuM2mConnChangedErrcode;
-/*!
-@enum \
- tenuM2mWepKeyIndex
-
-@brief
-
-*/
-typedef enum {
- M2M_WIFI_WEP_KEY_INDEX_1 = ((uint8) 1),
- M2M_WIFI_WEP_KEY_INDEX_2,
- M2M_WIFI_WEP_KEY_INDEX_3,
- M2M_WIFI_WEP_KEY_INDEX_4,
- /*!< Index for WEP key Authentication
- */
-}tenuM2mWepKeyIndex;
-
-/*!
-@enum \
- tenuM2mPwrMode
-
-@brief
-
-*/
-typedef enum {
- PWR_AUTO = ((uint8) 1),
- /*!< FW will decide the best power mode to use internally. */
- PWR_LOW1,
- /*low power mode #1*/
- PWR_LOW2,
- /*low power mode #2*/
- PWR_HIGH,
- /* high power mode*/
-}tenuM2mPwrMode;
-
-/*!
-@struct \
- tstrM2mPwrState
-
-@brief
- Power Mode
-*/
-typedef struct {
- uint8 u8PwrMode;
- /*!< power Save Mode
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mPwrMode;
-/*!
-@enum \
- tenuM2mTxPwrLevel
-
-@brief
-
-*/
-typedef enum {
- TX_PWR_HIGH = ((uint8) 1),
- /*!< PPA Gain 6dbm PA Gain 18dbm */
- TX_PWR_MED,
- /*!< PPA Gain 6dbm PA Gain 12dbm */
- TX_PWR_LOW,
- /*!< PPA Gain 6dbm PA Gain 6dbm */
-}tenuM2mTxPwrLevel;
-
-/*!
-@struct \
- tstrM2mTxPwrLevel
-
-@brief
- Tx power level
-*/
-typedef struct {
- uint8 u8TxPwrLevel;
- /*!< Tx power level
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mTxPwrLevel;
-
-/*!
-@struct \
- tstrM2mEnableLogs
-
-@brief
- Enable Firmware logs
-*/
-typedef struct {
- uint8 u8Enable;
- /*!< Enable/Disable firmware logs
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mEnableLogs;
-
-/*!
-@struct \
- tstrM2mBatteryVoltage
-
-@brief
- Battery Voltage
-*/
-typedef struct {
- //Note: on SAMD D21 the size of double is 8 Bytes
- uint16 u16BattVolt;
- /*!< Battery Voltage
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mBatteryVoltage;
-
-/*!
-@enum \
- tenuM2mReqGroup
-
-@brief
-*/
-typedef enum{
- M2M_REQ_GROUP_MAIN = 0,
- M2M_REQ_GROUP_WIFI,
- M2M_REQ_GROUP_IP,
- M2M_REQ_GROUP_HIF,
- M2M_REQ_GROUP_OTA,
- M2M_REQ_GROUP_SSL,
- M2M_REQ_GROUP_CRYPTO,
- M2M_REQ_GROUP_SIGMA,
-}tenuM2mReqGroup;
-
-/*!
-@enum \
- tenuM2mReqpkt
-
-@brief
-*/
-typedef enum{
- M2M_REQ_CONFIG_PKT,
- M2M_REQ_DATA_PKT = 0x80 /*BIT7*/
-}tenuM2mReqpkt;
-/*!
-@enum \
- tenuM2mConfigCmd
-
-@brief
- This enum contains all the host commands used to configure the WINC board.
-
-*/
-typedef enum {
- M2M_WIFI_REQ_RESTART = M2M_CONFIG_CMD_BASE,
- /*!<
- Restart the WINC MAC layer, it's doesn't restart the IP layer.
- */
- M2M_WIFI_REQ_SET_MAC_ADDRESS,
- /*!<
- Set the WINC mac address (not possible for production effused boards).
- */
- M2M_WIFI_REQ_CURRENT_RSSI,
- /*!<
- Request the current connected AP RSSI.
- */
- M2M_WIFI_RESP_CURRENT_RSSI,
- /*!<
- Response to M2M_WIFI_REQ_CURRENT_RSSI with the RSSI value.
- */
- M2M_WIFI_REQ_GET_CONN_INFO,
- /*!< Request connection information command.
- */
- M2M_WIFI_RESP_CONN_INFO,
-
- /*!< Connect with default AP response.
- */
- M2M_WIFI_REQ_SET_DEVICE_NAME,
- /*!<
- Set the WINC device name property.
- */
- M2M_WIFI_REQ_START_PROVISION_MODE,
- /*!<
- Start the provisioning mode for the M2M Device.
- */
- M2M_WIFI_RESP_PROVISION_INFO,
- /*!<
- Send the provisioning information to the host.
- */
- M2M_WIFI_REQ_STOP_PROVISION_MODE,
- /*!<
- Stop the current running provision mode.
- */
- M2M_WIFI_REQ_SET_SYS_TIME,
- /*!<
- Set time of day from host.
- */
- M2M_WIFI_REQ_ENABLE_SNTP_CLIENT,
- /*!<
- Enable the simple network time protocol to get the
- time from the Internet. this is required for security purposes.
- */
- M2M_WIFI_REQ_DISABLE_SNTP_CLIENT,
- /*!<
- Disable the simple network time protocol for applications that
- do not need it.
- */
- M2M_WIFI_RESP_MEMORY_RECOVER,
- /*!<
- * Reserved for debuging
- * */
- M2M_WIFI_REQ_CUST_INFO_ELEMENT,
- /*!< Add Custom ELement to Beacon Managament Frame.
- */
- M2M_WIFI_REQ_SCAN,
- /*!< Request scan command.
- */
- M2M_WIFI_RESP_SCAN_DONE,
- /*!< Scan complete notification response.
- */
- M2M_WIFI_REQ_SCAN_RESULT,
- /*!< Request Scan results command.
- */
- M2M_WIFI_RESP_SCAN_RESULT,
- /*!< Request Scan results resopnse.
- */
- M2M_WIFI_REQ_SET_SCAN_OPTION,
- /*!< Set Scan options "slot time, slot number .. etc" .
- */
- M2M_WIFI_REQ_SET_SCAN_REGION,
- /*!< Set scan region.
- */
- M2M_WIFI_REQ_SET_POWER_PROFILE,
- /*!< The API shall set power mode to one of 3 modes
- */
- M2M_WIFI_REQ_SET_TX_POWER,
- /*!< API to set TX power.
- */
- M2M_WIFI_REQ_SET_BATTERY_VOLTAGE,
- /*!< API to set Battery Voltage.
- */
- M2M_WIFI_REQ_SET_ENABLE_LOGS,
- /*!< API to set Battery Voltage.
- */
- M2M_WIFI_REQ_GET_SYS_TIME,
- /*!<
- REQ GET time of day from WINC.
- */
- M2M_WIFI_RESP_GET_SYS_TIME,
- /*!<
- RESP time of day from host.
- */
- M2M_WIFI_REQ_SEND_ETHERNET_PACKET,
- /*!< Send Ethernet packet in bypass mode.
- */
- M2M_WIFI_RESP_ETHERNET_RX_PACKET,
- /*!< Receive Ethernet packet in bypass mode.
- */
- M2M_WIFI_REQ_SET_MAC_MCAST,
- /*!< Set the WINC multicast filters.
- */
- M2M_WIFI_REQ_GET_PRNG,
- /*!< Request PRNG.
- */
- M2M_WIFI_RESP_GET_PRNG,
- /*!< Response for PRNG.
- */
- M2M_WIFI_REQ_SCAN_SSID_LIST,
- /*!< Request scan with list of hidden SSID plus the broadcast scan.
- */
- M2M_WIFI_MAX_CONFIG_ALL,
-}tenuM2mConfigCmd;
-
-/*!
-@enum \
- tenuM2mStaCmd
-
-@brief
- This enum contains all the WINC commands while in Station mode.
-*/
-typedef enum {
- M2M_WIFI_REQ_CONNECT = M2M_STA_CMD_BASE,
- /*!< Connect with AP command.
- */
- M2M_WIFI_REQ_DEFAULT_CONNECT,
- /*!< Connect with default AP command.
- */
- M2M_WIFI_RESP_DEFAULT_CONNECT,
- /*!< Request connection information response.
- */
- M2M_WIFI_REQ_DISCONNECT,
- /*!< Request to disconnect from AP command.
- */
- M2M_WIFI_RESP_CON_STATE_CHANGED,
- /*!< Connection state changed response.
- */
- M2M_WIFI_REQ_SLEEP,
- /*!< Set PS mode command.
- */
- M2M_WIFI_REQ_WPS_SCAN,
- /*!< Request WPS scan command.
- */
- M2M_WIFI_REQ_WPS,
- /*!< Request WPS start command.
- */
- M2M_WIFI_REQ_START_WPS,
- /*!< This command is for internal use by the WINC and
- should not be used by the host driver.
- */
- M2M_WIFI_REQ_DISABLE_WPS,
- /*!< Request to disable WPS command.
- */
- M2M_WIFI_REQ_DHCP_CONF,
- /*!< Response indicating that IP address was obtained.
- */
- M2M_WIFI_RESP_IP_CONFIGURED,
- /*!< This command is for internal use by the WINC and
- should not be used by the host driver.
- */
- M2M_WIFI_RESP_IP_CONFLICT,
- /*!< Response indicating a conflict in obtained IP address.
- The user should re attempt the DHCP request.
- */
- M2M_WIFI_REQ_ENABLE_MONITORING,
- /*!< Request to enable monitor mode command.
- */
- M2M_WIFI_REQ_DISABLE_MONITORING,
- /*!< Request to disable monitor mode command.
- */
- M2M_WIFI_RESP_WIFI_RX_PACKET,
- /*!< Indicate that a packet was received in monitor mode.
- */
- M2M_WIFI_REQ_SEND_WIFI_PACKET,
- /*!< Send packet in monitor mode.
- */
- M2M_WIFI_REQ_LSN_INT,
- /*!< Set WiFi listen interval.
- */
- M2M_WIFI_REQ_DOZE,
- /*!< Used to force the WINC to sleep in manual PS mode.
- */
- M2M_WIFI_MAX_STA_ALL,
-} tenuM2mStaCmd;
-
-/*!
-@enum \
- tenuM2mApCmd
-
-@brief
- This enum contains all the WINC commands while in AP mode.
-*/
-typedef enum {
- M2M_WIFI_REQ_ENABLE_AP = M2M_AP_CMD_BASE,
- /*!< Enable AP mode command.
- */
- M2M_WIFI_REQ_DISABLE_AP,
- /*!< Disable AP mode command.
- */
- M2M_WIFI_MAX_AP_ALL,
-}tenuM2mApCmd;
-
-/*!
-@enum \
- tenuM2mP2pCmd
-
-@brief
- This enum contains all the WINC commands while in P2P mode.
-*/
-typedef enum {
- M2M_WIFI_REQ_P2P_INT_CONNECT = M2M_P2P_CMD_BASE,
- /*!< This command is for internal use by the WINC and
- should not be used by the host driver.
- */
- M2M_WIFI_REQ_ENABLE_P2P,
- /*!< Enable P2P mode command.
- */
- M2M_WIFI_REQ_DISABLE_P2P,
- /*!< Disable P2P mode command.
- */
- M2M_WIFI_REQ_P2P_REPOST,
- /*!< This command is for internal use by the WINC and
- should not be used by the host driver.
- */
- M2M_WIFI_MAX_P2P_ALL,
-}tenuM2mP2pCmd;
-
-
-
-/*!
-@enum \
- tenuM2mServerCmd
-
-@brief
- This enum contains all the WINC commands while in PS mode.
- These command are currently not supported.
-*/
-typedef enum {
- M2M_WIFI_REQ_CLIENT_CTRL = M2M_SERVER_CMD_BASE,
- M2M_WIFI_RESP_CLIENT_INFO,
- M2M_WIFI_REQ_SERVER_INIT,
- M2M_WIFI_MAX_SERVER_ALL
-}tenuM2mServerCmd;
-
-
-
-/*!
-@enum \
- tenuM2mOtaCmd
-
-@brief
-
-*/
-typedef enum {
- M2M_OTA_REQ_NOTIF_SET_URL = M2M_OTA_CMD_BASE,
- M2M_OTA_REQ_NOTIF_CHECK_FOR_UPDATE,
- M2M_OTA_REQ_NOTIF_SCHED,
- M2M_OTA_REQ_START_UPDATE,
- M2M_OTA_REQ_SWITCH_FIRMWARE,
- M2M_OTA_REQ_ROLLBACK,
- M2M_OTA_RESP_NOTIF_UPDATE_INFO,
- M2M_OTA_RESP_UPDATE_STATUS,
- M2M_OTA_REQ_TEST,
- M2M_OTA_MAX_ALL,
-}tenuM2mOtaCmd;
-
-/*!
-@enum \
- tenuM2mCryptoCmd
-
-@brief
-
-*/
-typedef enum {
- M2M_CRYPTO_REQ_SHA256_INIT = M2M_CRYPTO_CMD_BASE,
- M2M_CRYPTO_RESP_SHA256_INIT,
- M2M_CRYPTO_REQ_SHA256_UPDATE,
- M2M_CRYPTO_RESP_SHA256_UPDATE,
- M2M_CRYPTO_REQ_SHA256_FINSIH,
- M2M_CRYPTO_RESP_SHA256_FINSIH,
- M2M_CRYPTO_REQ_RSA_SIGN_GEN,
- M2M_CRYPTO_RESP_RSA_SIGN_GEN,
- M2M_CRYPTO_REQ_RSA_SIGN_VERIFY,
- M2M_CRYPTO_RESP_RSA_SIGN_VERIFY,
- M2M_CRYPTO_MAX_ALL,
-}tenuM2mCryptoCmd;
-
-/*!
-@enum \
- tenuM2mIpCmd
-
-@brief
-
-*/
-typedef enum {
- /* Request IDs corresponding to the IP GROUP. */
- M2M_IP_REQ_STATIC_IP_CONF = ((uint8) 10),
- M2M_IP_REQ_ENABLE_DHCP,
- M2M_IP_REQ_DISABLE_DHCP
-} tenuM2mIpCmd;
-
-/*!
-@enum \
- tenuM2mSigmaCmd
-
-@brief
-
-*/
-typedef enum {
- /* Request IDs corresponding to the IP GROUP. */
- M2M_SIGMA_ENABLE = ((uint8) 3),
- M2M_SIGMA_TA_START,
- M2M_SIGMA_TA_STATS,
- M2M_SIGMA_TA_RECEIVE_STOP,
- M2M_SIGMA_ICMP_ARP,
- M2M_SIGMA_ICMP_RX,
- M2M_SIGMA_ICMP_TX,
- M2M_SIGMA_UDP_TX,
- M2M_SIGMA_UDP_TX_DEFER,
- M2M_SIGMA_SECURITY_POLICY,
- M2M_SIGMA_SET_SYSTIME
-} tenuM2mSigmaCmd;
-
-
-/*!
-@enum \
- tenuM2mConnState
-
-@brief
- Wi-Fi Connection State.
-*/
-typedef enum {
- M2M_WIFI_DISCONNECTED = 0,
- /*!< Wi-Fi state is disconnected.
- */
- M2M_WIFI_CONNECTED,
- /*!< Wi-Fi state is connected.
- */
- M2M_WIFI_UNDEF = 0xff
- /*!< Undefined Wi-Fi State.
- */
-}tenuM2mConnState;
-
-/*!
-@enum \
- tenuM2mSecType
-
-@brief
- Wi-Fi Supported Security types.
-*/
-typedef enum {
- M2M_WIFI_SEC_INVALID = 0,
- /*!< Invalid security type.
- */
- M2M_WIFI_SEC_OPEN,
- /*!< Wi-Fi network is not secured.
- */
- M2M_WIFI_SEC_WPA_PSK,
- /*!< Wi-Fi network is secured with WPA/WPA2 personal(PSK).
- */
- M2M_WIFI_SEC_WEP,
- /*!< Security type WEP (40 or 104) OPEN OR SHARED.
- */
- M2M_WIFI_SEC_802_1X
- /*!< Wi-Fi network is secured with WPA/WPA2 Enterprise.IEEE802.1x user-name/password authentication.
- */
-}tenuM2mSecType;
-
-
-/*!
-@enum \
- tenuM2mSecType
-
-@brief
- Wi-Fi Supported SSID types.
-*/
-typedef enum {
- SSID_MODE_VISIBLE = 0,
- /*!< SSID is visible to others.
- */
- SSID_MODE_HIDDEN
- /*!< SSID is hidden.
- */
-}tenuM2mSsidMode;
-
-/*!
-@enum \
- tenuM2mScanCh
-
-@brief
- Wi-Fi RF Channels.
-*/
-typedef enum {
- M2M_WIFI_CH_1 = ((uint8) 1),
- M2M_WIFI_CH_2,
- M2M_WIFI_CH_3,
- M2M_WIFI_CH_4,
- M2M_WIFI_CH_5,
- M2M_WIFI_CH_6,
- M2M_WIFI_CH_7,
- M2M_WIFI_CH_8,
- M2M_WIFI_CH_9,
- M2M_WIFI_CH_10,
- M2M_WIFI_CH_11,
- M2M_WIFI_CH_12,
- M2M_WIFI_CH_13,
- M2M_WIFI_CH_14,
- M2M_WIFI_CH_ALL = ((uint8) 255)
-}tenuM2mScanCh;
-
-/*!
-@enum \
- tenuM2mScanRegion
-
-@brief
- Wi-Fi RF Channels.
-*/
-typedef enum {
-
- REG_CH_1 = ((uint16) 1 << 0),
- REG_CH_2 = ((uint16) 1 << 1),
- REG_CH_3 = ((uint16) 1 << 2),
- REG_CH_4 = ((uint16) 1 << 3),
- REG_CH_5 = ((uint16) 1 << 4),
- REG_CH_6 = ((uint16) 1 << 5),
- REG_CH_7 = ((uint16) 1 << 6),
- REG_CH_8 = ((uint16) 1 << 7),
- REG_CH_9 = ((uint16) 1 << 8),
- REG_CH_10 = ((uint16) 1 << 9),
- REG_CH_11 = ((uint16) 1 << 10),
- REG_CH_12 = ((uint16) 1 << 11),
- REG_CH_13 = ((uint16) 1 << 12),
- REG_CH_14 = ((uint16) 1 << 13),
- REG_CH_ALL = ((uint16) 0x3FFF),
- NORTH_AMERICA = ((uint16) 0x7FF),
- /** 11 channel
- */
- EUROPE = ((uint16) 0x1FFF),
- /** 13 channel
- */
- ASIA = ((uint16) 0x3FFF)
- /* 14 channel
- */
-}tenuM2mScanRegion;
-
-
-/*!
-@enum \
- tenuPowerSaveModes
-
-@brief
- Power Save Modes.
-*/
-typedef enum {
- M2M_NO_PS,
- /*!< Power save is disabled.
- */
- M2M_PS_AUTOMATIC,
- /*!< Power save is done automatically by the WINC.
- This mode doesn't disable all of the WINC modules and
- use higher amount of power than the H_AUTOMATIC and
- the DEEP_AUTOMATIC modes..
- */
- M2M_PS_H_AUTOMATIC,
- /*!< Power save is done automatically by the WINC.
- Achieve higher power save than the AUTOMATIC mode
- by shutting down more parts of the WINC board.
- */
- M2M_PS_DEEP_AUTOMATIC,
- /*!< Power save is done automatically by the WINC.
- Achieve the highest possible power save.
- */
- M2M_PS_MANUAL
- /*!< Power save is done manually by the user.
- */
-}tenuPowerSaveModes;
-
-/*!
-@enum \
- tenuM2mWifiMode
-
-@brief
- Wi-Fi Operation Mode.
-*/
-typedef enum {
- M2M_WIFI_MODE_NORMAL = ((uint8) 1),
- /*!< Normal Mode means to run customer firmware version.
- */
- M2M_WIFI_MODE_ATE_HIGH,
- /*!< Config Mode in HIGH POWER means to run production test firmware version which is known as ATE (Burst) firmware.
- */
- M2M_WIFI_MODE_ATE_LOW,
- /*!< Config Mode in LOW POWER means to run production test firmware version which is known as ATE (Burst) firmware.
- */
- M2M_WIFI_MODE_ETHERNET,
- /*!< etherent Mode
- */
- M2M_WIFI_MODE_MAX,
-}tenuM2mWifiMode;
-
-/*!
-@enum \
- tenuWPSTrigger
-
-@brief
- WPS Triggering Methods.
-*/
-typedef enum{
- WPS_PIN_TRIGGER = 0,
- /*!< WPS is triggered in PIN method.
- */
- WPS_PBC_TRIGGER = 4
- /*!< WPS is triggered via push button.
- */
-}tenuWPSTrigger;
-
-
-/*!
-@struct \
- tstrM2mWifiWepParams
-
-@brief
- WEP security key parameters.
-*/
-typedef struct{
- uint8 u8KeyIndx;
- /*!< Wep key Index.
- */
- uint8 u8KeySz;
- /*!< Wep key Size.
- */
- uint8 au8WepKey[WEP_104_KEY_STRING_SIZE + 1];
- /*!< WEP Key represented as a NULL terminated ASCII string.
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes to keep the structure word alligned.
- */
-}tstrM2mWifiWepParams;
-
-
-/*!
-@struct \
- tstr1xAuthCredentials
-
-@brief
- Credentials for the user to authenticate with the AAA server (WPA-Enterprise Mode IEEE802.1x).
-*/
-typedef struct{
- uint8 au8UserName[M2M_1X_USR_NAME_MAX];
- /*!< User Name. It must be Null terminated string.
- */
- uint8 au8Passwd[M2M_1X_PWD_MAX];
- /*!< Password corresponding to the user name. It must be Null terminated string.
- */
-}tstr1xAuthCredentials;
-
-
-/*!
-@union \
- tuniM2MWifiAuth
-
-@brief
- Wi-Fi Security Parameters for all supported security modes.
-*/
-typedef union{
- uint8 au8PSK[M2M_MAX_PSK_LEN];
- /*!< Pre-Shared Key in case of WPA-Personal security.
- */
- tstr1xAuthCredentials strCred1x;
- /*!< Credentials for RADIUS server authentication in case of WPA-Enterprise security.
- */
- tstrM2mWifiWepParams strWepInfo;
- /*!< WEP key parameters in case of WEP security.
- */
-}tuniM2MWifiAuth;
-
-
-/*!
-@struct \
- tstrM2MWifiSecInfo
-
-@brief
- Authentication credentials to connect to a Wi-Fi network.
-*/
-typedef struct{
- tuniM2MWifiAuth uniAuth;
- /*!< Union holding all possible authentication parameters corresponding the current security types.
- */
- uint8 u8SecType;
- /*!< Wi-Fi network security type. See tenuM2mSecType for supported security types.
- */
-#define __PADDING__ (4 - ((sizeof(tuniM2MWifiAuth) + 1) % 4))
- uint8 __PAD__[__PADDING__];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2MWifiSecInfo;
-
-
-/*!
-@struct \
- tstrM2mWifiConnect
-
-@brief
- Wi-Fi Connect Request
-*/
-typedef struct{
- tstrM2MWifiSecInfo strSec;
- /*!< Security parameters for authenticating with the AP.
- */
- uint16 u16Ch;
- /*!< RF Channel for the target SSID.
- */
- uint8 au8SSID[M2M_MAX_SSID_LEN];
- /*!< SSID of the desired AP. It must be NULL terminated string.
- */
- uint8 u8NoSaveCred;
-#define __CONN_PAD_SIZE__ (4 - ((sizeof(tstrM2MWifiSecInfo) + M2M_MAX_SSID_LEN + 3) % 4))
- uint8 __PAD__[__CONN_PAD_SIZE__];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mWifiConnect;
-
-
-/*!
-@struct \
- tstrM2MWPSConnect
-
-@brief
- WPS Configuration parameters
-
-@sa
- tenuWPSTrigger
-*/
-typedef struct {
- uint8 u8TriggerType;
- /*!< WPS triggering method (Push button or PIN)
- */
- char acPinNumber[8];
- /*!< WPS PIN No (for PIN method)
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2MWPSConnect;
-
-
-/*!
-@struct \
- tstrM2MWPSInfo
-
-@brief WPS Result
-
- This structure is passed to the application in response to a WPS request. If the WPS session is completed successfully, the
- structure will have Non-ZERO authentication type. If the WPS Session fails (due to error or timeout) the authentication type
- is set to ZERO.
-
-@sa
- tenuM2mSecType
-*/
-typedef struct{
- uint8 u8AuthType;
- /*!< Network authentication type.
- */
- uint8 u8Ch;
- /*!< RF Channel for the AP.
- */
- uint8 au8SSID[M2M_MAX_SSID_LEN];
- /*!< SSID obtained from WPS.
- */
- uint8 au8PSK[M2M_MAX_PSK_LEN];
- /*!< PSK for the network obtained from WPS.
- */
-}tstrM2MWPSInfo;
-
-
-/*!
-@struct \
- tstrM2MDefaultConnResp
-
-@brief
- Response error of the m2m_default_connect
-
-@sa
- M2M_DEFAULT_CONN_SCAN_MISMATCH
- M2M_DEFAULT_CONN_EMPTY_LIST
-*/
-typedef struct{
- sint8 s8ErrorCode;
- /*!<
- Default connect error code. possible values are:
- - M2M_DEFAULT_CONN_EMPTY_LIST
- - M2M_DEFAULT_CONN_SCAN_MISMATCH
- */
- uint8 __PAD24__[3];
-}tstrM2MDefaultConnResp;
-
-/*!
-@struct \
- tstrM2MScan
-
-@brief
- Wi-Fi Scan Request
-
-@sa
- tenuM2mScanCh
-*/
-typedef struct {
- uint8 u8NumOfSlot;
- /*|< The min number of slots is 2 for every channel,
- every slot the soc will send Probe Request on air, and wait/listen for PROBE RESP/BEACONS for the u16slotTime
- */
- uint8 u8SlotTime;
- /*|< the time that the Soc will wait on every channel listening to the frames on air
- when that time increaseed number of AP will increased in the scan results
- min time is 10 ms and the max is 250 ms
- */
- uint8 u8ProbesPerSlot;
- /*!< Number of probe requests to be sent per channel scan slot.
- */
- sint8 s8RssiThresh;
- /*! < The RSSI threshold of the AP which will be connected to directly.
- */
-
-}tstrM2MScanOption;
-
-/*!
-@struct \
- tstrM2MScanRegion
-
-@brief
- Wi-Fi channel regulation region information.
-
-@sa
- tenuM2mScanRegion
-*/
-typedef struct {
- uint16 u16ScanRegion;
- /*|< Specifies the number of channels allowed in the region (e.g. North America = 11 ... etc.).
- */
- uint8 __PAD16__[2];
-
-}tstrM2MScanRegion;
-
-/*!
-@struct \
- tstrM2MScan
-
-@brief
- Wi-Fi Scan Request
-
-@sa
- tenuM2mScanCh
-*/
-typedef struct {
- uint8 u8ChNum;
- /*!< The Wi-Fi RF Channel number
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-
-}tstrM2MScan;
-
-/*!
-@struct \
- tstrCyptoResp
-
-@brief
- crypto response
-*/
-typedef struct {
- sint8 s8Resp;
- /***/
- uint8 __PAD24__[3];
- /*
- */
-}tstrCyptoResp;
-
-
-/*!
-@struct \
- tstrM2mScanDone
-
-@brief
- Wi-Fi Scan Result
-*/
-typedef struct{
- uint8 u8NumofCh;
- /*!< Number of found APs
- */
- sint8 s8ScanState;
- /*!< Scan status
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mScanDone;
-
-
-/*!
-@struct \
- tstrM2mReqScanResult
-
-@brief Scan Result Request
-
- The Wi-Fi Scan results list is stored in Firmware. The application can request a certain scan result by its index.
-*/
-typedef struct {
- uint8 u8Index;
- /*!< Index of the desired scan result
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mReqScanResult;
-
-
-/*!
-@struct \
- tstrM2mWifiscanResult
-
-@brief Wi-Fi Scan Result
-
- Information corresponding to an AP in the Scan Result list identified by its order (index) in the list.
-*/
-typedef struct {
- uint8 u8index;
- /*!< AP index in the scan result list.
- */
- sint8 s8rssi;
- /*!< AP signal strength.
- */
- uint8 u8AuthType;
- /*!< AP authentication type.
- */
- uint8 u8ch;
- /*!< AP RF channel.
- */
- uint8 au8BSSID[6];
- /*!< BSSID of the AP.
- */
- uint8 au8SSID[M2M_MAX_SSID_LEN];
- /*!< AP ssid.
- */
- uint8 _PAD8_;
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mWifiscanResult;
-
-
-/*!
-@struct \
- tstrM2mWifiStateChanged
-
-@brief
- Wi-Fi Connection State
-
-@sa
- M2M_WIFI_DISCONNECTED, M2M_WIFI_CONNECTED, M2M_WIFI_REQ_CON_STATE_CHANGED,tenuM2mConnChangedErrcode
-*/
-typedef struct {
- uint8 u8CurrState;
- /*!< Current Wi-Fi connection state
- */
- uint8 u8ErrCode;
- /*!< Error type review tenuM2mConnChangedErrcode
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mWifiStateChanged;
-
-
-/*!
-@struct \
- tstrM2mPsType
-
-@brief
- Power Save Configuration
-
-@sa
- tenuPowerSaveModes
-*/
-typedef struct{
- uint8 u8PsType;
- /*!< Power save operating mode
- */
- uint8 u8BcastEn;
- /*!<
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mPsType;
-
-/*!
-@struct \
- tstrM2mSlpReqTime
-
-@brief
- Manual power save request sleep time
-
-*/
-typedef struct {
- /*!< Sleep time in ms
- */
- uint32 u32SleepTime;
-
-} tstrM2mSlpReqTime;
-
-/*!
-@struct \
- tstrM2mLsnInt
-
-@brief Listen interval
-
- It is the value of the Wi-Fi STA listen interval for power saving. It is given in units of Beacon period.
- Periodically after the listen interval fires, the WINC is wakeup and listen to the beacon and check for any buffered frames for it from the AP.
-*/
-typedef struct {
- uint16 u16LsnInt;
- /*!< Listen interval in Beacon period count.
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mLsnInt;
-
-
-/*!
-@struct \
- tstrM2MWifiMonitorModeCtrl
-
-@brief Wi-Fi Monitor Mode Filter
-
- This structure sets the filtering criteria for WLAN packets when monitoring mode is enable.
- The received packets matching the filtering parameters, are passed directly to the application.
-*/
-typedef struct{
- uint8 u8ChannelID;
- /* !< RF Channel ID. It must use values from tenuM2mScanCh
- */
- uint8 u8FrameType;
- /*!< It must use values from tenuWifiFrameType.
- */
- uint8 u8FrameSubtype;
- /*!< It must use values from tenuSubTypes.
- */
- uint8 au8SrcMacAddress[6];
- /* ZERO means DO NOT FILTER Source address.
- */
- uint8 au8DstMacAddress[6];
- /* ZERO means DO NOT FILTER Destination address.
- */
- uint8 au8BSSID[6];
- /* ZERO means DO NOT FILTER BSSID.
- */
- uint8 u8EnRecvHdr;
- /*
- Enable recv the full hder before the payload
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2MWifiMonitorModeCtrl;
-
-
-/*!
-@struct \
- tstrM2MWifiRxPacketInfo
-
-@brief Wi-Fi RX Frame Header
-
- The M2M application has the ability to allow Wi-Fi monitoring mode for receiving all Wi-Fi Raw frames matching a well defined filtering criteria.
- When a target Wi-Fi packet is received, the header information are extracted and assigned in this structure.
-*/
-typedef struct{
- uint8 u8FrameType;
- /*!< It must use values from tenuWifiFrameType.
- */
- uint8 u8FrameSubtype;
- /*!< It must use values from tenuSubTypes.
- */
- uint8 u8ServiceClass;
- /*!< Service class from Wi-Fi header.
- */
- uint8 u8Priority;
- /*!< Priority from Wi-Fi header.
- */
- uint8 u8HeaderLength;
- /*!< Frame Header length.
- */
- uint8 u8CipherType;
- /*!< Encryption type for the rx packet.
- */
- uint8 au8SrcMacAddress[6];
- /* ZERO means DO NOT FILTER Source address.
- */
- uint8 au8DstMacAddress[6];
- /* ZERO means DO NOT FILTER Destination address.
- */
- uint8 au8BSSID[6];
- /* ZERO means DO NOT FILTER BSSID.
- */
- uint16 u16DataLength;
- /*!< Data payload length (Header excluded).
- */
- uint16 u16FrameLength;
- /*!< Total frame length (Header + Data).
- */
- uint32 u32DataRateKbps;
- /*!< Data Rate in Kbps.
- */
- sint8 s8RSSI;
- /*!< RSSI.
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2MWifiRxPacketInfo;
-
-
-/*!
-@struct \
- tstrM2MWifiTxPacketInfo
-
-@brief Wi-Fi TX Packet Info
-
- The M2M Application has the ability to compose a RAW Wi-Fi frames (under the application responsibility).
- When transmitting a Wi-Fi packet, the application must supply the firmware with this structure for sending the target frame.
-*/
-typedef struct{
- uint16 u16PacketSize;
- /*!< Wlan frame length.
- */
- uint16 u16HeaderLength;
- /*!< Wlan frame header length.
- */
-}tstrM2MWifiTxPacketInfo;
-
-
-/*!
- @struct \
- tstrM2MP2PConnect
-
- @brief
- Set the device to operate in the Wi-Fi Direct (P2P) mode.
-*/
-typedef struct {
- uint8 u8ListenChannel;
- /*!< P2P Listen Channel (1, 6 or 11)
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2MP2PConnect;
-
-/*!
-@struct \
- tstrM2MAPConfig
-
-@brief AP Configuration
-
- This structure holds the configuration parameters for the M2M AP mode. It should be set by the application when
- it requests to enable the M2M AP operation mode. The M2M AP mode currently supports only WEP security (with
- the NO Security option available of course).
-*/
-typedef struct {
- /*!<
- Configuration parameters for the WiFi AP.
- */
- uint8 au8SSID[M2M_MAX_SSID_LEN];
- /*!< AP SSID
- */
- uint8 u8ListenChannel;
- /*!< Wi-Fi RF Channel which the AP will operate on
- */
- uint8 u8KeyIndx;
- /*!< Wep key Index
- */
- uint8 u8KeySz;
- /*!< Wep key Size
- */
- uint8 au8WepKey[WEP_104_KEY_STRING_SIZE + 1];
- /*!< Wep key
- */
- uint8 u8SecType;
- /*!< Security type: Open or WEP only in the current implementation
- */
- uint8 u8SsidHide;
- /*!< SSID Status "Hidden(1)/Visible(0)"
- */
- uint8 au8DHCPServerIP[4];
- /*!< Ap IP server address
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing alignment
- */
-}tstrM2MAPConfig;
-
-
-/*!
-@struct \
- tstrM2mServerInit
-
-@brief
- PS Server initialization.
-*/
-typedef struct {
- uint8 u8Channel;
- /*!< Server Listen channel
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mServerInit;
-
-
-/*!
-@struct \
- tstrM2mClientState
-
-@brief
- PS Client State.
-*/
-typedef struct {
- uint8 u8State;
- /*!< PS Client State
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mClientState;
-
-
-/*!
-@struct \
- tstrM2Mservercmd
-
-@brief
- PS Server CMD
-*/
-typedef struct {
- uint8 u8cmd;
- /*!< PS Server Cmd
- */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2Mservercmd;
-
-
-/*!
-@struct \
- tstrM2mSetMacAddress
-
-@brief
- Sets the MAC address from application. The WINC load the mac address from the effuse by default to the WINC configuration memory,
- but that function is used to let the application overwrite the configuration memory with the mac address from the host.
-
-@note
- It's recommended to call this only once before calling connect request and after the m2m_wifi_init
-*/
-typedef struct {
- uint8 au8Mac[6];
- /*!< MAC address array
- */
- uint8 __PAD16__[2];
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2mSetMacAddress;
-
-
-/*!
-@struct \
- tstrM2MDeviceNameConfig
-
-@brief Device name
-
- It is assigned by the application. It is used mainly for Wi-Fi Direct device
- discovery and WPS device information.
-*/
-typedef struct {
- uint8 au8DeviceName[M2M_DEVICE_NAME_MAX];
- /*!< NULL terminated device name
- */
-}tstrM2MDeviceNameConfig;
-
-
-/*!
-@struct \
- tstrM2MIPConfig
-
-@brief
- Static IP configuration.
-
-@note
- All member IP addresses are expressed in Network Byte Order (eg. "192.168.10.1" will be expressed as 0x010AA8C0).
- */
-typedef struct {
- uint32 u32StaticIP;
- /*!< The static IP assigned to the device.
- */
- uint32 u32Gateway;
- /*!< IP of the Default internet gateway.
- */
- uint32 u32DNS;
- /*!< IP for the DNS server.
- */
- uint32 u32SubnetMask;
- /*!< Subnet mask for the local area network.
- */
-} tstrM2MIPConfig;
-
-/*!
-@struct \
- tstrM2mIpRsvdPkt
-
-@brief
- Received Packet Size and Data Offset
-
- */
-typedef struct{
- uint16 u16PktSz;
- uint16 u16PktOffset;
-} tstrM2mIpRsvdPkt;
-
-
-/*!
-@struct \
- tstrM2MProvisionModeConfig
-
-@brief
- M2M Provisioning Mode Configuration
- */
-
-typedef struct {
- tstrM2MAPConfig strApConfig;
- /*!<
- Configuration parameters for the WiFi AP.
- */
- char acHttpServerDomainName[64];
- /*!<
- The device domain name for HTTP provisioning.
- */
- uint8 u8EnableRedirect;
- /*!<
- A flag to enable/disable HTTP redirect feature for the HTTP Provisioning server. If the Redirect is enabled,
- all HTTP traffic (http://URL) from the device associated with WINC AP will be redirected to the HTTP Provisioning Web page.
- - 0 : Disable HTTP Redirect.
- - 1 : Enable HTTP Redirect.
- */
- uint8 __PAD24__[3];
-}tstrM2MProvisionModeConfig;
-
-
-/*!
-@struct \
- tstrM2MProvisionInfo
-
-@brief
- M2M Provisioning Information obtained from the HTTP Provisioning server.
- */
-typedef struct{
- uint8 au8SSID[M2M_MAX_SSID_LEN];
- /*!<
- Provisioned SSID.
- */
- uint8 au8Password[M2M_MAX_PSK_LEN];
- /*!<
- Provisioned Password.
- */
- uint8 u8SecType;
- /*!<
- Wifi Security type.
- */
- uint8 u8Status;
- /*!<
- Provisioning status. It must be checked before reading the provisioning information. It may be
- - M2M_SUCCESS : Provision successful.
- - M2M_FAIL : Provision Failed.
- */
-}tstrM2MProvisionInfo;
-
-
-/*!
-@struct \
- tstrM2MConnInfo
-
-@brief
- M2M Provisioning Information obtained from the HTTP Provisioning server.
- */
-typedef struct{
- char acSSID[M2M_MAX_SSID_LEN];
- /*!< AP connection SSID name */
- uint8 u8SecType;
- /*!< Security type */
- uint8 au8IPAddr[4];
- /*!< Connection IP address */
- uint8 au8MACAddress[6];
- /*!< MAC address of the peer Wi-Fi station */
- sint8 s8RSSI;
- /*!< Connection RSSI signal */
- uint8 __PAD24__[3];
- /*!< Padding bytes for forcing 4-byte alignment */
-}tstrM2MConnInfo;
-
-/*!
-@struct \
- tstrOtaInitHdr
-
-@brief
- OTA Image Header
- */
-
-typedef struct{
- uint32 u32OtaMagicValue;
- /*!< Magic value kept in the OTA image after the
- sha256 Digest buffer to define the Start of OTA Header */
- uint32 u32OtaPayloadSzie;
- /*!<
- The Total OTA image payload size, include the sha256 key size
- */
-
-}tstrOtaInitHdr;
-
-
-/*!
-@struct \
- tstrOtaControlSec
-
-@brief
- Control section structure is used to define the working image and
- the validity of the roll-back image and its offset, also both firmware versions is kept in that structure.
- */
-
-typedef struct {
- uint32 u32OtaMagicValue;
-/*!<
- Magic value used to ensure the structure is valid or not
-*/
- uint32 u32OtaFormatVersion;
-/*!<
- NA NA NA Flash version cs struct version
- 00 00 00 00 00
- Control structure format version, the value will be incremented in case of structure changed or updated
-*/
- uint32 u32OtaSequenceNumber;
-/*!<
- Sequence number is used while update the control structure to keep track of how many times that section updated
-*/
- uint32 u32OtaLastCheckTime;
-/*!<
- Last time OTA check for update
-*/
- uint32 u32OtaCurrentworkingImagOffset;
-/*!<
- Current working offset in flash
-*/
- uint32 u32OtaCurrentworkingImagFirmwareVer;
-/*!<
- current working image version ex 18.0.1
-*/
- uint32 u32OtaRollbackImageOffset;
-/*!<
- Roll-back image offset in flash
-*/
- uint32 u32OtaRollbackImageValidStatus;
-/*!<
- roll-back image valid status
-*/
- uint32 u32OtaRollbackImagFirmwareVer;
-/*!<
- Roll-back image version (ex 18.0.3)
-*/
- uint32 u32OtaCortusAppWorkingOffset;
-/*!<
- cortus app working offset in flash
-*/
- uint32 u32OtaCortusAppWorkingValidSts;
-/*!<
- Working Cortus app valid status
-*/
- uint32 u32OtaCortusAppWorkingVer;
-/*!<
- Working cortus app version (ex 18.0.3)
-*/
- uint32 u32OtaCortusAppRollbackOffset;
-/*!<
- cortus app rollback offset in flash
-*/
- uint32 u32OtaCortusAppRollbackValidSts;
-/*!<
- roll-back cortus app valid status
-*/
- uint32 u32OtaCortusAppRollbackVer;
-/*!<
- Roll-back cortus app version (ex 18.0.3)
-*/
- uint32 u32OtaControlSecCrc;
-/*!<
- CRC for the control structure to ensure validity
-*/
-} tstrOtaControlSec;
-
-/*!
-@enum \
- tenuOtaUpdateStatus
-
-@brief
- OTA return status
-*/
-typedef enum {
- OTA_STATUS_SUCSESS = 0,
- /*!< OTA Success with not errors. */
- OTA_STATUS_FAIL = 1,
- /*!< OTA generic fail. */
- OTA_STATUS_INVAILD_ARG = 2,
- /*!< Invalid or malformed download URL. */
- OTA_STATUS_INVAILD_RB_IMAGE = 3,
- /*!< Invalid rollback image. */
- OTA_STATUS_INVAILD_FLASH_SIZE = 4,
- /*!< Flash size on device is not enough for OTA. */
- OTA_STATUS_AlREADY_ENABLED = 5,
- /*!< An OTA operation is already enabled. */
- OTA_STATUS_UPDATE_INPROGRESS = 6,
- /*!< An OTA operation update is in progress */
- OTA_STATUS_IMAGE_VERIF_FAILED = 7,
- /*!< OTA Verfication failed */
- OTA_STATUS_CONNECTION_ERROR = 8,
- /*!< OTA connection error */
- OTA_STATUS_SERVER_ERROR = 9,
- /*!< OTA server Error (file not found or else ...) */
-} tenuOtaUpdateStatus;
-/*!
-@enum \
- tenuOtaUpdateStatusType
-
-@brief
- OTA update Status type
-*/
-typedef enum {
-
- DL_STATUS = 1,
- /*!< Download OTA file status
- */
- SW_STATUS = 2,
- /*!< Switching to the upgrade firmware status
- */
- RB_STATUS = 3,
- /*!< Roll-back status
- */
-}tenuOtaUpdateStatusType;
-
-
-/*!
-@struct \
- tstrOtaUpdateStatusResp
-
-@brief
- OTA Update Information
-
-@sa
- tenuWPSTrigger
-*/
-typedef struct {
- uint8 u8OtaUpdateStatusType;
- /*!<
- Status type tenuOtaUpdateStatusType
- */
- uint8 u8OtaUpdateStatus;
- /*!<
- OTA_SUCCESS
- OTA_ERR_WORKING_IMAGE_LOAD_FAIL
- OTA_ERR_INVAILD_CONTROL_SEC
- M2M_ERR_OTA_SWITCH_FAIL
- M2M_ERR_OTA_START_UPDATE_FAIL
- M2M_ERR_OTA_ROLLBACK_FAIL
- M2M_ERR_OTA_INVAILD_FLASH_SIZE
- M2M_ERR_OTA_INVAILD_ARG
- */
- uint8 _PAD16_[2];
-}tstrOtaUpdateStatusResp;
-
-/*!
-@struct \
- tstrOtaUpdateInfo
-
-@brief
- OTA Update Information
-
-@sa
- tenuWPSTrigger
-*/
-typedef struct {
- uint32 u8NcfUpgradeVersion;
- /*!< NCF OTA Upgrade Version
- */
- uint32 u8NcfCurrentVersion;
- /*!< NCF OTA Current firmware version
- */
- uint32 u8NcdUpgradeVersion;
- /*!< NCD (host) upgraded version (if the u8NcdRequiredUpgrade == true)
- */
- uint8 u8NcdRequiredUpgrade;
- /*!< NCD Required upgrade to the above version
- */
- uint8 u8DownloadUrlOffset;
- /*!< Download URL offset in the received packet
- */
- uint8 u8DownloadUrlSize;
- /*!< Download URL size in the received packet
- */
- uint8 __PAD8__;
- /*!< Padding bytes for forcing 4-byte alignment
- */
-} tstrOtaUpdateInfo;
-
-/*!
-@struct \
- tstrSystemTime
-
-@brief
- Used for time storage.
-*/
-typedef struct{
- uint16 u16Year;
- uint8 u8Month;
- uint8 u8Day;
- uint8 u8Hour;
- uint8 u8Minute;
- uint8 u8Second;
-}tstrSystemTime;
-
-/*!
-@struct \
- tstrM2MMulticastMac
-
-@brief
- M2M add/remove multi-cast mac address
- */
- typedef struct {
- uint8 au8macaddress[M2M_MAC_ADDRES_LEN];
- /*!<
- Mac address needed to be added or removed from filter.
- */
- uint8 u8AddRemove;
- /*!<
- set by 1 to add or 0 to remove from filter.
- */
- uint8 __PAD8__;
- /*!< Padding bytes for forcing 4-byte alignment
- */
-}tstrM2MMulticastMac;
-
-/*!
-@struct \
- tstrPrng
-
-@brief
- M2M Request PRNG
- */
- typedef struct {
- /*!<
- return buffer address
- */
- uint8 *pu8RngBuff;
- /*!<
- PRNG size requested
- */
- uint16 u16PrngSize;
- /*!<
- PRNG pads
- */
- uint8 __PAD16__[2];
-}tstrPrng;
-
-
- /**@}*/
-
-#endif
+/**
+ *
+ * \file
+ *
+ * \brief WINC Application Interface Internal Types.
+ *
+ * Copyright (c) 2015 Atmel Corporation. All rights reserved.
+ *
+ * \asf_license_start
+ *
+ * \page License
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. 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.
+ *
+ * 3. The name of Atmel may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
+ *
+ * \asf_license_stop
+ *
+ */
+
+#ifndef __M2M_WIFI_TYPES_H__
+#define __M2M_WIFI_TYPES_H__
+
+
+/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+INCLUDES
+*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
+
+#ifndef _BOOT_
+#ifndef _FIRMWARE_
+#include "common/include/nm_common.h"
+#else
+#include "m2m_common.h"
+#endif
+#endif
+
+
+/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+MACROS
+*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
+/**@defgroup WlanDefines Defines
+ * @ingroup m2m_wifi
+ */
+/**@{*/
+#define M2M_MAJOR_SHIFT (8)
+#define M2M_MINOR_SHIFT (4)
+#define M2M_PATCH_SHIFT (0)
+
+#define M2M_DRV_VERSION_SHIFT (16)
+#define M2M_FW_VERSION_SHIFT (0)
+
+#define M2M_GET_MAJOR(ver_info_hword) ((uint8)((ver_info_hword) >> M2M_MAJOR_SHIFT) & 0xff)
+#define M2M_GET_MINOR(ver_info_hword) ((uint8)((ver_info_hword) >> M2M_MINOR_SHIFT) & 0x0f)
+#define M2M_GET_PATCH(ver_info_hword) ((uint8)((ver_info_hword) >> M2M_PATCH_SHIFT) & 0x0f)
+
+#define M2M_GET_FW_VER(ver_info_word) ((uint16) ((ver_info_word) >> M2M_FW_VERSION_SHIFT))
+#define M2M_GET_DRV_VER(ver_info_word) ((uint16) ((ver_info_word) >> M2M_DRV_VERSION_SHIFT))
+
+#define M2M_GET_DRV_MAJOR(ver_info_word) M2M_GET_MAJOR(M2M_GET_DRV_VER(ver_info_word))
+#define M2M_GET_DRV_MINOR(ver_info_word) M2M_GET_MINOR(M2M_GET_DRV_VER(ver_info_word))
+#define M2M_GET_DRV_PATCH(ver_info_word) M2M_GET_PATCH(M2M_GET_DRV_VER(ver_info_word))
+
+#define M2M_GET_FW_MAJOR(ver_info_word) M2M_GET_MAJOR(M2M_GET_FW_VER(ver_info_word))
+#define M2M_GET_FW_MINOR(ver_info_word) M2M_GET_MINOR(M2M_GET_FW_VER(ver_info_word))
+#define M2M_GET_FW_PATCH(ver_info_word) M2M_GET_PATCH(M2M_GET_FW_VER(ver_info_word))
+
+#define M2M_MAKE_VERSION(major, minor, patch) ( \
+ ((uint16)((major) & 0xff) << M2M_MAJOR_SHIFT) | \
+ ((uint16)((minor) & 0x0f) << M2M_MINOR_SHIFT) | \
+ ((uint16)((patch) & 0x0f) << M2M_PATCH_SHIFT))
+
+#define M2M_MAKE_VERSION_INFO(fw_major, fw_minor, fw_patch, drv_major, drv_minor, drv_patch) \
+ ( \
+ ( ((uint32)M2M_MAKE_VERSION((fw_major), (fw_minor), (fw_patch))) << M2M_FW_VERSION_SHIFT) | \
+ ( ((uint32)M2M_MAKE_VERSION((drv_major), (drv_minor), (drv_patch))) << M2M_DRV_VERSION_SHIFT))
+#define REL_19_4_6_VER M2M_MAKE_VERSION_INFO(19,4,6,19,3,0)
+#define REL_19_4_5_VER M2M_MAKE_VERSION_INFO(19,4,5,19,3,0)
+#define REL_19_4_4_VER M2M_MAKE_VERSION_INFO(19,4,4,19,3,0)
+#define REL_19_4_3_VER M2M_MAKE_VERSION_INFO(19,4,3,19,3,0)
+#define REL_19_4_2_VER M2M_MAKE_VERSION_INFO(19,4,2,19,3,0)
+#define REL_19_4_1_VER M2M_MAKE_VERSION_INFO(19,4,1,19,3,0)
+#define REL_19_4_0_VER M2M_MAKE_VERSION_INFO(19,4,0,19,3,0)
+#define REL_19_3_1_VER M2M_MAKE_VERSION_INFO(19,3,1,19,3,0)
+#define REL_19_3_0_VER M2M_MAKE_VERSION_INFO(19,3,0,19,3,0)
+#define REL_19_2_2_VER M2M_MAKE_VERSION_INFO(19,2,2,19,2,0)
+#define REL_19_2_1_VER M2M_MAKE_VERSION_INFO(19,2,1,19,2,0)
+#define REL_19_2_0_VER M2M_MAKE_VERSION_INFO(19,2,0,19,2,0)
+#define REL_19_1_0_VER M2M_MAKE_VERSION_INFO(19,1,0,18,2,0)
+#define REL_19_0_0_VER M2M_MAKE_VERSION_INFO(19,0,0,18,1,1)
+
+/*======*======*======*======*
+ FIRMWARE VERSION NO INFO
+ *======*======*======*======*/
+
+#define M2M_FIRMWARE_VERSION_MAJOR_NO (19)
+/*!< Firmware Major release version number.
+*/
+
+
+#define M2M_FIRMWARE_VERSION_MINOR_NO (4)
+/*!< Firmware Minor release version number.
+*/
+
+#define M2M_FIRMWARE_VERSION_PATCH_NO (7)
+/*!< Firmware patch release version number.
+*/
+
+/*======*======*======*======*
+ SUPPORTED DRIVER VERSION NO INFO
+ *======*======*======*======*/
+
+#define M2M_DRIVER_VERSION_MAJOR_NO (19)
+/*!< Driver Major release version number.
+*/
+
+
+#define M2M_DRIVER_VERSION_MINOR_NO (3)
+/*!< Driver Minor release version number.
+*/
+
+#define M2M_DRIVER_VERSION_PATCH_NO (0)
+/*!< Driver patch release version number.
+*/
+
+
+#if !defined(M2M_FIRMWARE_VERSION_MAJOR_NO) || !defined(M2M_FIRMWARE_VERSION_MINOR_NO)
+#error Undefined version number
+#endif
+
+#define M2M_BUFFER_MAX_SIZE (1600UL - 4)
+/*!< Maximum size for the shared packet buffer.
+ */
+
+
+#define M2M_MAC_ADDRES_LEN 6
+/*!< The size fo 802 MAC address.
+ */
+
+#define M2M_ETHERNET_HDR_OFFSET 34
+/*!< The offset of the Ethernet header within the WLAN Tx Buffer.
+ */
+
+
+#define M2M_ETHERNET_HDR_LEN 14
+/*!< Length of the Etherenet header in bytes.
+*/
+
+
+#define M2M_MAX_SSID_LEN 33
+/*!< Maximum size for the Wi-Fi SSID including the NULL termination.
+ */
+
+
+#define M2M_MAX_PSK_LEN 65
+/*!< Maximum size for the WPA PSK including the NULL termination.
+ */
+
+
+#define M2M_DEVICE_NAME_MAX 48
+/*!< Maximum Size for the device name including the NULL termination.
+ */
+
+
+#define M2M_LISTEN_INTERVAL 1
+/*!< The STA uses the Listen Interval parameter to indicate to the AP how
+ many beacon intervals it shall sleep before it retrieves the queued frames
+ from the AP.
+*/
+
+#define MAX_HIDDEN_SITES 4
+/*!<
+ max number of hidden SSID suuported by scan request
+*/
+
+
+#define M2M_1X_USR_NAME_MAX 21
+/*!< The maximum size of the user name including the NULL termination.
+ It is used for RADIUS authentication in case of connecting the device to
+ an AP secured with WPA-Enterprise.
+*/
+
+
+#define M2M_1X_PWD_MAX 41
+/*!< The maximum size of the password including the NULL termination.
+ It is used for RADIUS authentication in case of connecting the device to
+ an AP secured with WPA-Enterprise.
+*/
+
+#define M2M_CUST_IE_LEN_MAX 252
+/*!< The maximum size of IE (Information Element).
+*/
+
+#define PWR_DEFAULT PWR_HIGH
+/*********************
+ *
+ * WIFI GROUP requests
+ */
+
+#define M2M_CONFIG_CMD_BASE 1
+/*!< The base value of all the host configuration commands opcodes.
+*/
+#define M2M_STA_CMD_BASE 40
+/*!< The base value of all the station mode host commands opcodes.
+*/
+#define M2M_AP_CMD_BASE 70
+/*!< The base value of all the Access Point mode host commands opcodes.
+*/
+#define M2M_P2P_CMD_BASE 90
+/*!< The base value of all the P2P mode host commands opcodes.
+*/
+#define M2M_SERVER_CMD_BASE 100
+/*!< The base value of all the power save mode host commands codes.
+*/
+/**********************
+ * OTA GROUP requests
+ */
+#define M2M_OTA_CMD_BASE 100
+/*!< The base value of all the OTA mode host commands opcodes.
+ * The OTA Have special group so can extended from 1-M2M_MAX_GRP_NUM_REQ
+*/
+/***********************
+ *
+ * CRYPTO group requests
+ */
+#define M2M_CRYPTO_CMD_BASE 1
+/*!< The base value of all the crypto mode host commands opcodes.
+ * The crypto Have special group so can extended from 1-M2M_MAX_GRP_NUM_REQ
+*/
+
+#define M2M_MAX_GRP_NUM_REQ (127)
+/*!< max number of request in one group equal to 127 as the last bit reserved for config or data pkt
+*/
+
+#define WEP_40_KEY_STRING_SIZE ((uint8)10)
+/*!< Indicate the wep key size in bytes for 40 bit string passphrase.
+*/
+
+#define WEP_104_KEY_STRING_SIZE ((uint8)26)
+/*!< Indicate the wep key size in bytes for 104 bit string passphrase.
+*/
+#define WEP_KEY_MAX_INDEX ((uint8)4)
+/*!< Indicate the max key index value for WEP authentication
+*/
+#define M2M_SHA256_CONTEXT_BUFF_LEN (128)
+/*!< sha256 context size
+*/
+#define M2M_SCAN_DEFAULT_NUM_SLOTS (2)
+/*!< The default. number of scan slots performed by the WINC board.
+*/
+#define M2M_SCAN_DEFAULT_SLOT_TIME (30)
+/*!< The default. duration in miliseconds of a scan slots performed by the WINC board.
+*/
+#define M2M_SCAN_DEFAULT_NUM_PROBE (2)
+/*!< The default. number of scan slots performed by the WINC board.
+*/
+
+
+/*======*======*======*======*
+ CONNECTION ERROR DEFINITIONS
+ *======*======*======*======*/
+typedef enum {
+ M2M_DEFAULT_CONN_INPROGRESS = ((sint8)-23),
+ /*!<
+ A failure that indicates that a default connection or forced connection is in progress
+ */
+ M2M_DEFAULT_CONN_FAIL,
+ /*!<
+ A failure response that indicates that the winc failed to connect to the cached network
+ */
+ M2M_DEFAULT_CONN_SCAN_MISMATCH,
+ /*!<
+ A failure response that indicates that no one of the cached networks
+ was found in the scan results, as a result to the function call m2m_default_connect.
+ */
+ M2M_DEFAULT_CONN_EMPTY_LIST
+ /*!<
+ A failure response that indicates an empty network list as
+ a result to the function call m2m_default_connect.
+ */
+
+}tenuM2mDefaultConnErrcode;
+
+
+
+
+/*======*======*======*======*
+ OTA DEFINITIONS
+ *======*======*======*======*/
+
+#define OTA_STATUS_VALID (0x12526285)
+/*!<
+ Magic value updated in the Control structure in case of ROLLACK image Valid
+*/
+#define OTA_STATUS_INVALID (0x23987718)
+/*!<
+ Magic value updated in the Control structure in case of ROLLACK image InValid
+*/
+#define OTA_MAGIC_VALUE (0x1ABCDEF9)
+/*!<
+ Magic value set at the beginning of the OTA image header
+*/
+
+#define OTA_FORMAT_VER_0 (0) /*Till 19.2.2 format*/
+#define OTA_FORMAT_VER_1 (1) /*starting from 19.3.0 CRC is used and sequence number is used*/
+/*!<
+ Control structure format version
+*/
+#define OTA_SHA256_DIGEST_SIZE (32)
+/*!<
+ Sha256 digest size in the OTA image,
+ the sha256 digest is set at the beginning of image before the OTA header
+*/
+
+#define OTA_SUCCESS (0)
+/*!<
+ OTA Success status
+*/
+#define OTA_ERR_WORKING_IMAGE_LOAD_FAIL ((sint8)-1)
+/*!<
+ Failure to load the firmware image
+*/
+#define OTA_ERR_INVAILD_CONTROL_SEC ((sint8)-2)
+/*!<
+ Control structure is being corrupted
+*/
+#define M2M_ERR_OTA_SWITCH_FAIL ((sint8)-3)
+/*!<
+ switching to the updated image failed as may be the image is invalid
+*/
+#define M2M_ERR_OTA_START_UPDATE_FAIL ((sint8)-4)
+/*!<
+ OTA update fail due to multiple reasons
+ - Connection failure
+ - Image integrity fail
+
+*/
+#define M2M_ERR_OTA_ROLLBACK_FAIL ((sint8)-5)
+/*!<
+ Roll-back failed due to Roll-back image is not valid
+*/
+#define M2M_ERR_OTA_INVAILD_FLASH_SIZE ((sint8)-6)
+/*!<
+ The OTA Support at least 4MB flash size, if the above error will appear if the current flash is less than 4M
+*/
+#define M2M_ERR_OTA_INVAILD_ARG ((sint8)-7)
+/*!<
+ Invalid argument in any OTA Function
+*/
+/**@}*/
+
+/**
+* @addtogroup WlanEnums Enumerations and Typedefs
+* @ingroup m2m_wifi
+*/
+ /**@{*/
+
+/*!
+@enum \
+ tenuM2mConnChangedErrcode
+
+@brief
+
+*/
+typedef enum {
+ M2M_ERR_SCAN_FAIL = ((uint8)1),
+ /*!< Indicate that the WINC board has failed to perform the scan operation.
+ */
+ M2M_ERR_JOIN_FAIL,
+ /*!< Indicate that the WINC board has failed to join the BSS .
+ */
+ M2M_ERR_AUTH_FAIL,
+ /*!< Indicate that the WINC board has failed to authenticate with the AP.
+ */
+ M2M_ERR_ASSOC_FAIL,
+ /*!< Indicate that the WINC board has failed to associate with the AP.
+ */
+ M2M_ERR_CONN_INPROGRESS,
+ /*!< Indicate that the WINC board has another connection request in progress.
+ */
+}tenuM2mConnChangedErrcode;
+/*!
+@enum \
+ tenuM2mWepKeyIndex
+
+@brief
+
+*/
+typedef enum {
+ M2M_WIFI_WEP_KEY_INDEX_1 = ((uint8) 1),
+ M2M_WIFI_WEP_KEY_INDEX_2,
+ M2M_WIFI_WEP_KEY_INDEX_3,
+ M2M_WIFI_WEP_KEY_INDEX_4,
+ /*!< Index for WEP key Authentication
+ */
+}tenuM2mWepKeyIndex;
+
+/*!
+@enum \
+ tenuM2mPwrMode
+
+@brief
+
+*/
+typedef enum {
+ PWR_AUTO = ((uint8) 1),
+ /*!< FW will decide the best power mode to use internally. */
+ PWR_LOW1,
+ /*low power mode #1*/
+ PWR_LOW2,
+ /*low power mode #2*/
+ PWR_HIGH,
+ /* high power mode*/
+}tenuM2mPwrMode;
+
+/*!
+@struct \
+ tstrM2mPwrState
+
+@brief
+ Power Mode
+*/
+typedef struct {
+ uint8 u8PwrMode;
+ /*!< power Save Mode
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mPwrMode;
+/*!
+@enum \
+ tenuM2mTxPwrLevel
+
+@brief
+
+*/
+typedef enum {
+ TX_PWR_HIGH = ((uint8) 1),
+ /*!< PPA Gain 6dbm PA Gain 18dbm */
+ TX_PWR_MED,
+ /*!< PPA Gain 6dbm PA Gain 12dbm */
+ TX_PWR_LOW,
+ /*!< PPA Gain 6dbm PA Gain 6dbm */
+}tenuM2mTxPwrLevel;
+
+/*!
+@struct \
+ tstrM2mTxPwrLevel
+
+@brief
+ Tx power level
+*/
+typedef struct {
+ uint8 u8TxPwrLevel;
+ /*!< Tx power level
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mTxPwrLevel;
+
+/*!
+@struct \
+ tstrM2mEnableLogs
+
+@brief
+ Enable Firmware logs
+*/
+typedef struct {
+ uint8 u8Enable;
+ /*!< Enable/Disable firmware logs
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mEnableLogs;
+
+/*!
+@struct \
+ tstrM2mBatteryVoltage
+
+@brief
+ Battery Voltage
+*/
+typedef struct {
+ //Note: on SAMD D21 the size of double is 8 Bytes
+ uint16 u16BattVolt;
+ /*!< Battery Voltage
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mBatteryVoltage;
+
+/*!
+@enum \
+ tenuM2mReqGroup
+
+@brief
+*/
+typedef enum{
+ M2M_REQ_GROUP_MAIN = 0,
+ M2M_REQ_GROUP_WIFI,
+ M2M_REQ_GROUP_IP,
+ M2M_REQ_GROUP_HIF,
+ M2M_REQ_GROUP_OTA,
+ M2M_REQ_GROUP_SSL,
+ M2M_REQ_GROUP_CRYPTO,
+ M2M_REQ_GROUP_SIGMA,
+}tenuM2mReqGroup;
+
+/*!
+@enum \
+ tenuM2mReqpkt
+
+@brief
+*/
+typedef enum{
+ M2M_REQ_CONFIG_PKT,
+ M2M_REQ_DATA_PKT = 0x80 /*BIT7*/
+}tenuM2mReqpkt;
+/*!
+@enum \
+ tenuM2mConfigCmd
+
+@brief
+ This enum contains all the host commands used to configure the WINC board.
+
+*/
+typedef enum {
+ M2M_WIFI_REQ_RESTART = M2M_CONFIG_CMD_BASE,
+ /*!<
+ Restart the WINC MAC layer, it's doesn't restart the IP layer.
+ */
+ M2M_WIFI_REQ_SET_MAC_ADDRESS,
+ /*!<
+ Set the WINC mac address (not possible for production effused boards).
+ */
+ M2M_WIFI_REQ_CURRENT_RSSI,
+ /*!<
+ Request the current connected AP RSSI.
+ */
+ M2M_WIFI_RESP_CURRENT_RSSI,
+ /*!<
+ Response to M2M_WIFI_REQ_CURRENT_RSSI with the RSSI value.
+ */
+ M2M_WIFI_REQ_GET_CONN_INFO,
+ /*!< Request connection information command.
+ */
+ M2M_WIFI_RESP_CONN_INFO,
+
+ /*!< Connect with default AP response.
+ */
+ M2M_WIFI_REQ_SET_DEVICE_NAME,
+ /*!<
+ Set the WINC device name property.
+ */
+ M2M_WIFI_REQ_START_PROVISION_MODE,
+ /*!<
+ Start the provisioning mode for the M2M Device.
+ */
+ M2M_WIFI_RESP_PROVISION_INFO,
+ /*!<
+ Send the provisioning information to the host.
+ */
+ M2M_WIFI_REQ_STOP_PROVISION_MODE,
+ /*!<
+ Stop the current running provision mode.
+ */
+ M2M_WIFI_REQ_SET_SYS_TIME,
+ /*!<
+ Set time of day from host.
+ */
+ M2M_WIFI_REQ_ENABLE_SNTP_CLIENT,
+ /*!<
+ Enable the simple network time protocol to get the
+ time from the Internet. this is required for security purposes.
+ */
+ M2M_WIFI_REQ_DISABLE_SNTP_CLIENT,
+ /*!<
+ Disable the simple network time protocol for applications that
+ do not need it.
+ */
+ M2M_WIFI_RESP_MEMORY_RECOVER,
+ /*!<
+ * Reserved for debuging
+ * */
+ M2M_WIFI_REQ_CUST_INFO_ELEMENT,
+ /*!< Add Custom ELement to Beacon Managament Frame.
+ */
+ M2M_WIFI_REQ_SCAN,
+ /*!< Request scan command.
+ */
+ M2M_WIFI_RESP_SCAN_DONE,
+ /*!< Scan complete notification response.
+ */
+ M2M_WIFI_REQ_SCAN_RESULT,
+ /*!< Request Scan results command.
+ */
+ M2M_WIFI_RESP_SCAN_RESULT,
+ /*!< Request Scan results resopnse.
+ */
+ M2M_WIFI_REQ_SET_SCAN_OPTION,
+ /*!< Set Scan options "slot time, slot number .. etc" .
+ */
+ M2M_WIFI_REQ_SET_SCAN_REGION,
+ /*!< Set scan region.
+ */
+ M2M_WIFI_REQ_SET_POWER_PROFILE,
+ /*!< The API shall set power mode to one of 3 modes
+ */
+ M2M_WIFI_REQ_SET_TX_POWER,
+ /*!< API to set TX power.
+ */
+ M2M_WIFI_REQ_SET_BATTERY_VOLTAGE,
+ /*!< API to set Battery Voltage.
+ */
+ M2M_WIFI_REQ_SET_ENABLE_LOGS,
+ /*!< API to set Battery Voltage.
+ */
+ M2M_WIFI_REQ_GET_SYS_TIME,
+ /*!<
+ REQ GET time of day from WINC.
+ */
+ M2M_WIFI_RESP_GET_SYS_TIME,
+ /*!<
+ RESP time of day from host.
+ */
+ M2M_WIFI_REQ_SEND_ETHERNET_PACKET,
+ /*!< Send Ethernet packet in bypass mode.
+ */
+ M2M_WIFI_RESP_ETHERNET_RX_PACKET,
+ /*!< Receive Ethernet packet in bypass mode.
+ */
+ M2M_WIFI_REQ_SET_MAC_MCAST,
+ /*!< Set the WINC multicast filters.
+ */
+ M2M_WIFI_REQ_GET_PRNG,
+ /*!< Request PRNG.
+ */
+ M2M_WIFI_RESP_GET_PRNG,
+ /*!< Response for PRNG.
+ */
+ M2M_WIFI_REQ_SCAN_SSID_LIST,
+ /*!< Request scan with list of hidden SSID plus the broadcast scan.
+ */
+ M2M_WIFI_MAX_CONFIG_ALL,
+}tenuM2mConfigCmd;
+
+/*!
+@enum \
+ tenuM2mStaCmd
+
+@brief
+ This enum contains all the WINC commands while in Station mode.
+*/
+typedef enum {
+ M2M_WIFI_REQ_CONNECT = M2M_STA_CMD_BASE,
+ /*!< Connect with AP command.
+ */
+ M2M_WIFI_REQ_DEFAULT_CONNECT,
+ /*!< Connect with default AP command.
+ */
+ M2M_WIFI_RESP_DEFAULT_CONNECT,
+ /*!< Request connection information response.
+ */
+ M2M_WIFI_REQ_DISCONNECT,
+ /*!< Request to disconnect from AP command.
+ */
+ M2M_WIFI_RESP_CON_STATE_CHANGED,
+ /*!< Connection state changed response.
+ */
+ M2M_WIFI_REQ_SLEEP,
+ /*!< Set PS mode command.
+ */
+ M2M_WIFI_REQ_WPS_SCAN,
+ /*!< Request WPS scan command.
+ */
+ M2M_WIFI_REQ_WPS,
+ /*!< Request WPS start command.
+ */
+ M2M_WIFI_REQ_START_WPS,
+ /*!< This command is for internal use by the WINC and
+ should not be used by the host driver.
+ */
+ M2M_WIFI_REQ_DISABLE_WPS,
+ /*!< Request to disable WPS command.
+ */
+ M2M_WIFI_REQ_DHCP_CONF,
+ /*!< Response indicating that IP address was obtained.
+ */
+ M2M_WIFI_RESP_IP_CONFIGURED,
+ /*!< This command is for internal use by the WINC and
+ should not be used by the host driver.
+ */
+ M2M_WIFI_RESP_IP_CONFLICT,
+ /*!< Response indicating a conflict in obtained IP address.
+ The user should re attempt the DHCP request.
+ */
+ M2M_WIFI_REQ_ENABLE_MONITORING,
+ /*!< Request to enable monitor mode command.
+ */
+ M2M_WIFI_REQ_DISABLE_MONITORING,
+ /*!< Request to disable monitor mode command.
+ */
+ M2M_WIFI_RESP_WIFI_RX_PACKET,
+ /*!< Indicate that a packet was received in monitor mode.
+ */
+ M2M_WIFI_REQ_SEND_WIFI_PACKET,
+ /*!< Send packet in monitor mode.
+ */
+ M2M_WIFI_REQ_LSN_INT,
+ /*!< Set WiFi listen interval.
+ */
+ M2M_WIFI_REQ_DOZE,
+ /*!< Used to force the WINC to sleep in manual PS mode.
+ */
+ M2M_WIFI_MAX_STA_ALL,
+} tenuM2mStaCmd;
+
+/*!
+@enum \
+ tenuM2mApCmd
+
+@brief
+ This enum contains all the WINC commands while in AP mode.
+*/
+typedef enum {
+ M2M_WIFI_REQ_ENABLE_AP = M2M_AP_CMD_BASE,
+ /*!< Enable AP mode command.
+ */
+ M2M_WIFI_REQ_DISABLE_AP,
+ /*!< Disable AP mode command.
+ */
+ M2M_WIFI_MAX_AP_ALL,
+}tenuM2mApCmd;
+
+/*!
+@enum \
+ tenuM2mP2pCmd
+
+@brief
+ This enum contains all the WINC commands while in P2P mode.
+*/
+typedef enum {
+ M2M_WIFI_REQ_P2P_INT_CONNECT = M2M_P2P_CMD_BASE,
+ /*!< This command is for internal use by the WINC and
+ should not be used by the host driver.
+ */
+ M2M_WIFI_REQ_ENABLE_P2P,
+ /*!< Enable P2P mode command.
+ */
+ M2M_WIFI_REQ_DISABLE_P2P,
+ /*!< Disable P2P mode command.
+ */
+ M2M_WIFI_REQ_P2P_REPOST,
+ /*!< This command is for internal use by the WINC and
+ should not be used by the host driver.
+ */
+ M2M_WIFI_MAX_P2P_ALL,
+}tenuM2mP2pCmd;
+
+
+
+/*!
+@enum \
+ tenuM2mServerCmd
+
+@brief
+ This enum contains all the WINC commands while in PS mode.
+ These command are currently not supported.
+*/
+typedef enum {
+ M2M_WIFI_REQ_CLIENT_CTRL = M2M_SERVER_CMD_BASE,
+ M2M_WIFI_RESP_CLIENT_INFO,
+ M2M_WIFI_REQ_SERVER_INIT,
+ M2M_WIFI_MAX_SERVER_ALL
+}tenuM2mServerCmd;
+
+
+
+/*!
+@enum \
+ tenuM2mOtaCmd
+
+@brief
+
+*/
+typedef enum {
+ M2M_OTA_REQ_NOTIF_SET_URL = M2M_OTA_CMD_BASE,
+ M2M_OTA_REQ_NOTIF_CHECK_FOR_UPDATE,
+ M2M_OTA_REQ_NOTIF_SCHED,
+ M2M_OTA_REQ_START_UPDATE,
+ M2M_OTA_REQ_SWITCH_FIRMWARE,
+ M2M_OTA_REQ_ROLLBACK,
+ M2M_OTA_RESP_NOTIF_UPDATE_INFO,
+ M2M_OTA_RESP_UPDATE_STATUS,
+ M2M_OTA_REQ_TEST,
+ M2M_OTA_MAX_ALL,
+}tenuM2mOtaCmd;
+
+/*!
+@enum \
+ tenuM2mCryptoCmd
+
+@brief
+
+*/
+typedef enum {
+ M2M_CRYPTO_REQ_SHA256_INIT = M2M_CRYPTO_CMD_BASE,
+ M2M_CRYPTO_RESP_SHA256_INIT,
+ M2M_CRYPTO_REQ_SHA256_UPDATE,
+ M2M_CRYPTO_RESP_SHA256_UPDATE,
+ M2M_CRYPTO_REQ_SHA256_FINSIH,
+ M2M_CRYPTO_RESP_SHA256_FINSIH,
+ M2M_CRYPTO_REQ_RSA_SIGN_GEN,
+ M2M_CRYPTO_RESP_RSA_SIGN_GEN,
+ M2M_CRYPTO_REQ_RSA_SIGN_VERIFY,
+ M2M_CRYPTO_RESP_RSA_SIGN_VERIFY,
+ M2M_CRYPTO_MAX_ALL,
+}tenuM2mCryptoCmd;
+
+/*!
+@enum \
+ tenuM2mIpCmd
+
+@brief
+
+*/
+typedef enum {
+ /* Request IDs corresponding to the IP GROUP. */
+ M2M_IP_REQ_STATIC_IP_CONF = ((uint8) 10),
+ M2M_IP_REQ_ENABLE_DHCP,
+ M2M_IP_REQ_DISABLE_DHCP
+} tenuM2mIpCmd;
+
+/*!
+@enum \
+ tenuM2mSigmaCmd
+
+@brief
+
+*/
+typedef enum {
+ /* Request IDs corresponding to the IP GROUP. */
+ M2M_SIGMA_ENABLE = ((uint8) 3),
+ M2M_SIGMA_TA_START,
+ M2M_SIGMA_TA_STATS,
+ M2M_SIGMA_TA_RECEIVE_STOP,
+ M2M_SIGMA_ICMP_ARP,
+ M2M_SIGMA_ICMP_RX,
+ M2M_SIGMA_ICMP_TX,
+ M2M_SIGMA_UDP_TX,
+ M2M_SIGMA_UDP_TX_DEFER,
+ M2M_SIGMA_SECURITY_POLICY,
+ M2M_SIGMA_SET_SYSTIME
+} tenuM2mSigmaCmd;
+
+
+/*!
+@enum \
+ tenuM2mConnState
+
+@brief
+ Wi-Fi Connection State.
+*/
+typedef enum {
+ M2M_WIFI_DISCONNECTED = 0,
+ /*!< Wi-Fi state is disconnected.
+ */
+ M2M_WIFI_CONNECTED,
+ /*!< Wi-Fi state is connected.
+ */
+ M2M_WIFI_UNDEF = 0xff
+ /*!< Undefined Wi-Fi State.
+ */
+}tenuM2mConnState;
+
+/*!
+@enum \
+ tenuM2mSecType
+
+@brief
+ Wi-Fi Supported Security types.
+*/
+typedef enum {
+ M2M_WIFI_SEC_INVALID = 0,
+ /*!< Invalid security type.
+ */
+ M2M_WIFI_SEC_OPEN,
+ /*!< Wi-Fi network is not secured.
+ */
+ M2M_WIFI_SEC_WPA_PSK,
+ /*!< Wi-Fi network is secured with WPA/WPA2 personal(PSK).
+ */
+ M2M_WIFI_SEC_WEP,
+ /*!< Security type WEP (40 or 104) OPEN OR SHARED.
+ */
+ M2M_WIFI_SEC_802_1X
+ /*!< Wi-Fi network is secured with WPA/WPA2 Enterprise.IEEE802.1x user-name/password authentication.
+ */
+}tenuM2mSecType;
+
+
+/*!
+@enum \
+ tenuM2mSecType
+
+@brief
+ Wi-Fi Supported SSID types.
+*/
+typedef enum {
+ SSID_MODE_VISIBLE = 0,
+ /*!< SSID is visible to others.
+ */
+ SSID_MODE_HIDDEN
+ /*!< SSID is hidden.
+ */
+}tenuM2mSsidMode;
+
+/*!
+@enum \
+ tenuM2mScanCh
+
+@brief
+ Wi-Fi RF Channels.
+*/
+typedef enum {
+ M2M_WIFI_CH_1 = ((uint8) 1),
+ M2M_WIFI_CH_2,
+ M2M_WIFI_CH_3,
+ M2M_WIFI_CH_4,
+ M2M_WIFI_CH_5,
+ M2M_WIFI_CH_6,
+ M2M_WIFI_CH_7,
+ M2M_WIFI_CH_8,
+ M2M_WIFI_CH_9,
+ M2M_WIFI_CH_10,
+ M2M_WIFI_CH_11,
+ M2M_WIFI_CH_12,
+ M2M_WIFI_CH_13,
+ M2M_WIFI_CH_14,
+ M2M_WIFI_CH_ALL = ((uint8) 255)
+}tenuM2mScanCh;
+
+/*!
+@enum \
+ tenuM2mScanRegion
+
+@brief
+ Wi-Fi RF Channels.
+*/
+typedef enum {
+
+ REG_CH_1 = ((uint16) 1 << 0),
+ REG_CH_2 = ((uint16) 1 << 1),
+ REG_CH_3 = ((uint16) 1 << 2),
+ REG_CH_4 = ((uint16) 1 << 3),
+ REG_CH_5 = ((uint16) 1 << 4),
+ REG_CH_6 = ((uint16) 1 << 5),
+ REG_CH_7 = ((uint16) 1 << 6),
+ REG_CH_8 = ((uint16) 1 << 7),
+ REG_CH_9 = ((uint16) 1 << 8),
+ REG_CH_10 = ((uint16) 1 << 9),
+ REG_CH_11 = ((uint16) 1 << 10),
+ REG_CH_12 = ((uint16) 1 << 11),
+ REG_CH_13 = ((uint16) 1 << 12),
+ REG_CH_14 = ((uint16) 1 << 13),
+ REG_CH_ALL = ((uint16) 0x3FFF),
+ NORTH_AMERICA = ((uint16) 0x7FF),
+ /** 11 channel
+ */
+ EUROPE = ((uint16) 0x1FFF),
+ /** 13 channel
+ */
+ ASIA = ((uint16) 0x3FFF)
+ /* 14 channel
+ */
+}tenuM2mScanRegion;
+/*!
+@enum \
+ tenuPowerSaveModes
+
+@brief
+ Power Save Modes.
+*/
+typedef enum {
+ M2M_NO_PS,
+ /*!< Power save is disabled.
+ */
+ M2M_PS_AUTOMATIC,
+ /*!< Power save is done automatically by the WINC.
+ This mode doesn't disable all of the WINC modules and
+ use higher amount of power than the H_AUTOMATIC and
+ the DEEP_AUTOMATIC modes..
+ */
+ M2M_PS_H_AUTOMATIC,
+ /*!< Power save is done automatically by the WINC.
+ Achieve higher power save than the AUTOMATIC mode
+ by shutting down more parts of the WINC board.
+ */
+ M2M_PS_DEEP_AUTOMATIC,
+ /*!< Power save is done automatically by the WINC.
+ Achieve the highest possible power save.
+ */
+ M2M_PS_MANUAL
+ /*!< Power save is done manually by the user.
+ */
+}tenuPowerSaveModes;
+
+/*!
+@enum \
+ tenuM2mWifiMode
+
+@brief
+ Wi-Fi Operation Mode.
+*/
+typedef enum {
+ M2M_WIFI_MODE_NORMAL = ((uint8) 1),
+ /*!< Normal Mode means to run customer firmware version.
+ */
+ M2M_WIFI_MODE_ATE_HIGH,
+ /*!< Config Mode in HIGH POWER means to run production test firmware version which is known as ATE (Burst) firmware.
+ */
+ M2M_WIFI_MODE_ATE_LOW,
+ /*!< Config Mode in LOW POWER means to run production test firmware version which is known as ATE (Burst) firmware.
+ */
+ M2M_WIFI_MODE_ETHERNET,
+ /*!< etherent Mode
+ */
+ M2M_WIFI_MODE_MAX,
+}tenuM2mWifiMode;
+
+/*!
+@enum \
+ tenuWPSTrigger
+
+@brief
+ WPS Triggering Methods.
+*/
+typedef enum{
+ WPS_PIN_TRIGGER = 0,
+ /*!< WPS is triggered in PIN method.
+ */
+ WPS_PBC_TRIGGER = 4
+ /*!< WPS is triggered via push button.
+ */
+}tenuWPSTrigger;
+
+
+/*!
+@struct \
+ tstrM2mWifiWepParams
+
+@brief
+ WEP security key parameters.
+*/
+typedef struct{
+ uint8 u8KeyIndx;
+ /*!< Wep key Index.
+ */
+ uint8 u8KeySz;
+ /*!< Wep key Size.
+ */
+ uint8 au8WepKey[WEP_104_KEY_STRING_SIZE + 1];
+ /*!< WEP Key represented as a NULL terminated ASCII string.
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes to keep the structure word alligned.
+ */
+}tstrM2mWifiWepParams;
+
+
+/*!
+@struct \
+ tstr1xAuthCredentials
+
+@brief
+ Credentials for the user to authenticate with the AAA server (WPA-Enterprise Mode IEEE802.1x).
+*/
+typedef struct{
+ uint8 au8UserName[M2M_1X_USR_NAME_MAX];
+ /*!< User Name. It must be Null terminated string.
+ */
+ uint8 au8Passwd[M2M_1X_PWD_MAX];
+ /*!< Password corresponding to the user name. It must be Null terminated string.
+ */
+}tstr1xAuthCredentials;
+
+
+/*!
+@union \
+ tuniM2MWifiAuth
+
+@brief
+ Wi-Fi Security Parameters for all supported security modes.
+*/
+typedef union{
+ uint8 au8PSK[M2M_MAX_PSK_LEN];
+ /*!< Pre-Shared Key in case of WPA-Personal security.
+ */
+ tstr1xAuthCredentials strCred1x;
+ /*!< Credentials for RADIUS server authentication in case of WPA-Enterprise security.
+ */
+ tstrM2mWifiWepParams strWepInfo;
+ /*!< WEP key parameters in case of WEP security.
+ */
+}tuniM2MWifiAuth;
+
+
+/*!
+@struct \
+ tstrM2MWifiSecInfo
+
+@brief
+ Authentication credentials to connect to a Wi-Fi network.
+*/
+typedef struct{
+ tuniM2MWifiAuth uniAuth;
+ /*!< Union holding all possible authentication parameters corresponding the current security types.
+ */
+ uint8 u8SecType;
+ /*!< Wi-Fi network security type. See tenuM2mSecType for supported security types.
+ */
+#define __PADDING__ (4 - ((sizeof(tuniM2MWifiAuth) + 1) % 4))
+ uint8 __PAD__[__PADDING__];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2MWifiSecInfo;
+
+
+/*!
+@struct \
+ tstrM2mWifiConnect
+
+@brief
+ Wi-Fi Connect Request
+*/
+typedef struct{
+ tstrM2MWifiSecInfo strSec;
+ /*!< Security parameters for authenticating with the AP.
+ */
+ uint16 u16Ch;
+ /*!< RF Channel for the target SSID.
+ */
+ uint8 au8SSID[M2M_MAX_SSID_LEN];
+ /*!< SSID of the desired AP. It must be NULL terminated string.
+ */
+ uint8 u8NoSaveCred;
+#define __CONN_PAD_SIZE__ (4 - ((sizeof(tstrM2MWifiSecInfo) + M2M_MAX_SSID_LEN + 3) % 4))
+ uint8 __PAD__[__CONN_PAD_SIZE__];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mWifiConnect;
+
+
+/*!
+@struct \
+ tstrM2MWPSConnect
+
+@brief
+ WPS Configuration parameters
+
+@sa
+ tenuWPSTrigger
+*/
+typedef struct {
+ uint8 u8TriggerType;
+ /*!< WPS triggering method (Push button or PIN)
+ */
+ char acPinNumber[8];
+ /*!< WPS PIN No (for PIN method)
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2MWPSConnect;
+
+
+/*!
+@struct \
+ tstrM2MWPSInfo
+
+@brief WPS Result
+
+ This structure is passed to the application in response to a WPS request. If the WPS session is completed successfully, the
+ structure will have Non-ZERO authentication type. If the WPS Session fails (due to error or timeout) the authentication type
+ is set to ZERO.
+
+@sa
+ tenuM2mSecType
+*/
+typedef struct{
+ uint8 u8AuthType;
+ /*!< Network authentication type.
+ */
+ uint8 u8Ch;
+ /*!< RF Channel for the AP.
+ */
+ uint8 au8SSID[M2M_MAX_SSID_LEN];
+ /*!< SSID obtained from WPS.
+ */
+ uint8 au8PSK[M2M_MAX_PSK_LEN];
+ /*!< PSK for the network obtained from WPS.
+ */
+}tstrM2MWPSInfo;
+
+
+/*!
+@struct \
+ tstrM2MDefaultConnResp
+
+@brief
+ Response error of the m2m_default_connect
+
+@sa
+ M2M_DEFAULT_CONN_SCAN_MISMATCH
+ M2M_DEFAULT_CONN_EMPTY_LIST
+*/
+typedef struct{
+ sint8 s8ErrorCode;
+ /*!<
+ Default connect error code. possible values are:
+ - M2M_DEFAULT_CONN_EMPTY_LIST
+ - M2M_DEFAULT_CONN_SCAN_MISMATCH
+ */
+ uint8 __PAD24__[3];
+}tstrM2MDefaultConnResp;
+
+/*!
+@struct \
+ tstrM2MScan
+
+@brief
+ Wi-Fi Scan Request
+
+@sa
+ tenuM2mScanCh
+*/
+typedef struct {
+ uint8 u8NumOfSlot;
+ /*|< The min number of slots is 2 for every channel,
+ every slot the soc will send Probe Request on air, and wait/listen for PROBE RESP/BEACONS for the u16slotTime
+ */
+ uint8 u8SlotTime;
+ /*|< the time that the Soc will wait on every channel listening to the frames on air
+ when that time increaseed number of AP will increased in the scan results
+ min time is 10 ms and the max is 250 ms
+ */
+ uint8 u8ProbesPerSlot;
+ /*!< Number of probe requests to be sent per channel scan slot.
+ */
+ sint8 s8RssiThresh;
+ /*! < The RSSI threshold of the AP which will be connected to directly.
+ */
+
+}tstrM2MScanOption;
+
+/*!
+@struct \
+ tstrM2MScanRegion
+
+@brief
+ Wi-Fi channel regulation region information.
+
+@sa
+ tenuM2mScanRegion
+*/
+typedef struct {
+ uint16 u16ScanRegion;
+ /*|< Specifies the number of channels allowed in the region (e.g. North America = 11 ... etc.).
+ */
+ uint8 __PAD16__[2];
+
+}tstrM2MScanRegion;
+
+/*!
+@struct \
+ tstrM2MScan
+
+@brief
+ Wi-Fi Scan Request
+
+@sa
+ tenuM2mScanCh
+*/
+typedef struct {
+ uint8 u8ChNum;
+ /*!< The Wi-Fi RF Channel number
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+
+}tstrM2MScan;
+
+/*!
+@struct \
+ tstrCyptoResp
+
+@brief
+ crypto response
+*/
+typedef struct {
+ sint8 s8Resp;
+ /***/
+ uint8 __PAD24__[3];
+ /*
+ */
+}tstrCyptoResp;
+
+
+/*!
+@struct \
+ tstrM2mScanDone
+
+@brief
+ Wi-Fi Scan Result
+*/
+typedef struct{
+ uint8 u8NumofCh;
+ /*!< Number of found APs
+ */
+ sint8 s8ScanState;
+ /*!< Scan status
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mScanDone;
+
+
+/*!
+@struct \
+ tstrM2mReqScanResult
+
+@brief Scan Result Request
+
+ The Wi-Fi Scan results list is stored in Firmware. The application can request a certain scan result by its index.
+*/
+typedef struct {
+ uint8 u8Index;
+ /*!< Index of the desired scan result
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mReqScanResult;
+
+
+/*!
+@struct \
+ tstrM2mWifiscanResult
+
+@brief Wi-Fi Scan Result
+
+ Information corresponding to an AP in the Scan Result list identified by its order (index) in the list.
+*/
+typedef struct {
+ uint8 u8index;
+ /*!< AP index in the scan result list.
+ */
+ sint8 s8rssi;
+ /*!< AP signal strength.
+ */
+ uint8 u8AuthType;
+ /*!< AP authentication type.
+ */
+ uint8 u8ch;
+ /*!< AP RF channel.
+ */
+ uint8 au8BSSID[6];
+ /*!< BSSID of the AP.
+ */
+ uint8 au8SSID[M2M_MAX_SSID_LEN];
+ /*!< AP ssid.
+ */
+ uint8 _PAD8_;
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mWifiscanResult;
+
+
+/*!
+@struct \
+ tstrM2mWifiStateChanged
+
+@brief
+ Wi-Fi Connection State
+
+@sa
+ M2M_WIFI_DISCONNECTED, M2M_WIFI_CONNECTED, M2M_WIFI_REQ_CON_STATE_CHANGED,tenuM2mConnChangedErrcode
+*/
+typedef struct {
+ uint8 u8CurrState;
+ /*!< Current Wi-Fi connection state
+ */
+ uint8 u8ErrCode;
+ /*!< Error type review tenuM2mConnChangedErrcode
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mWifiStateChanged;
+
+
+/*!
+@struct \
+ tstrM2mPsType
+
+@brief
+ Power Save Configuration
+
+@sa
+ tenuPowerSaveModes
+*/
+typedef struct{
+ uint8 u8PsType;
+ /*!< Power save operating mode
+ */
+ uint8 u8BcastEn;
+ /*!<
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mPsType;
+
+/*!
+@struct \
+ tstrM2mSlpReqTime
+
+@brief
+ Manual power save request sleep time
+
+*/
+typedef struct {
+ /*!< Sleep time in ms
+ */
+ uint32 u32SleepTime;
+
+} tstrM2mSlpReqTime;
+
+/*!
+@struct \
+ tstrM2mLsnInt
+
+@brief Listen interval
+
+ It is the value of the Wi-Fi STA listen interval for power saving. It is given in units of Beacon period.
+ Periodically after the listen interval fires, the WINC is wakeup and listen to the beacon and check for any buffered frames for it from the AP.
+*/
+typedef struct {
+ uint16 u16LsnInt;
+ /*!< Listen interval in Beacon period count.
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mLsnInt;
+
+
+/*!
+@struct \
+ tstrM2MWifiMonitorModeCtrl
+
+@brief Wi-Fi Monitor Mode Filter
+
+ This structure sets the filtering criteria for WLAN packets when monitoring mode is enable.
+ The received packets matching the filtering parameters, are passed directly to the application.
+*/
+typedef struct{
+ uint8 u8ChannelID;
+ /* !< RF Channel ID. It must use values from tenuM2mScanCh
+ */
+ uint8 u8FrameType;
+ /*!< It must use values from tenuWifiFrameType.
+ */
+ uint8 u8FrameSubtype;
+ /*!< It must use values from tenuSubTypes.
+ */
+ uint8 au8SrcMacAddress[6];
+ /* ZERO means DO NOT FILTER Source address.
+ */
+ uint8 au8DstMacAddress[6];
+ /* ZERO means DO NOT FILTER Destination address.
+ */
+ uint8 au8BSSID[6];
+ /* ZERO means DO NOT FILTER BSSID.
+ */
+ uint8 u8EnRecvHdr;
+ /*
+ Enable recv the full hder before the payload
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2MWifiMonitorModeCtrl;
+
+
+/*!
+@struct \
+ tstrM2MWifiRxPacketInfo
+
+@brief Wi-Fi RX Frame Header
+
+ The M2M application has the ability to allow Wi-Fi monitoring mode for receiving all Wi-Fi Raw frames matching a well defined filtering criteria.
+ When a target Wi-Fi packet is received, the header information are extracted and assigned in this structure.
+*/
+typedef struct{
+ uint8 u8FrameType;
+ /*!< It must use values from tenuWifiFrameType.
+ */
+ uint8 u8FrameSubtype;
+ /*!< It must use values from tenuSubTypes.
+ */
+ uint8 u8ServiceClass;
+ /*!< Service class from Wi-Fi header.
+ */
+ uint8 u8Priority;
+ /*!< Priority from Wi-Fi header.
+ */
+ uint8 u8HeaderLength;
+ /*!< Frame Header length.
+ */
+ uint8 u8CipherType;
+ /*!< Encryption type for the rx packet.
+ */
+ uint8 au8SrcMacAddress[6];
+ /* ZERO means DO NOT FILTER Source address.
+ */
+ uint8 au8DstMacAddress[6];
+ /* ZERO means DO NOT FILTER Destination address.
+ */
+ uint8 au8BSSID[6];
+ /* ZERO means DO NOT FILTER BSSID.
+ */
+ uint16 u16DataLength;
+ /*!< Data payload length (Header excluded).
+ */
+ uint16 u16FrameLength;
+ /*!< Total frame length (Header + Data).
+ */
+ uint32 u32DataRateKbps;
+ /*!< Data Rate in Kbps.
+ */
+ sint8 s8RSSI;
+ /*!< RSSI.
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2MWifiRxPacketInfo;
+
+
+/*!
+@struct \
+ tstrM2MWifiTxPacketInfo
+
+@brief Wi-Fi TX Packet Info
+
+ The M2M Application has the ability to compose a RAW Wi-Fi frames (under the application responsibility).
+ When transmitting a Wi-Fi packet, the application must supply the firmware with this structure for sending the target frame.
+*/
+typedef struct{
+ uint16 u16PacketSize;
+ /*!< Wlan frame length.
+ */
+ uint16 u16HeaderLength;
+ /*!< Wlan frame header length.
+ */
+}tstrM2MWifiTxPacketInfo;
+
+
+/*!
+ @struct \
+ tstrM2MP2PConnect
+
+ @brief
+ Set the device to operate in the Wi-Fi Direct (P2P) mode.
+*/
+typedef struct {
+ uint8 u8ListenChannel;
+ /*!< P2P Listen Channel (1, 6 or 11)
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2MP2PConnect;
+
+/*!
+@struct \
+ tstrM2MAPConfig
+
+@brief AP Configuration
+
+ This structure holds the configuration parameters for the M2M AP mode. It should be set by the application when
+ it requests to enable the M2M AP operation mode. The M2M AP mode currently supports only WEP security (with
+ the NO Security option available of course).
+*/
+typedef struct {
+ /*!<
+ Configuration parameters for the WiFi AP.
+ */
+ uint8 au8SSID[M2M_MAX_SSID_LEN];
+ /*!< AP SSID
+ */
+ uint8 u8ListenChannel;
+ /*!< Wi-Fi RF Channel which the AP will operate on
+ */
+ uint8 u8KeyIndx;
+ /*!< Wep key Index
+ */
+ uint8 u8KeySz;
+ /*!< Wep key Size
+ */
+ uint8 au8WepKey[WEP_104_KEY_STRING_SIZE + 1];
+ /*!< Wep key
+ */
+ uint8 u8SecType;
+ /*!< Security type: Open or WEP only in the current implementation
+ */
+ uint8 u8SsidHide;
+ /*!< SSID Status "Hidden(1)/Visible(0)"
+ */
+ uint8 au8DHCPServerIP[4];
+ /*!< Ap IP server address
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing alignment
+ */
+}tstrM2MAPConfig;
+
+
+/*!
+@struct \
+ tstrM2mServerInit
+
+@brief
+ PS Server initialization.
+*/
+typedef struct {
+ uint8 u8Channel;
+ /*!< Server Listen channel
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mServerInit;
+
+
+/*!
+@struct \
+ tstrM2mClientState
+
+@brief
+ PS Client State.
+*/
+typedef struct {
+ uint8 u8State;
+ /*!< PS Client State
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mClientState;
+
+
+/*!
+@struct \
+ tstrM2Mservercmd
+
+@brief
+ PS Server CMD
+*/
+typedef struct {
+ uint8 u8cmd;
+ /*!< PS Server Cmd
+ */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2Mservercmd;
+
+
+/*!
+@struct \
+ tstrM2mSetMacAddress
+
+@brief
+ Sets the MAC address from application. The WINC load the mac address from the effuse by default to the WINC configuration memory,
+ but that function is used to let the application overwrite the configuration memory with the mac address from the host.
+
+@note
+ It's recommended to call this only once before calling connect request and after the m2m_wifi_init
+*/
+typedef struct {
+ uint8 au8Mac[6];
+ /*!< MAC address array
+ */
+ uint8 __PAD16__[2];
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2mSetMacAddress;
+
+
+/*!
+@struct \
+ tstrM2MDeviceNameConfig
+
+@brief Device name
+
+ It is assigned by the application. It is used mainly for Wi-Fi Direct device
+ discovery and WPS device information.
+*/
+typedef struct {
+ uint8 au8DeviceName[M2M_DEVICE_NAME_MAX];
+ /*!< NULL terminated device name
+ */
+}tstrM2MDeviceNameConfig;
+
+
+/*!
+@struct \
+ tstrM2MIPConfig
+
+@brief
+ Static IP configuration.
+
+@note
+ All member IP addresses are expressed in Network Byte Order (eg. "192.168.10.1" will be expressed as 0x010AA8C0).
+ */
+typedef struct {
+ uint32 u32StaticIP;
+ /*!< The static IP assigned to the device.
+ */
+ uint32 u32Gateway;
+ /*!< IP of the Default internet gateway.
+ */
+ uint32 u32DNS;
+ /*!< IP for the DNS server.
+ */
+ uint32 u32SubnetMask;
+ /*!< Subnet mask for the local area network.
+ */
+} tstrM2MIPConfig;
+
+/*!
+@struct \
+ tstrM2mIpRsvdPkt
+
+@brief
+ Received Packet Size and Data Offset
+
+ */
+typedef struct{
+ uint16 u16PktSz;
+ uint16 u16PktOffset;
+} tstrM2mIpRsvdPkt;
+
+
+/*!
+@struct \
+ tstrM2MProvisionModeConfig
+
+@brief
+ M2M Provisioning Mode Configuration
+ */
+
+typedef struct {
+ tstrM2MAPConfig strApConfig;
+ /*!<
+ Configuration parameters for the WiFi AP.
+ */
+ char acHttpServerDomainName[64];
+ /*!<
+ The device domain name for HTTP provisioning.
+ */
+ uint8 u8EnableRedirect;
+ /*!<
+ A flag to enable/disable HTTP redirect feature for the HTTP Provisioning server. If the Redirect is enabled,
+ all HTTP traffic (http://URL) from the device associated with WINC AP will be redirected to the HTTP Provisioning Web page.
+ - 0 : Disable HTTP Redirect.
+ - 1 : Enable HTTP Redirect.
+ */
+ uint8 __PAD24__[3];
+}tstrM2MProvisionModeConfig;
+
+
+/*!
+@struct \
+ tstrM2MProvisionInfo
+
+@brief
+ M2M Provisioning Information obtained from the HTTP Provisioning server.
+ */
+typedef struct{
+ uint8 au8SSID[M2M_MAX_SSID_LEN];
+ /*!<
+ Provisioned SSID.
+ */
+ uint8 au8Password[M2M_MAX_PSK_LEN];
+ /*!<
+ Provisioned Password.
+ */
+ uint8 u8SecType;
+ /*!<
+ Wifi Security type.
+ */
+ uint8 u8Status;
+ /*!<
+ Provisioning status. It must be checked before reading the provisioning information. It may be
+ - M2M_SUCCESS : Provision successful.
+ - M2M_FAIL : Provision Failed.
+ */
+}tstrM2MProvisionInfo;
+
+
+/*!
+@struct \
+ tstrM2MConnInfo
+
+@brief
+ M2M Provisioning Information obtained from the HTTP Provisioning server.
+ */
+typedef struct{
+ char acSSID[M2M_MAX_SSID_LEN];
+ /*!< AP connection SSID name */
+ uint8 u8SecType;
+ /*!< Security type */
+ uint8 au8IPAddr[4];
+ /*!< Connection IP address */
+ uint8 au8MACAddress[6];
+ /*!< MAC address of the peer Wi-Fi station */
+ sint8 s8RSSI;
+ /*!< Connection RSSI signal */
+ uint8 __PAD24__[3];
+ /*!< Padding bytes for forcing 4-byte alignment */
+}tstrM2MConnInfo;
+
+/*!
+@struct \
+ tstrOtaInitHdr
+
+@brief
+ OTA Image Header
+ */
+
+typedef struct{
+ uint32 u32OtaMagicValue;
+ /*!< Magic value kept in the OTA image after the
+ sha256 Digest buffer to define the Start of OTA Header */
+ uint32 u32OtaPayloadSzie;
+ /*!<
+ The Total OTA image payload size, include the sha256 key size
+ */
+
+}tstrOtaInitHdr;
+
+
+/*!
+@struct \
+ tstrOtaControlSec
+
+@brief
+ Control section structure is used to define the working image and
+ the validity of the roll-back image and its offset, also both firmware versions is kept in that structure.
+ */
+
+typedef struct {
+ uint32 u32OtaMagicValue;
+/*!<
+ Magic value used to ensure the structure is valid or not
+*/
+ uint32 u32OtaFormatVersion;
+/*!<
+ NA NA NA Flash version cs struct version
+ 00 00 00 00 00
+ Control structure format version, the value will be incremented in case of structure changed or updated
+*/
+ uint32 u32OtaSequenceNumber;
+/*!<
+ Sequence number is used while update the control structure to keep track of how many times that section updated
+*/
+ uint32 u32OtaLastCheckTime;
+/*!<
+ Last time OTA check for update
+*/
+ uint32 u32OtaCurrentworkingImagOffset;
+/*!<
+ Current working offset in flash
+*/
+ uint32 u32OtaCurrentworkingImagFirmwareVer;
+/*!<
+ current working image version ex 18.0.1
+*/
+ uint32 u32OtaRollbackImageOffset;
+/*!<
+ Roll-back image offset in flash
+*/
+ uint32 u32OtaRollbackImageValidStatus;
+/*!<
+ roll-back image valid status
+*/
+ uint32 u32OtaRollbackImagFirmwareVer;
+/*!<
+ Roll-back image version (ex 18.0.3)
+*/
+ uint32 u32OtaCortusAppWorkingOffset;
+/*!<
+ cortus app working offset in flash
+*/
+ uint32 u32OtaCortusAppWorkingValidSts;
+/*!<
+ Working Cortus app valid status
+*/
+ uint32 u32OtaCortusAppWorkingVer;
+/*!<
+ Working cortus app version (ex 18.0.3)
+*/
+ uint32 u32OtaCortusAppRollbackOffset;
+/*!<
+ cortus app rollback offset in flash
+*/
+ uint32 u32OtaCortusAppRollbackValidSts;
+/*!<
+ roll-back cortus app valid status
+*/
+ uint32 u32OtaCortusAppRollbackVer;
+/*!<
+ Roll-back cortus app version (ex 18.0.3)
+*/
+ uint32 u32OtaControlSecCrc;
+/*!<
+ CRC for the control structure to ensure validity
+*/
+} tstrOtaControlSec;
+
+/*!
+@enum \
+ tenuOtaUpdateStatus
+
+@brief
+ OTA return status
+*/
+typedef enum {
+ OTA_STATUS_SUCSESS = 0,
+ /*!< OTA Success with not errors. */
+ OTA_STATUS_FAIL = 1,
+ /*!< OTA generic fail. */
+ OTA_STATUS_INVAILD_ARG = 2,
+ /*!< Invalid or malformed download URL. */
+ OTA_STATUS_INVAILD_RB_IMAGE = 3,
+ /*!< Invalid rollback image. */
+ OTA_STATUS_INVAILD_FLASH_SIZE = 4,
+ /*!< Flash size on device is not enough for OTA. */
+ OTA_STATUS_AlREADY_ENABLED = 5,
+ /*!< An OTA operation is already enabled. */
+ OTA_STATUS_UPDATE_INPROGRESS = 6,
+ /*!< An OTA operation update is in progress */
+ OTA_STATUS_IMAGE_VERIF_FAILED = 7,
+ /*!< OTA Verfication failed */
+ OTA_STATUS_CONNECTION_ERROR = 8,
+ /*!< OTA connection error */
+ OTA_STATUS_SERVER_ERROR = 9,
+ /*!< OTA server Error (file not found or else ...) */
+} tenuOtaUpdateStatus;
+/*!
+@enum \
+ tenuOtaUpdateStatusType
+
+@brief
+ OTA update Status type
+*/
+typedef enum {
+
+ DL_STATUS = 1,
+ /*!< Download OTA file status
+ */
+ SW_STATUS = 2,
+ /*!< Switching to the upgrade firmware status
+ */
+ RB_STATUS = 3,
+ /*!< Roll-back status
+ */
+}tenuOtaUpdateStatusType;
+
+
+/*!
+@struct \
+ tstrOtaUpdateStatusResp
+
+@brief
+ OTA Update Information
+
+@sa
+ tenuWPSTrigger
+*/
+typedef struct {
+ uint8 u8OtaUpdateStatusType;
+ /*!<
+ Status type tenuOtaUpdateStatusType
+ */
+ uint8 u8OtaUpdateStatus;
+ /*!<
+ OTA_SUCCESS
+ OTA_ERR_WORKING_IMAGE_LOAD_FAIL
+ OTA_ERR_INVAILD_CONTROL_SEC
+ M2M_ERR_OTA_SWITCH_FAIL
+ M2M_ERR_OTA_START_UPDATE_FAIL
+ M2M_ERR_OTA_ROLLBACK_FAIL
+ M2M_ERR_OTA_INVAILD_FLASH_SIZE
+ M2M_ERR_OTA_INVAILD_ARG
+ */
+ uint8 _PAD16_[2];
+}tstrOtaUpdateStatusResp;
+
+/*!
+@struct \
+ tstrOtaUpdateInfo
+
+@brief
+ OTA Update Information
+
+@sa
+ tenuWPSTrigger
+*/
+typedef struct {
+ uint32 u8NcfUpgradeVersion;
+ /*!< NCF OTA Upgrade Version
+ */
+ uint32 u8NcfCurrentVersion;
+ /*!< NCF OTA Current firmware version
+ */
+ uint32 u8NcdUpgradeVersion;
+ /*!< NCD (host) upgraded version (if the u8NcdRequiredUpgrade == true)
+ */
+ uint8 u8NcdRequiredUpgrade;
+ /*!< NCD Required upgrade to the above version
+ */
+ uint8 u8DownloadUrlOffset;
+ /*!< Download URL offset in the received packet
+ */
+ uint8 u8DownloadUrlSize;
+ /*!< Download URL size in the received packet
+ */
+ uint8 __PAD8__;
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+} tstrOtaUpdateInfo;
+
+/*!
+@struct \
+ tstrSystemTime
+
+@brief
+ Used for time storage.
+*/
+typedef struct{
+ uint16 u16Year;
+ uint8 u8Month;
+ uint8 u8Day;
+ uint8 u8Hour;
+ uint8 u8Minute;
+ uint8 u8Second;
+}tstrSystemTime;
+
+/*!
+@struct \
+ tstrM2MMulticastMac
+
+@brief
+ M2M add/remove multi-cast mac address
+ */
+ typedef struct {
+ uint8 au8macaddress[M2M_MAC_ADDRES_LEN];
+ /*!<
+ Mac address needed to be added or removed from filter.
+ */
+ uint8 u8AddRemove;
+ /*!<
+ set by 1 to add or 0 to remove from filter.
+ */
+ uint8 __PAD8__;
+ /*!< Padding bytes for forcing 4-byte alignment
+ */
+}tstrM2MMulticastMac;
+
+/*!
+@struct \
+ tstrPrng
+
+@brief
+ M2M Request PRNG
+ */
+ typedef struct {
+ /*!<
+ return buffer address
+ */
+ uint8 *pu8RngBuff;
+ /*!<
+ PRNG size requested
+ */
+ uint16 u16PrngSize;
+ /*!<
+ PRNG pads
+ */
+ uint8 __PAD16__[2];
+}tstrPrng;
+
+
+ /**@}*/
+
+#endif
+
--- a/wifi_host_driver/socket/include/socket.h Mon Jun 19 17:40:26 2017 +0000
+++ b/wifi_host_driver/socket/include/socket.h Thu Jun 22 01:13:11 2017 +0000
@@ -825,7 +825,7 @@
NMI_API void socketInit(void);
/*!
-@fn \
+@fn \
NMI_API void socketDeinit(void);
@brief Socket Layer De-initialization
@@ -1222,7 +1222,7 @@
*/
/**@{*/
/*!
-@fn \
+@fn \
NMI_API sint8 connect(SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen);
@param [in] sock
@@ -1444,7 +1444,7 @@
*/
/**@{*/
/*!
-@fn \
+@fn \
NMI_API sint16 recvfrom(SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32TimeoutSeconds);
@param [in] sock
@@ -1551,7 +1551,7 @@
*/
/**@{*/
/*!
-@fn \
+@fn \
NMI_API sint16 send(SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 u16Flags);
@param [in] sock
@@ -1841,7 +1841,7 @@
*/
/**@{*/
/*!
-@fn \
+@fn \
NMI_API sint8 setsockopt(SOCKET socket, uint8 u8Level, uint8 option_name,
const void *option_value, uint16 u16OptionLen);
@@ -1931,4 +1931,3 @@
#endif /* __SOCKET_H__ */
-
Binary file wifidevice.o has changed