Extending the X_NUCLEO_IDW01M1 to allow configuration of the board as an access point

Dependents:   X_NUCLEO_IDW01M1_AP_Test

Fork of X_NUCLEO_IDW01M1 by ST

Committer:
scsims
Date:
Thu Jul 07 13:54:06 2016 +0000
Revision:
22:a1276b7d3b2d
Parent:
12:3799f8475c8a
Added wifi_connected_to_ap extern to indicate when BSSS beacons have been lost/picked up. Also added some debugging to get a better idea as to what's going to and from the SPWF01SA.11 over the UART

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mridup 1:bd9db471d47d 1 /* mbed Microcontroller Library
mridup 1:bd9db471d47d 2 * Copyright (c) 2006-2013 ARM Limited
mridup 1:bd9db471d47d 3 *
mridup 1:bd9db471d47d 4 * Licensed under the Apache License, Version 2.0 (the "License");
mridup 1:bd9db471d47d 5 * you may not use this file except in compliance with the License.
mridup 1:bd9db471d47d 6 * You may obtain a copy of the License at
mridup 1:bd9db471d47d 7 *
mridup 1:bd9db471d47d 8 * http://www.apache.org/licenses/LICENSE-2.0
mridup 1:bd9db471d47d 9 *
mridup 1:bd9db471d47d 10 * Unless required by applicable law or agreed to in writing, software
mridup 1:bd9db471d47d 11 * distributed under the License is distributed on an "AS IS" BASIS,
mridup 1:bd9db471d47d 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mridup 1:bd9db471d47d 13 * See the License for the specific language governing permissions and
mridup 1:bd9db471d47d 14 * limitations under the License.
mridup 1:bd9db471d47d 15 */
mridup 1:bd9db471d47d 16
mridup 1:bd9db471d47d 17 /**
mridup 1:bd9db471d47d 18 ******************************************************************************
mridup 1:bd9db471d47d 19 * @file ItfTranslator.cpp
mridup 1:bd9db471d47d 20 * @author STMicroelectronics
mridup 1:bd9db471d47d 21 * @brief Wrapper Functions for access to SPWFSADevice class/vice-versa
mridup 1:bd9db471d47d 22 ******************************************************************************
mridup 1:bd9db471d47d 23 * @copy
mridup 1:bd9db471d47d 24 *
mridup 1:bd9db471d47d 25 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
mridup 1:bd9db471d47d 26 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
mridup 1:bd9db471d47d 27 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
mridup 1:bd9db471d47d 28 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
mridup 1:bd9db471d47d 29 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
mridup 1:bd9db471d47d 30 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
mridup 1:bd9db471d47d 31 *
mridup 1:bd9db471d47d 32 * <h2><center>&copy; COPYRIGHT 2016 STMicroelectronics</center></h2>
mridup 1:bd9db471d47d 33 ******************************************************************************
mridup 1:bd9db471d47d 34 */
mridup 1:bd9db471d47d 35
mridup 1:bd9db471d47d 36 #include "SpwfSADevice.h"
mridup 1:bd9db471d47d 37 #include "ItfTranslator.h"
mridup 1:bd9db471d47d 38
mridup 1:bd9db471d47d 39 SpwfSADevice * device;
mridup 1:bd9db471d47d 40
mridup 1:bd9db471d47d 41 void setSpwfSADevice(SpwfSADevice * dev);
mridup 1:bd9db471d47d 42
mridup 1:bd9db471d47d 43 void setSpwfSADevice(SpwfSADevice * dev)
mridup 1:bd9db471d47d 44 {
mridup 1:bd9db471d47d 45 device = dev;
mridup 1:bd9db471d47d 46 }
mridup 1:bd9db471d47d 47
mridup 1:bd9db471d47d 48 #ifdef __cplusplus
mridup 1:bd9db471d47d 49 extern "C" {
mridup 1:bd9db471d47d 50 #endif
mridup 1:bd9db471d47d 51
mridup 12:3799f8475c8a 52 /**
mridup 12:3799f8475c8a 53 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 54 * Calls SpwfSADevice init
mridup 12:3799f8475c8a 55 * @param void* not used
mridup 12:3799f8475c8a 56 * @retval None
mridup 12:3799f8475c8a 57 */
mridup 1:bd9db471d47d 58 void callSpwfSADevice_init(void* object)
mridup 1:bd9db471d47d 59 {
mridup 1:bd9db471d47d 60 //static_cast<SpwfSADevice*>(object)->init();
mridup 1:bd9db471d47d 61 device->init();
mridup 1:bd9db471d47d 62 return;
mridup 1:bd9db471d47d 63 }
mridup 1:bd9db471d47d 64
mridup 12:3799f8475c8a 65 /**
mridup 12:3799f8475c8a 66 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 67 * Calls SpwfSADevice getChar
mridup 12:3799f8475c8a 68 * @param void* not used
mridup 12:3799f8475c8a 69 * @retval None
mridup 12:3799f8475c8a 70 */
mridup 1:bd9db471d47d 71 char callSpwfSADevice_getChar(void* object)
mridup 1:bd9db471d47d 72 {
mridup 1:bd9db471d47d 73 return(device->spwf_get());
mridup 1:bd9db471d47d 74 }
mridup 1:bd9db471d47d 75
mridup 12:3799f8475c8a 76 /**
mridup 12:3799f8475c8a 77 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 78 * Calls SpwfSADevice write
mridup 12:3799f8475c8a 79 * @param void* not used
mridup 12:3799f8475c8a 80 * cmd: data to write
mridup 12:3799f8475c8a 81 * size: size of data
mridup 12:3799f8475c8a 82 * @retval None
mridup 12:3799f8475c8a 83 */
mridup 8:0f302a13e21b 84 int callSpwfSADevice_write(void* object, const char * cmd, uint16_t size)
mridup 1:bd9db471d47d 85 {
mridup 8:0f302a13e21b 86 return (device->spwf_send(cmd, size));
mridup 1:bd9db471d47d 87 }
mridup 12:3799f8475c8a 88
mridup 12:3799f8475c8a 89 /**
mridup 12:3799f8475c8a 90 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 91 * Calls SpwfSADevice wakeup
mridup 12:3799f8475c8a 92 * @param void* not used
mridup 12:3799f8475c8a 93 * wake: (re)set wakeup pin value
mridup 12:3799f8475c8a 94 * @retval None
mridup 12:3799f8475c8a 95 */
mridup 1:bd9db471d47d 96 void callSpwfSADevice_wakeup(void* object, int wake)
mridup 1:bd9db471d47d 97 {
mridup 1:bd9db471d47d 98 device->spwf_wakeup(wake);
mridup 1:bd9db471d47d 99 }
mridup 1:bd9db471d47d 100
mridup 12:3799f8475c8a 101 /**
mridup 12:3799f8475c8a 102 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 103 * Calls SpwfSADevice reset
mridup 12:3799f8475c8a 104 * @param void* not used
mridup 12:3799f8475c8a 105 * reset: (re)set reset pin value
mridup 12:3799f8475c8a 106 * @retval None
mridup 12:3799f8475c8a 107 */
mridup 1:bd9db471d47d 108 void callSpwfSADevice_reset(void* object, int reset)
mridup 1:bd9db471d47d 109 {
mridup 1:bd9db471d47d 110 device->spwf_reset(reset);
mridup 1:bd9db471d47d 111 }
mridup 12:3799f8475c8a 112
mridup 12:3799f8475c8a 113 /**
mridup 12:3799f8475c8a 114 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 115 * Calls SpwfSADevice read_rts
mridup 12:3799f8475c8a 116 * @param void* not used
mridup 12:3799f8475c8a 117 * rts: (re)set RTS pin value
mridup 12:3799f8475c8a 118 * @retval None
mridup 12:3799f8475c8a 119 */
mridup 1:bd9db471d47d 120 void callSpwfSADevice_rts(void* object, int rts)
mridup 1:bd9db471d47d 121 {
mridup 1:bd9db471d47d 122 device->spwf_rts(rts);
mridup 1:bd9db471d47d 123 }
mridup 1:bd9db471d47d 124
mridup 12:3799f8475c8a 125 /**
mridup 12:3799f8475c8a 126 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 127 * Calls SpwfSADevice read_rts
mridup 12:3799f8475c8a 128 * @param void* not used
mridup 12:3799f8475c8a 129 * @retval RTS value
mridup 12:3799f8475c8a 130 */
mridup 1:bd9db471d47d 131 int callSpwfSADevice_read_rts(void* object)
mridup 1:bd9db471d47d 132 {
mridup 1:bd9db471d47d 133 return(device->spwf_read_rts());
mridup 1:bd9db471d47d 134 }
mridup 1:bd9db471d47d 135
mridup 12:3799f8475c8a 136 /**
mridup 12:3799f8475c8a 137 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 138 * Calls SpwfSADevice attach
mridup 12:3799f8475c8a 139 * @param attach boolean
mridup 12:3799f8475c8a 140 * @retval None
mridup 12:3799f8475c8a 141 */
mridup 1:bd9db471d47d 142 void callSpwfSADevice_attach(wifi_bool attach)
mridup 1:bd9db471d47d 143 {
mridup 1:bd9db471d47d 144 device->spwf_attach_irq(attach);
mridup 1:bd9db471d47d 145 }
mridup 1:bd9db471d47d 146
mridup 12:3799f8475c8a 147 /**
mridup 12:3799f8475c8a 148 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 149 * Calls SpwfSADevice debug
mridup 12:3799f8475c8a 150 * @param void* not used
mridup 12:3799f8475c8a 151 * string: data string to debug print
mridup 12:3799f8475c8a 152 * @retval None
mridup 12:3799f8475c8a 153 */
mridup 1:bd9db471d47d 154 void callSpwfSADevice_debug(void* object, const char * string)
mridup 1:bd9db471d47d 155 {
mridup 1:bd9db471d47d 156 device->debug_print(string);
mridup 1:bd9db471d47d 157 }
mridup 1:bd9db471d47d 158
mridup 12:3799f8475c8a 159 /**
mridup 12:3799f8475c8a 160 * @brief Wrapper function to CPP
mridup 12:3799f8475c8a 161 * not used
mridup 12:3799f8475c8a 162 * @param void* not used
mridup 12:3799f8475c8a 163 * @retval None
mridup 12:3799f8475c8a 164 */
mridup 1:bd9db471d47d 165 void destroySpwfSADevice()
mridup 1:bd9db471d47d 166 {
mridup 1:bd9db471d47d 167
mridup 1:bd9db471d47d 168 }
mridup 1:bd9db471d47d 169
mridup 1:bd9db471d47d 170 /*Callbacks implementation*/
mridup 1:bd9db471d47d 171
mridup 1:bd9db471d47d 172 void ind_wifi_on()
mridup 1:bd9db471d47d 173 {
mridup 1:bd9db471d47d 174 device->signal_synch_wait(WiFi_MODULE_SUCCESS);
mridup 1:bd9db471d47d 175 }
mridup 1:bd9db471d47d 176
mridup 1:bd9db471d47d 177 void ind_wifi_connected()
mridup 1:bd9db471d47d 178 {
mridup 1:bd9db471d47d 179 device->signal_synch_wait(WiFi_MODULE_SUCCESS);
mridup 1:bd9db471d47d 180 }
mridup 1:bd9db471d47d 181
mridup 1:bd9db471d47d 182 void ind_wifi_connection_error(WiFi_Status_t code)
mridup 1:bd9db471d47d 183 {
mridup 1:bd9db471d47d 184 switch(code)
mridup 1:bd9db471d47d 185 {
mridup 1:bd9db471d47d 186 case WiFi_DISASSOCIATION:
mridup 1:bd9db471d47d 187 device->signal_synch_wait(code);
mridup 1:bd9db471d47d 188 break;
mridup 1:bd9db471d47d 189 case WiFi_DE_AUTH:
mridup 1:bd9db471d47d 190 break;
mridup 1:bd9db471d47d 191 default:
mridup 1:bd9db471d47d 192 break;
mridup 1:bd9db471d47d 193 }
mridup 1:bd9db471d47d 194 }
mridup 1:bd9db471d47d 195
mridup 1:bd9db471d47d 196 void ind_wifi_socket_data_received(uint8_t socket_id, uint8_t * data_ptr, uint32_t message_size, uint32_t chunk_size)
mridup 1:bd9db471d47d 197 {
mridup 1:bd9db471d47d 198 device->signal_data_receive(socket_id, data_ptr, message_size, chunk_size);
mridup 1:bd9db471d47d 199 }
mridup 1:bd9db471d47d 200
mridup 1:bd9db471d47d 201 void ind_wifi_http_data_available(uint8_t * data_ptr, uint32_t message_size)
mridup 1:bd9db471d47d 202 {
mridup 6:e7a3fca2df10 203 //spwf->debug("\r\nrx>>\r\n");
mridup 6:e7a3fca2df10 204 //memcpy(user_buffer, data_ptr, 511);
mridup 1:bd9db471d47d 205 }
mridup 1:bd9db471d47d 206
mridup 1:bd9db471d47d 207 void ind_wifi_socket_client_remote_server_closed(uint8_t * socket_closed_id)
mridup 1:bd9db471d47d 208 {
mridup 5:c83ffd44f40a 209 //device->debug_print("\r\nsocket closed!\r\n");
mridup 5:c83ffd44f40a 210 //device->signal_synch_wait(WiFi_MODULE_SUCCESS);
mridup 1:bd9db471d47d 211 }
mridup 1:bd9db471d47d 212
mridup 6:e7a3fca2df10 213 void ind_socket_server_client_joined(void)
mridup 6:e7a3fca2df10 214 {
mridup 6:e7a3fca2df10 215 //device->debug_print("\r\nclient connected!\r\n");
mridup 6:e7a3fca2df10 216 device->set_wait_for_incoming_client(true);
mridup 6:e7a3fca2df10 217 }
mridup 6:e7a3fca2df10 218
mridup 6:e7a3fca2df10 219 void ind_socket_server_client_left(void)
mridup 6:e7a3fca2df10 220 {
mridup 6:e7a3fca2df10 221
mridup 6:e7a3fca2df10 222 }
mridup 6:e7a3fca2df10 223
mridup 6:e7a3fca2df10 224 void ind_wifi_socket_server_data_lost(void)
mridup 6:e7a3fca2df10 225 {
mridup 6:e7a3fca2df10 226
mridup 6:e7a3fca2df10 227 }
mridup 6:e7a3fca2df10 228
mridup 1:bd9db471d47d 229 #ifdef __cplusplus
mridup 1:bd9db471d47d 230 }
mridup 1:bd9db471d47d 231 #endif
mridup 1:bd9db471d47d 232
mridup 1:bd9db471d47d 233
mridup 1:bd9db471d47d 234