Steve Sims / X_NUCLEO_IDW01M1_AP

Dependents:   X_NUCLEO_IDW01M1_AP_Test

Fork of X_NUCLEO_IDW01M1 by ST

Committer:
mridup
Date:
Mon May 09 10:38:22 2016 +0000
Revision:
6:e7a3fca2df10
Parent:
5:c83ffd44f40a
Child:
7:0fdd186a7d90
Socket Server support.

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 6:e7a3fca2df10 55 int init(void);
mridup 6:e7a3fca2df10 56 int connect(char * ssid, char * sec_key, WiFi_Priv_Mode priv_mode);
mridup 6:e7a3fca2df10 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 6:e7a3fca2df10 62 int socket_client_open(uint8_t * hostname, uint32_t port_number, uint8_t * protocol, uint8_t * sock_id);
mridup 6:e7a3fca2df10 63 int socket_client_write(uint8_t sock_id, uint16_t DataLength,char * pData);
mridup 6:e7a3fca2df10 64 int socket_client_recv(uint8_t sock_id, uint16_t RecvLength,char * pData);
mridup 6:e7a3fca2df10 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 6:e7a3fca2df10 68 int socket_server_open(uint32_t port_number, uint8_t * protocol);
mridup 6:e7a3fca2df10 69 int socket_server_write(uint16_t data_length,char * pdata);
mridup 6:e7a3fca2df10 70 int 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 6:e7a3fca2df10 88 void set_wait_for_incoming_client(bool set);
mridup 6:e7a3fca2df10 89 bool get_wait_for_incoming_client();
mridup 0:dc55f40eb04f 90 bool getIsInitialized(void);
mridup 0:dc55f40eb04f 91 void setTimeout(int timeout) {
mridup 0:dc55f40eb04f 92 _timeout = timeout;
mridup 0:dc55f40eb04f 93 }
mridup 0:dc55f40eb04f 94 void debug_print(const char * string);
mridup 0:dc55f40eb04f 95
mridup 0:dc55f40eb04f 96 private:
mridup 0:dc55f40eb04f 97 bool isInitialized;
mridup 0:dc55f40eb04f 98
mridup 0:dc55f40eb04f 99 RawSerial uart_;
mridup 0:dc55f40eb04f 100 RawSerial term_;
mridup 0:dc55f40eb04f 101 Ticker wifi_isr;
mridup 0:dc55f40eb04f 102 Ticker wifi_callback;
mridup 0:dc55f40eb04f 103 DigitalInOut wakeup_;
mridup 0:dc55f40eb04f 104 DigitalInOut rst_;
mridup 0:dc55f40eb04f 105 DigitalInOut rts_;
mridup 0:dc55f40eb04f 106 wifi_config config;
mridup 0:dc55f40eb04f 107 bool sync_wait_signal;
mridup 6:e7a3fca2df10 108 bool wait_for_incoming_client;
mridup 0:dc55f40eb04f 109 uint16_t bytes_read;
mridup 0:dc55f40eb04f 110 uint16_t bytes_to_read;
mridup 0:dc55f40eb04f 111 uint8_t * recv_buff;
mridup 0:dc55f40eb04f 112 int _timeout;
mridup 0:dc55f40eb04f 113
mridup 0:dc55f40eb04f 114 char _ip_buffer[16];
mridup 0:dc55f40eb04f 115 char _mac_buffer[18];
mridup 0:dc55f40eb04f 116 };
mridup 0:dc55f40eb04f 117
mridup 0:dc55f40eb04f 118 #endif