Steve Sims / X_NUCLEO_IDW01M1_AP

Dependents:   X_NUCLEO_IDW01M1_AP_Test

Fork of X_NUCLEO_IDW01M1 by ST

Committer:
scsims
Date:
Tue Jun 21 20:20:50 2016 +0000
Revision:
18:b265b3b696f1
Parent:
16:156be7b55904
Added SPWFInterface::start_access_point() to allow the module to be put into AP mode. Operational data rates are configurable as is the channel number. AP's have to be open as the underlying driver only appears to support open APs at the moment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mridup 0:dc55f40eb04f 1 /* mbed Microcontroller Library
mridup 0:dc55f40eb04f 2 * Copyright (c) 2006-2013 ARM Limited
mridup 0:dc55f40eb04f 3 *
mridup 0:dc55f40eb04f 4 * Licensed under the Apache License, Version 2.0 (the "License");
mridup 0:dc55f40eb04f 5 * you may not use this file except in compliance with the License.
mridup 0:dc55f40eb04f 6 * You may obtain a copy of the License at
mridup 0:dc55f40eb04f 7 *
mridup 0:dc55f40eb04f 8 * http://www.apache.org/licenses/LICENSE-2.0
mridup 0:dc55f40eb04f 9 *
mridup 0:dc55f40eb04f 10 * Unless required by applicable law or agreed to in writing, software
mridup 0:dc55f40eb04f 11 * distributed under the License is distributed on an "AS IS" BASIS,
mridup 0:dc55f40eb04f 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mridup 0:dc55f40eb04f 13 * See the License for the specific language governing permissions and
mridup 0:dc55f40eb04f 14 * limitations under the License.
mridup 0:dc55f40eb04f 15 */
mridup 0:dc55f40eb04f 16
mridup 0:dc55f40eb04f 17 /**
mridup 0:dc55f40eb04f 18 ******************************************************************************
mridup 0:dc55f40eb04f 19 * @file SpwfSADevice.h
mridup 0:dc55f40eb04f 20 * @author STMicroelectronics
mridup 0:dc55f40eb04f 21 * @brief Header File of SpwfSADevice class for Wi-Fi mbed
mridup 0:dc55f40eb04f 22 ******************************************************************************
mridup 0:dc55f40eb04f 23 * @copy
mridup 0:dc55f40eb04f 24 *
mridup 0:dc55f40eb04f 25 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
mridup 0:dc55f40eb04f 26 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
mridup 0:dc55f40eb04f 27 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
mridup 0:dc55f40eb04f 28 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
mridup 0:dc55f40eb04f 29 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
mridup 0:dc55f40eb04f 30 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
mridup 0:dc55f40eb04f 31 *
mridup 0:dc55f40eb04f 32 * <h2><center>&copy; COPYRIGHT 2016 STMicroelectronics</center></h2>
mridup 0:dc55f40eb04f 33 ******************************************************************************
mridup 0:dc55f40eb04f 34 */
mridup 0:dc55f40eb04f 35
mridup 0:dc55f40eb04f 36 #ifndef __SPWFSA_DEVICE_H__
mridup 0:dc55f40eb04f 37 #define __SPWFSA_DEVICE_H__
mridup 0:dc55f40eb04f 38
mridup 0:dc55f40eb04f 39
mridup 0:dc55f40eb04f 40 #include "mbed.h"
mridup 0:dc55f40eb04f 41 #include "RawSerial.h"
mridup 0:dc55f40eb04f 42 #include "Ticker.h"
mridup 0:dc55f40eb04f 43 #include "Timer.h"
mridup 0:dc55f40eb04f 44 #include "wifi_interface.h"
mridup 0:dc55f40eb04f 45
mridup 0:dc55f40eb04f 46
mridup 16:156be7b55904 47 /** SpwfSADevice class
mridup 16:156be7b55904 48 * Implementation of the SPWF Device
mridup 16:156be7b55904 49 */
mridup 0:dc55f40eb04f 50 class SpwfSADevice
mridup 0:dc55f40eb04f 51 {
mridup 0:dc55f40eb04f 52
mridup 0:dc55f40eb04f 53 public:
mridup 0:dc55f40eb04f 54 SpwfSADevice(PinName tx, PinName rx, PinName rst, PinName wkup, PinName rts);
mridup 0:dc55f40eb04f 55 ~SpwfSADevice(void);
mridup 0:dc55f40eb04f 56
mridup 6:e7a3fca2df10 57 int init(void);
mridup 6:e7a3fca2df10 58 int connect(char * ssid, char * sec_key, WiFi_Priv_Mode priv_mode);
scsims 18:b265b3b696f1 59 int start_access_point(char * ssid, char * sec_key, WiFi_Priv_Mode priv_mode, int channel_num, unsigned int data_rates);
mridup 6:e7a3fca2df10 60 int disconnect(void);
mridup 0:dc55f40eb04f 61 const char *getIPAddress();
mridup 0:dc55f40eb04f 62 const char *getMACAddress();
mridup 0:dc55f40eb04f 63 void network_scan(wifi_scan *scan_result, uint16_t max_scan_number);
mridup 0:dc55f40eb04f 64
mridup 6:e7a3fca2df10 65 int socket_client_open(uint8_t * hostname, uint32_t port_number, uint8_t * protocol, uint8_t * sock_id);
mridup 6:e7a3fca2df10 66 int socket_client_write(uint8_t sock_id, uint16_t DataLength,char * pData);
mridup 6:e7a3fca2df10 67 int socket_client_recv(uint8_t sock_id, uint16_t RecvLength,char * pData);
mridup 6:e7a3fca2df10 68 int socket_client_close(uint8_t sock_close_id);
mridup 0:dc55f40eb04f 69 void socket_client_security(uint8_t* tls_mode, uint8_t* root_ca_server, uint8_t* client_cert, uint8_t* client_key, uint8_t* client_domain, uint32_t tls_epoch_time);
mridup 0:dc55f40eb04f 70
mridup 6:e7a3fca2df10 71 int socket_server_open(uint32_t port_number, uint8_t * protocol);
mridup 6:e7a3fca2df10 72 int socket_server_write(uint16_t data_length,char * pdata);
mridup 6:e7a3fca2df10 73 int socket_server_close(void);
mridup 0:dc55f40eb04f 74
mridup 0:dc55f40eb04f 75 void http_get(uint8_t * hostname, uint8_t * path, uint32_t port_number);
mridup 0:dc55f40eb04f 76 void http_post(uint8_t * url_path);
mridup 0:dc55f40eb04f 77
mridup 0:dc55f40eb04f 78 char spwf_get(void);
mridup 8:0f302a13e21b 79 int spwf_send(const char * cmd, uint16_t size);
mridup 0:dc55f40eb04f 80 void spwf_wakeup(int wake);
mridup 0:dc55f40eb04f 81 void spwf_reset(int reset);
mridup 0:dc55f40eb04f 82 void spwf_rts(int rts);
mridup 0:dc55f40eb04f 83 void spwf_attach_irq(wifi_bool attach);
mridup 0:dc55f40eb04f 84 int spwf_read_rts();
mridup 0:dc55f40eb04f 85
mridup 0:dc55f40eb04f 86 const char *getVersion(void);
mridup 0:dc55f40eb04f 87 void waitForEvent(void);
mridup 0:dc55f40eb04f 88 void signal_data_receive(uint8_t socket_id, uint8_t * data_ptr, uint32_t message_size, uint32_t chunk_size);
mridup 0:dc55f40eb04f 89 void signal_synch_wait(WiFi_Status_t code);
mridup 6:e7a3fca2df10 90 void set_wait_for_incoming_client(bool set);
mridup 6:e7a3fca2df10 91 bool get_wait_for_incoming_client();
mridup 0:dc55f40eb04f 92 bool getIsInitialized(void);
mridup 0:dc55f40eb04f 93 void setTimeout(int timeout) {
mridup 0:dc55f40eb04f 94 _timeout = timeout;
mridup 0:dc55f40eb04f 95 }
mridup 0:dc55f40eb04f 96 void debug_print(const char * string);
mridup 0:dc55f40eb04f 97
mridup 0:dc55f40eb04f 98 private:
mridup 0:dc55f40eb04f 99 bool isInitialized;
mridup 0:dc55f40eb04f 100
mridup 0:dc55f40eb04f 101 RawSerial uart_;
mridup 0:dc55f40eb04f 102 RawSerial term_;
mridup 0:dc55f40eb04f 103 Ticker wifi_isr;
mridup 0:dc55f40eb04f 104 Ticker wifi_callback;
mridup 0:dc55f40eb04f 105 DigitalInOut wakeup_;
mridup 0:dc55f40eb04f 106 DigitalInOut rst_;
mridup 0:dc55f40eb04f 107 DigitalInOut rts_;
mridup 0:dc55f40eb04f 108 wifi_config config;
mridup 0:dc55f40eb04f 109 bool sync_wait_signal;
mridup 6:e7a3fca2df10 110 bool wait_for_incoming_client;
mridup 7:0fdd186a7d90 111 bool wait_for_socket_data;
mridup 0:dc55f40eb04f 112 uint16_t bytes_read;
mridup 0:dc55f40eb04f 113 uint16_t bytes_to_read;
mridup 0:dc55f40eb04f 114 uint8_t * recv_buff;
mridup 0:dc55f40eb04f 115 int _timeout;
mridup 0:dc55f40eb04f 116
mridup 0:dc55f40eb04f 117 char _ip_buffer[16];
mridup 0:dc55f40eb04f 118 char _mac_buffer[18];
mridup 0:dc55f40eb04f 119 };
mridup 0:dc55f40eb04f 120
mridup 0:dc55f40eb04f 121 #endif