Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: X_NUCLEO_IDW01M1_AP_Test
Fork of X_NUCLEO_IDW01M1 by
Spwf_API/SpwfSADevice.h@6:e7a3fca2df10, 2016-05-09 (annotated)
- 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?
User | Revision | Line number | New 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>© 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 |