Steve Sims / X_NUCLEO_IDW01M1_AP

Dependents:   X_NUCLEO_IDW01M1_AP_Test

Fork of X_NUCLEO_IDW01M1 by ST

Committer:
mridup
Date:
Wed May 04 12:16:20 2016 +0000
Revision:
5:c83ffd44f40a
Parent:
1:bd9db471d47d
Child:
6:e7a3fca2df10
changes adapting to NetworkStack v119

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 0:dc55f40eb04f 47 /*Class describing the SPWF Device*/
mridup 0:dc55f40eb04f 48 class SpwfSADevice
mridup 0:dc55f40eb04f 49 {
mridup 0:dc55f40eb04f 50
mridup 0:dc55f40eb04f 51 public:
mridup 0:dc55f40eb04f 52 SpwfSADevice(PinName tx, PinName rx, PinName rst, PinName wkup, PinName rts);
mridup 0:dc55f40eb04f 53 ~SpwfSADevice(void);
mridup 0:dc55f40eb04f 54
mridup 5:c83ffd44f40a 55 int init(void);
mridup 5:c83ffd44f40a 56 int connect(char * ssid, char * sec_key, WiFi_Priv_Mode priv_mode);
mridup 5:c83ffd44f40a 57 int disconnect(void);
mridup 0:dc55f40eb04f 58 const char *getIPAddress();
mridup 0:dc55f40eb04f 59 const char *getMACAddress();
mridup 0:dc55f40eb04f 60 void network_scan(wifi_scan *scan_result, uint16_t max_scan_number);
mridup 0:dc55f40eb04f 61
mridup 5:c83ffd44f40a 62 int socket_client_open(uint8_t * hostname, uint32_t port_number, uint8_t * protocol, uint8_t * sock_id);
mridup 5:c83ffd44f40a 63 int socket_client_write(uint8_t sock_id, uint16_t DataLength,char * pData);
mridup 5:c83ffd44f40a 64 int socket_client_recv(uint8_t sock_id, uint16_t RecvLength,char * pData);
mridup 5:c83ffd44f40a 65 int socket_client_close(uint8_t sock_close_id);
mridup 0:dc55f40eb04f 66 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 67
mridup 0:dc55f40eb04f 68 void socket_server_open(uint32_t port_number, uint8_t * protocol);
mridup 0:dc55f40eb04f 69 void socket_server_write(uint16_t DataLength,char * pData);
mridup 0:dc55f40eb04f 70 void socket_server_close(void);
mridup 0:dc55f40eb04f 71
mridup 0:dc55f40eb04f 72 void http_get(uint8_t * hostname, uint8_t * path, uint32_t port_number);
mridup 0:dc55f40eb04f 73 void http_post(uint8_t * url_path);
mridup 0:dc55f40eb04f 74
mridup 0:dc55f40eb04f 75 /*These functions should be pure virtual functions for ppl to derive and implement there own stuff*/
mridup 0:dc55f40eb04f 76 char spwf_get(void);
mridup 0:dc55f40eb04f 77 void spwf_send(const char * cmd, uint16_t size);
mridup 0:dc55f40eb04f 78 void spwf_wakeup(int wake);
mridup 0:dc55f40eb04f 79 void spwf_reset(int reset);
mridup 0:dc55f40eb04f 80 void spwf_rts(int rts);
mridup 0:dc55f40eb04f 81 void spwf_attach_irq(wifi_bool attach);
mridup 0:dc55f40eb04f 82 int spwf_read_rts();
mridup 0:dc55f40eb04f 83
mridup 0:dc55f40eb04f 84 const char *getVersion(void);
mridup 0:dc55f40eb04f 85 void waitForEvent(void);
mridup 0:dc55f40eb04f 86 void signal_data_receive(uint8_t socket_id, uint8_t * data_ptr, uint32_t message_size, uint32_t chunk_size);
mridup 0:dc55f40eb04f 87 void signal_synch_wait(WiFi_Status_t code);
mridup 0:dc55f40eb04f 88 bool getIsInitialized(void);
mridup 0:dc55f40eb04f 89 void setTimeout(int timeout) {
mridup 0:dc55f40eb04f 90 _timeout = timeout;
mridup 0:dc55f40eb04f 91 }
mridup 0:dc55f40eb04f 92 void debug_print(const char * string);
mridup 0:dc55f40eb04f 93
mridup 0:dc55f40eb04f 94 private:
mridup 0:dc55f40eb04f 95 bool isInitialized;
mridup 0:dc55f40eb04f 96
mridup 0:dc55f40eb04f 97 RawSerial uart_;
mridup 0:dc55f40eb04f 98 RawSerial term_;
mridup 0:dc55f40eb04f 99 Ticker wifi_isr;
mridup 0:dc55f40eb04f 100 Ticker wifi_callback;
mridup 0:dc55f40eb04f 101 DigitalInOut wakeup_;
mridup 0:dc55f40eb04f 102 DigitalInOut rst_;
mridup 0:dc55f40eb04f 103 DigitalInOut rts_;
mridup 0:dc55f40eb04f 104 wifi_config config;
mridup 0:dc55f40eb04f 105 bool sync_wait_signal;
mridup 0:dc55f40eb04f 106 uint16_t bytes_read;
mridup 0:dc55f40eb04f 107 uint16_t bytes_to_read;
mridup 0:dc55f40eb04f 108 uint8_t * recv_buff;
mridup 0:dc55f40eb04f 109 int _timeout;
mridup 0:dc55f40eb04f 110
mridup 0:dc55f40eb04f 111 char _ip_buffer[16];
mridup 0:dc55f40eb04f 112 char _mac_buffer[18];
mridup 0:dc55f40eb04f 113 };
mridup 0:dc55f40eb04f 114
mridup 0:dc55f40eb04f 115 #endif