added function to enable power saving mode for es_wifi driver (Inventek Systems ISM43362-M3G-L44 )

Fork of DISCO_L475VG_IOT01A_wifi by ST

Committer:
jaafaryn
Date:
Sat Jan 13 23:37:46 2018 +0000
Revision:
2:9bbbcd0eff1c
Parent:
1:b37920c1ddb9
added function to enable power saving mode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adustm 0:c61a93635433 1 /**
adustm 0:c61a93635433 2 ******************************************************************************
adustm 0:c61a93635433 3 * @file es-wifi.h
adustm 0:c61a93635433 4 * @author MCD Application Team
adustm 0:c61a93635433 5 * @version V1.8.0
adustm 0:c61a93635433 6 * @date 21-April-2017
adustm 0:c61a93635433 7 * @brief header file for the es-wifi module.
adustm 0:c61a93635433 8 ******************************************************************************
adustm 0:c61a93635433 9 * @attention
adustm 0:c61a93635433 10 *
adustm 0:c61a93635433 11 * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
adustm 0:c61a93635433 12 * All rights reserved.</center></h2>
adustm 0:c61a93635433 13 *
adustm 0:c61a93635433 14 * Redistribution and use in source and binary forms, with or without
adustm 0:c61a93635433 15 * modification, are permitted, provided that the following conditions are met:
adustm 0:c61a93635433 16 *
adustm 0:c61a93635433 17 * 1. Redistribution of source code must retain the above copyright notice,
adustm 0:c61a93635433 18 * this list of conditions and the following disclaimer.
adustm 0:c61a93635433 19 * 2. Redistributions in binary form must reproduce the above copyright notice,
adustm 0:c61a93635433 20 * this list of conditions and the following disclaimer in the documentation
adustm 0:c61a93635433 21 * and/or other materials provided with the distribution.
adustm 0:c61a93635433 22 * 3. Neither the name of STMicroelectronics nor the names of other
adustm 0:c61a93635433 23 * contributors to this software may be used to endorse or promote products
adustm 0:c61a93635433 24 * derived from this software without specific written permission.
adustm 0:c61a93635433 25 * 4. This software, including modifications and/or derivative works of this
adustm 0:c61a93635433 26 * software, must execute solely and exclusively on microcontroller or
adustm 0:c61a93635433 27 * microprocessor devices manufactured by or for STMicroelectronics.
adustm 0:c61a93635433 28 * 5. Redistribution and use of this software other than as permitted under
adustm 0:c61a93635433 29 * this license is void and will automatically terminate your rights under
adustm 0:c61a93635433 30 * this license.
adustm 0:c61a93635433 31 *
adustm 0:c61a93635433 32 * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
adustm 0:c61a93635433 33 * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
adustm 0:c61a93635433 34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
adustm 0:c61a93635433 35 * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
adustm 0:c61a93635433 36 * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
adustm 0:c61a93635433 37 * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
adustm 0:c61a93635433 38 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
adustm 0:c61a93635433 39 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
adustm 0:c61a93635433 40 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
adustm 0:c61a93635433 41 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
adustm 0:c61a93635433 42 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
adustm 0:c61a93635433 43 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
adustm 0:c61a93635433 44 *
adustm 0:c61a93635433 45 ******************************************************************************
adustm 0:c61a93635433 46 */
adustm 0:c61a93635433 47 /* Define to prevent recursive inclusion -------------------------------------*/
adustm 0:c61a93635433 48 #ifndef __ES_WIFI_H
adustm 0:c61a93635433 49 #define __ES_WIFI_H
adustm 0:c61a93635433 50
adustm 0:c61a93635433 51 #ifdef __cplusplus
adustm 0:c61a93635433 52 extern "C" {
adustm 0:c61a93635433 53 #endif
adustm 0:c61a93635433 54
adustm 0:c61a93635433 55 /* Includes ------------------------------------------------------------------*/
adustm 0:c61a93635433 56 #include "stdint.h"
adustm 0:c61a93635433 57 #include "string.h"
adustm 0:c61a93635433 58 #include "stdio.h"
adustm 0:c61a93635433 59 #include "es_wifi_conf.h"
adustm 0:c61a93635433 60
adustm 0:c61a93635433 61 /* Exported Constants --------------------------------------------------------*/
adustm 0:c61a93635433 62 #define ES_WIFI_PAYLOAD_SIZE 1200
adustm 0:c61a93635433 63 /* Exported macro-------------------------------------------------------------*/
adustm 0:c61a93635433 64 #define MIN(a, b) ((a) < (b) ? (a) : (b))
adustm 0:c61a93635433 65
adustm 0:c61a93635433 66 typedef int8_t (*IO_Init_Func)( void);
adustm 0:c61a93635433 67 typedef int8_t (*IO_DeInit_Func)( void);
adustm 0:c61a93635433 68 typedef void (*IO_Delay_Func)(uint32_t);
adustm 0:c61a93635433 69 typedef int16_t (*IO_Send_Func)( uint8_t *, uint16_t len, uint32_t);
adustm 0:c61a93635433 70 typedef int16_t (*IO_Receive_Func)(uint8_t *, uint16_t len, uint32_t);
adustm 0:c61a93635433 71
adustm 0:c61a93635433 72 /* Exported typedef ----------------------------------------------------------*/
adustm 0:c61a93635433 73 typedef enum {
adustm 0:c61a93635433 74 ES_WIFI_STATUS_OK = 0,
adustm 0:c61a93635433 75 ES_WIFI_STATUS_REQ_DATA_STAGE = 1,
adustm 0:c61a93635433 76 ES_WIFI_STATUS_ERROR = 2,
adustm 0:c61a93635433 77 ES_WIFI_STATUS_TIMEOUT = 3,
adustm 0:c61a93635433 78 ES_WIFI_STATUS_IO_ERROR = 4,
adustm 0:c61a93635433 79 }ES_WIFI_Status_t;
adustm 0:c61a93635433 80
adustm 0:c61a93635433 81 typedef enum {
adustm 0:c61a93635433 82 ES_WIFI_MODE_SINGLE = 0,
adustm 0:c61a93635433 83 ES_WIFI_MODE_MULTI = 1,
adustm 0:c61a93635433 84 }ES_WIFI_ConnMode_t;
adustm 0:c61a93635433 85
adustm 0:c61a93635433 86 typedef enum {
adustm 0:c61a93635433 87 ES_WIFI_TCP_CONNECTION = 0,
adustm 0:c61a93635433 88 ES_WIFI_UDP_CONNECTION = 1,
adustm 0:c61a93635433 89 ES_WIFI_UDP_LITE_CONNECTION = 2,
adustm 0:c61a93635433 90 ES_WIFI_TCP_SSL_CONNECTION = 3,
adustm 0:c61a93635433 91 ES_WIFI_MQTT_CONNECTION = 4,
adustm 0:c61a93635433 92 }ES_WIFI_ConnType_t;
adustm 0:c61a93635433 93
adustm 0:c61a93635433 94 /* Security settings for wifi network */
adustm 0:c61a93635433 95 typedef enum {
adustm 0:c61a93635433 96 ES_WIFI_SEC_OPEN = 0x00, /*!< Wifi is open */
adustm 0:c61a93635433 97 ES_WIFI_SEC_WEP = 0x01, /*!< Wired Equivalent Privacy option for wifi security. \note This mode can't be used when setting up ES_WIFI wifi */
adustm 0:c61a93635433 98 ES_WIFI_SEC_WPA = 0x02, /*!< Wi-Fi Protected Access */
adustm 0:c61a93635433 99 ES_WIFI_SEC_WPA2 = 0x03, /*!< Wi-Fi Protected Access 2 */
adustm 0:c61a93635433 100 ES_WIFI_SEC_WPA_WPA2= 0x04, /*!< Wi-Fi Protected Access with both modes */
adustm 0:c61a93635433 101 ES_WIFI_SEC_WPA2_TKIP= 0x05, /*!< Wi-Fi Protected Access with both modes */
adustm 0:c61a93635433 102 ES_WIFI_SEC_UNKNOWN = 0xFF, /*!< Wi-Fi Unknown Security mode */
adustm 0:c61a93635433 103 } ES_WIFI_SecurityType_t;
adustm 0:c61a93635433 104
adustm 0:c61a93635433 105 typedef enum {
adustm 0:c61a93635433 106 ES_WIFI_IPV4 = 0x00,
adustm 0:c61a93635433 107 ES_WIFI_IPV6 = 0x01,
adustm 0:c61a93635433 108 } ES_WIFI_IPVer_t;
adustm 0:c61a93635433 109
adustm 0:c61a93635433 110 typedef enum {
adustm 0:c61a93635433 111 ES_WIFI_AP_NONE = 0x00,
adustm 0:c61a93635433 112 ES_WIFI_AP_ASSIGNED = 0x01,
adustm 0:c61a93635433 113 ES_WIFI_AP_JOINED = 0x02,
adustm 0:c61a93635433 114 ES_WIFI_AP_ERROR = 0xFF,
adustm 0:c61a93635433 115 } ES_WIFI_APState_t;
adustm 0:c61a93635433 116
adustm 0:c61a93635433 117
adustm 0:c61a93635433 118 typedef struct
adustm 0:c61a93635433 119 {
adustm 0:c61a93635433 120 uint32_t Port;
adustm 0:c61a93635433 121 uint32_t BaudRate;
adustm 0:c61a93635433 122 uint32_t DataWidth;
adustm 0:c61a93635433 123 uint32_t Parity;
adustm 0:c61a93635433 124 uint32_t StopBits;
adustm 0:c61a93635433 125 uint32_t Mode;
adustm 0:c61a93635433 126
adustm 0:c61a93635433 127 }ES_WIFI_UARTConfig_t;
adustm 0:c61a93635433 128
adustm 0:c61a93635433 129
adustm 0:c61a93635433 130 typedef struct
adustm 0:c61a93635433 131 {
adustm 0:c61a93635433 132 uint32_t Configuration;
adustm 0:c61a93635433 133 uint32_t WPSPin;
adustm 0:c61a93635433 134 uint32_t VID;
adustm 0:c61a93635433 135 uint32_t PID;
adustm 0:c61a93635433 136 uint8_t MAC[6];
adustm 0:c61a93635433 137 uint8_t AP_IPAddress[4];
adustm 0:c61a93635433 138 uint32_t PS_Mode;
adustm 0:c61a93635433 139 uint32_t RadioMode;
adustm 0:c61a93635433 140 uint32_t CurrentBeacon;
adustm 0:c61a93635433 141 uint32_t PrevBeacon;
adustm 0:c61a93635433 142 uint32_t ProductName;
adustm 0:c61a93635433 143
adustm 0:c61a93635433 144 }ES_WIFI_SystemConfig_t;
adustm 0:c61a93635433 145
adustm 0:c61a93635433 146 typedef struct {
adustm 0:c61a93635433 147 uint8_t* Address; /*!< Pointer to domain or IP to ping */
adustm 0:c61a93635433 148 uint32_t Time; /*!< Time in milliseconds needed for pinging */
adustm 0:c61a93635433 149 uint8_t Success; /*!< Status indicates if ping was successful */
adustm 0:c61a93635433 150 }ES_WIFI_Ping_t;
adustm 0:c61a93635433 151
adustm 0:c61a93635433 152 typedef struct {
adustm 0:c61a93635433 153 uint8_t SSID[ES_WIFI_MAX_SSID_NAME_SIZE + 1]; /*!< Service Set Identifier value.Wi-Fi spot name */
adustm 0:c61a93635433 154 ES_WIFI_SecurityType_t Security; /*!< Security of Wi-Fi spot. */
adustm 0:c61a93635433 155 int16_t RSSI; /*!< Signal strength of Wi-Fi spot */
adustm 0:c61a93635433 156 uint8_t MAC[6]; /*!< MAC address of spot */
adustm 0:c61a93635433 157 uint8_t Channel; /*!< Wi-Fi channel */
adustm 0:c61a93635433 158 } ES_WIFI_AP_t;
adustm 0:c61a93635433 159
adustm 0:c61a93635433 160 /* Access point configuration */
adustm 0:c61a93635433 161 typedef struct {
adustm 0:c61a93635433 162 uint8_t SSID[ES_WIFI_MAX_SSID_NAME_SIZE + 1]; /*!< Network public name for ESP AP mode */
adustm 0:c61a93635433 163 uint8_t Pass[ES_WIFI_MAX_PSWD_NAME_SIZE + 1]; /*!< Network password for ESP AP mode */
adustm 0:c61a93635433 164 ES_WIFI_SecurityType_t Security; /*!< Security of Wi-Fi spot. This parameter can be a value of \ref ESP8266_Ecn_t enumeration */
adustm 0:c61a93635433 165 uint8_t Channel; /*!< Channel Wi-Fi is operating at */
adustm 0:c61a93635433 166 uint8_t MaxConnections; /*!< Max number of stations that are allowed to connect to ESP AP, between 1 and 4 */
adustm 0:c61a93635433 167 uint8_t Hidden; /*!< Set to 1 if network is hidden (not broadcast) or zero if noz */
adustm 0:c61a93635433 168 } ES_WIFI_APConfig_t;
adustm 0:c61a93635433 169
adustm 0:c61a93635433 170
adustm 0:c61a93635433 171 typedef struct {
adustm 0:c61a93635433 172 uint8_t SSID[ES_WIFI_MAX_SSID_NAME_SIZE + 1]; /*!< Network public name for ESP AP mode */
adustm 0:c61a93635433 173 uint8_t IP_Addr[4]; /*!< IP Address */
adustm 0:c61a93635433 174 uint8_t MAC_Addr[6]; /*!< MAC address */
adustm 0:c61a93635433 175 } ES_WIFI_APSettings_t;
adustm 0:c61a93635433 176
adustm 0:c61a93635433 177 typedef struct {
adustm 0:c61a93635433 178 ES_WIFI_AP_t AP[ES_WIFI_MAX_DETECTED_AP];
adustm 0:c61a93635433 179 uint8_t nbr;
adustm 0:c61a93635433 180
adustm 0:c61a93635433 181 }ES_WIFI_APs_t;
adustm 0:c61a93635433 182
adustm 0:c61a93635433 183 typedef struct {
adustm 0:c61a93635433 184 uint8_t SSID[ES_WIFI_MAX_SSID_NAME_SIZE + 1];
adustm 0:c61a93635433 185 uint8_t pswd[ES_WIFI_MAX_PSWD_NAME_SIZE + 1];
adustm 0:c61a93635433 186 ES_WIFI_SecurityType_t Security;
adustm 0:c61a93635433 187 uint8_t DHCP_IsEnabled;
adustm 0:c61a93635433 188 uint8_t JoinRetries;
adustm 0:c61a93635433 189 uint8_t IsConnected;
adustm 0:c61a93635433 190 uint8_t AutoConnect;
adustm 0:c61a93635433 191 ES_WIFI_IPVer_t IP_Ver;
adustm 0:c61a93635433 192 uint8_t IP_Addr[4];
adustm 0:c61a93635433 193 uint8_t IP_Mask[4];
adustm 0:c61a93635433 194 uint8_t Gateway_Addr[4];
adustm 0:c61a93635433 195 uint8_t DNS1[4];
adustm 0:c61a93635433 196 uint8_t DNS2[4];
adustm 0:c61a93635433 197 } ES_WIFI_Network_t;
adustm 0:c61a93635433 198
adustm 0:c61a93635433 199 #if (ES_WIFI_USE_AWS == 1)
adustm 0:c61a93635433 200 typedef struct {
adustm 0:c61a93635433 201 ES_WIFI_ConnType_t Type;
adustm 0:c61a93635433 202 uint8_t Number;
adustm 0:c61a93635433 203 uint16_t RemotePort;
adustm 0:c61a93635433 204 uint8_t RemoteIP[4];
adustm 0:c61a93635433 205 uint8_t *PublishTopic;
adustm 0:c61a93635433 206 uint8_t *SubscribeTopic;
adustm 0:c61a93635433 207 uint8_t *ClientID;
adustm 0:c61a93635433 208 uint8_t MQTTMode;
adustm 0:c61a93635433 209 } ES_WIFI_AWS_Conn_t;
adustm 0:c61a93635433 210 #endif
adustm 0:c61a93635433 211
adustm 0:c61a93635433 212 typedef struct {
adustm 0:c61a93635433 213 ES_WIFI_ConnType_t Type;
adustm 0:c61a93635433 214 uint8_t Number;
adustm 0:c61a93635433 215 uint16_t RemotePort;
adustm 0:c61a93635433 216 uint16_t LocalPort;
adustm 0:c61a93635433 217 uint8_t RemoteIP[4];
adustm 0:c61a93635433 218 char* Name;
adustm 0:c61a93635433 219 } ES_WIFI_Conn_t;
adustm 0:c61a93635433 220
adustm 0:c61a93635433 221 typedef struct {
adustm 0:c61a93635433 222 IO_Init_Func IO_Init;
adustm 0:c61a93635433 223 IO_DeInit_Func IO_DeInit;
adustm 0:c61a93635433 224 IO_Delay_Func IO_Delay;
adustm 0:c61a93635433 225 IO_Send_Func IO_Send;
adustm 0:c61a93635433 226 IO_Receive_Func IO_Receive;
adustm 0:c61a93635433 227 } ES_WIFI_IO_t;
adustm 0:c61a93635433 228
adustm 0:c61a93635433 229 typedef struct {
adustm 0:c61a93635433 230 uint8_t Product_ID[ES_WIFI_PRODUCT_ID_SIZE];
adustm 0:c61a93635433 231 uint8_t FW_Rev[ES_WIFI_FW_REV_SIZE];
adustm 0:c61a93635433 232 uint8_t API_Rev[ES_WIFI_API_REV_SIZE];
adustm 0:c61a93635433 233 uint8_t Stack_Rev[ES_WIFI_STACK_REV_SIZE];
adustm 0:c61a93635433 234 uint8_t RTOS_Rev[ES_WIFI_RTOS_REV_SIZE];
adustm 0:c61a93635433 235 uint8_t Product_Name[ES_WIFI_PRODUCT_NAME_SIZE];
adustm 0:c61a93635433 236 uint32_t CPU_Clock;
adustm 0:c61a93635433 237 ES_WIFI_SecurityType_t Security;
adustm 0:c61a93635433 238 ES_WIFI_Network_t NetSettings;
adustm 0:c61a93635433 239 ES_WIFI_APSettings_t APSettings;
adustm 0:c61a93635433 240 ES_WIFI_IO_t fops;
adustm 0:c61a93635433 241 uint8_t CmdData[ES_WIFI_DATA_SIZE];
adustm 0:c61a93635433 242 uint32_t Timeout;
adustm 0:c61a93635433 243 uint32_t BufferSize;
adustm 0:c61a93635433 244 }ES_WIFIObject_t;
adustm 0:c61a93635433 245
adustm 0:c61a93635433 246
adustm 0:c61a93635433 247 /* Exported functions --------------------------------------------------------*/
adustm 0:c61a93635433 248 ES_WIFI_Status_t ES_WIFI_Init(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 249 ES_WIFI_Status_t ES_WIFI_SetTimeout(ES_WIFIObject_t *Obj, uint32_t Timeout);
adustm 0:c61a93635433 250 ES_WIFI_Status_t ES_WIFI_ListAccessPoints(ES_WIFIObject_t *Obj, ES_WIFI_APs_t *APs);
adustm 0:c61a93635433 251 ES_WIFI_Status_t ES_WIFI_Connect(ES_WIFIObject_t *Obj, const char* SSID, const char* Password,
adustm 0:c61a93635433 252 ES_WIFI_SecurityType_t SecType);
adustm 0:c61a93635433 253 ES_WIFI_Status_t ES_WIFI_Disconnect(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 254 uint8_t ES_WIFI_IsConnected(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 255 ES_WIFI_Status_t ES_WIFI_GetNetworkSettings(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 256 ES_WIFI_Status_t ES_WIFI_GetMACAddress(ES_WIFIObject_t *Obj, uint8_t *mac);
adustm 0:c61a93635433 257 ES_WIFI_Status_t ES_WIFI_GetIPAddress(ES_WIFIObject_t *Obj, uint8_t *ipaddr);
adustm 0:c61a93635433 258 ES_WIFI_Status_t ES_WIFI_GetProductID(ES_WIFIObject_t *Obj, uint8_t *productID);
adustm 0:c61a93635433 259 ES_WIFI_Status_t ES_WIFI_GetFWRevID(ES_WIFIObject_t *Obj, uint8_t *FWRev);
adustm 0:c61a93635433 260 ES_WIFI_Status_t ES_WIFI_GetRTOSRev(ES_WIFIObject_t *Obj, uint8_t *RTOSRev);
adustm 0:c61a93635433 261 ES_WIFI_Status_t ES_WIFI_GetProductName(ES_WIFIObject_t *Obj, uint8_t *productName);
adustm 0:c61a93635433 262 ES_WIFI_Status_t ES_WIFI_GetAPIRev(ES_WIFIObject_t *Obj, uint8_t *APIRev);
adustm 0:c61a93635433 263 ES_WIFI_Status_t ES_WIFI_GetStackRev(ES_WIFIObject_t *Obj, uint8_t *StackRev);
adustm 0:c61a93635433 264
adustm 0:c61a93635433 265
adustm 0:c61a93635433 266 ES_WIFI_Status_t ES_WIFI_SetMACAddress(ES_WIFIObject_t *Obj, uint8_t *mac);
adustm 0:c61a93635433 267 ES_WIFI_Status_t ES_WIFI_ResetToFactoryDefault(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 268 ES_WIFI_Status_t ES_WIFI_ResetModule(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 269 ES_WIFI_Status_t ES_WIFI_SetProductName(ES_WIFIObject_t *Obj, uint8_t *ProductName);
adustm 0:c61a93635433 270 #if (ES_WIFI_USE_PING == 1)
adustm 0:c61a93635433 271 ES_WIFI_Status_t ES_WIFI_Ping(ES_WIFIObject_t *Obj, uint8_t *address, uint16_t count, uint16_t interval_ms);
adustm 0:c61a93635433 272 #endif
adustm 0:c61a93635433 273 ES_WIFI_Status_t ES_WIFI_DNS_LookUp(ES_WIFIObject_t *Obj, const char *url, uint8_t *ipaddress);
adustm 0:c61a93635433 274 ES_WIFI_Status_t ES_WIFI_StartClientConnection(ES_WIFIObject_t *Obj, ES_WIFI_Conn_t *conn);
adustm 0:c61a93635433 275 ES_WIFI_Status_t ES_WIFI_StopClientConnection(ES_WIFIObject_t *Obj, ES_WIFI_Conn_t *conn);
adustm 0:c61a93635433 276 #if (ES_WIFI_USE_AWS == 1)
adustm 0:c61a93635433 277 ES_WIFI_Status_t ES_WIFI_StartAWSClientConnection(ES_WIFIObject_t *Obj, ES_WIFI_AWS_Conn_t *conn);
adustm 0:c61a93635433 278 #endif
adustm 0:c61a93635433 279 ES_WIFI_Status_t ES_WIFI_StartServerSingleConn(ES_WIFIObject_t *Obj, ES_WIFI_Conn_t *conn);
adustm 0:c61a93635433 280 ES_WIFI_Status_t ES_WIFI_StopServerSingleConn(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 281 ES_WIFI_Status_t ES_WIFI_StartServerMultiConn(ES_WIFIObject_t *Obj, ES_WIFI_Conn_t *conn);
adustm 0:c61a93635433 282 ES_WIFI_Status_t ES_WIFI_StopServerMultiConn(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 283 ES_WIFI_Status_t ES_WIFI_SendData(ES_WIFIObject_t *Obj, uint8_t Socket, uint8_t *pdata, uint16_t Reqlen , uint16_t *SentLen, uint32_t timeout);
adustm 0:c61a93635433 284 ES_WIFI_Status_t ES_WIFI_ReceiveData(ES_WIFIObject_t *Obj, uint8_t Socket, uint8_t *pdata, uint16_t Reqlen, uint16_t *Receivedlen, uint32_t timeout);
adustm 0:c61a93635433 285 ES_WIFI_Status_t ES_WIFI_ActivateAP(ES_WIFIObject_t *Obj, ES_WIFI_APConfig_t *ApConfig);
adustm 0:c61a93635433 286 ES_WIFI_APState_t ES_WIFI_WaitAPStateChange(ES_WIFIObject_t *Obj);
adustm 0:c61a93635433 287
adustm 0:c61a93635433 288 #if (ES_WIFI_USE_FIRMWAREUPDATE == 1)
adustm 0:c61a93635433 289 ES_WIFI_Status_t ES_WIFI_OTA_Upgrade(ES_WIFIObject_t *Obj, uint8_t *link);
adustm 0:c61a93635433 290 #endif
adustm 0:c61a93635433 291
adustm 0:c61a93635433 292 #if (ES_WIFI_USE_UART == 1)
adustm 0:c61a93635433 293 ES_WIFI_Status_t ES_WIFI_SetUARTBaudRate(ES_WIFIObject_t *Obj, uint16_t BaudRate);
adustm 0:c61a93635433 294 ES_WIFI_Status_t ES_WIFI_GetUARTConfig(ES_WIFIObject_t *Obj, ES_WIFI_UARTConfig_t *pconf);
adustm 0:c61a93635433 295 #endif
adustm 0:c61a93635433 296
adustm 0:c61a93635433 297 ES_WIFI_Status_t ES_WIFI_GetSystemConfig(ES_WIFIObject_t *Obj, ES_WIFI_SystemConfig_t *pconf);
adustm 0:c61a93635433 298
adustm 0:c61a93635433 299 ES_WIFI_Status_t ES_WIFI_RegisterBusIO(ES_WIFIObject_t *Obj, IO_Init_Func IO_Init,
adustm 0:c61a93635433 300 IO_DeInit_Func IO_DeInit,
adustm 0:c61a93635433 301 IO_Delay_Func IO_Delay,
adustm 0:c61a93635433 302 IO_Send_Func IO_Send,
adustm 0:c61a93635433 303 IO_Receive_Func IO_Receive);
jaafaryn 1:b37920c1ddb9 304
jaafaryn 2:9bbbcd0eff1c 305 ES_WIFI_Status_t ES_WIFI_SetPowerSaveMode(ES_WIFIObject_t *Obj, uint8_t beacon_int, uint32_t sleep_ms);
jaafaryn 1:b37920c1ddb9 306
adustm 0:c61a93635433 307 #ifdef __cplusplus
adustm 0:c61a93635433 308 }
adustm 0:c61a93635433 309 #endif
adustm 0:c61a93635433 310 #endif /*__ES_WIFI_H*/
adustm 0:c61a93635433 311
adustm 0:c61a93635433 312 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/