iowfehu;gdbjwHJAOPIHO?L
Fork of X_NUCLEO_IDW01M1 by
Spwf_API/SpwfSADevice.h@18:224f8d3bf6d8, 2016-08-11 (annotated)
- Committer:
- awmiller
- Date:
- Thu Aug 11 23:26:26 2016 +0000
- Revision:
- 18:224f8d3bf6d8
- Parent:
- 16:156be7b55904
added support for UART
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 | 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); |
mridup | 6:e7a3fca2df10 | 59 | int disconnect(void); |
mridup | 0:dc55f40eb04f | 60 | const char *getIPAddress(); |
mridup | 0:dc55f40eb04f | 61 | const char *getMACAddress(); |
mridup | 0:dc55f40eb04f | 62 | void network_scan(wifi_scan *scan_result, uint16_t max_scan_number); |
mridup | 0:dc55f40eb04f | 63 | |
mridup | 6:e7a3fca2df10 | 64 | int socket_client_open(uint8_t * hostname, uint32_t port_number, uint8_t * protocol, uint8_t * sock_id); |
mridup | 6:e7a3fca2df10 | 65 | int socket_client_write(uint8_t sock_id, uint16_t DataLength,char * pData); |
mridup | 6:e7a3fca2df10 | 66 | int socket_client_recv(uint8_t sock_id, uint16_t RecvLength,char * pData); |
mridup | 6:e7a3fca2df10 | 67 | int socket_client_close(uint8_t sock_close_id); |
mridup | 0:dc55f40eb04f | 68 | 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 | 69 | |
mridup | 6:e7a3fca2df10 | 70 | int socket_server_open(uint32_t port_number, uint8_t * protocol); |
mridup | 6:e7a3fca2df10 | 71 | int socket_server_write(uint16_t data_length,char * pdata); |
mridup | 6:e7a3fca2df10 | 72 | int socket_server_close(void); |
mridup | 0:dc55f40eb04f | 73 | |
mridup | 0:dc55f40eb04f | 74 | void http_get(uint8_t * hostname, uint8_t * path, uint32_t port_number); |
mridup | 0:dc55f40eb04f | 75 | void http_post(uint8_t * url_path); |
mridup | 0:dc55f40eb04f | 76 | |
mridup | 0:dc55f40eb04f | 77 | char spwf_get(void); |
mridup | 8:0f302a13e21b | 78 | int spwf_send(const char * cmd, uint16_t size); |
mridup | 0:dc55f40eb04f | 79 | void spwf_wakeup(int wake); |
mridup | 0:dc55f40eb04f | 80 | void spwf_reset(int reset); |
mridup | 0:dc55f40eb04f | 81 | void spwf_rts(int rts); |
mridup | 0:dc55f40eb04f | 82 | void spwf_attach_irq(wifi_bool attach); |
mridup | 0:dc55f40eb04f | 83 | int spwf_read_rts(); |
mridup | 0:dc55f40eb04f | 84 | |
mridup | 0:dc55f40eb04f | 85 | const char *getVersion(void); |
mridup | 0:dc55f40eb04f | 86 | void waitForEvent(void); |
mridup | 0:dc55f40eb04f | 87 | void signal_data_receive(uint8_t socket_id, uint8_t * data_ptr, uint32_t message_size, uint32_t chunk_size); |
mridup | 0:dc55f40eb04f | 88 | void signal_synch_wait(WiFi_Status_t code); |
mridup | 6:e7a3fca2df10 | 89 | void set_wait_for_incoming_client(bool set); |
mridup | 6:e7a3fca2df10 | 90 | bool get_wait_for_incoming_client(); |
mridup | 0:dc55f40eb04f | 91 | bool getIsInitialized(void); |
mridup | 0:dc55f40eb04f | 92 | void setTimeout(int timeout) { |
mridup | 0:dc55f40eb04f | 93 | _timeout = timeout; |
mridup | 0:dc55f40eb04f | 94 | } |
mridup | 0:dc55f40eb04f | 95 | void debug_print(const char * string); |
mridup | 0:dc55f40eb04f | 96 | |
mridup | 0:dc55f40eb04f | 97 | private: |
mridup | 0:dc55f40eb04f | 98 | bool isInitialized; |
mridup | 0:dc55f40eb04f | 99 | |
mridup | 0:dc55f40eb04f | 100 | RawSerial uart_; |
mridup | 0:dc55f40eb04f | 101 | RawSerial term_; |
mridup | 0:dc55f40eb04f | 102 | Ticker wifi_isr; |
mridup | 0:dc55f40eb04f | 103 | Ticker wifi_callback; |
mridup | 0:dc55f40eb04f | 104 | DigitalInOut wakeup_; |
mridup | 0:dc55f40eb04f | 105 | DigitalInOut rst_; |
mridup | 0:dc55f40eb04f | 106 | DigitalInOut rts_; |
mridup | 0:dc55f40eb04f | 107 | wifi_config config; |
mridup | 0:dc55f40eb04f | 108 | bool sync_wait_signal; |
mridup | 6:e7a3fca2df10 | 109 | bool wait_for_incoming_client; |
mridup | 7:0fdd186a7d90 | 110 | bool wait_for_socket_data; |
mridup | 0:dc55f40eb04f | 111 | uint16_t bytes_read; |
mridup | 0:dc55f40eb04f | 112 | uint16_t bytes_to_read; |
mridup | 0:dc55f40eb04f | 113 | uint8_t * recv_buff; |
mridup | 0:dc55f40eb04f | 114 | int _timeout; |
mridup | 0:dc55f40eb04f | 115 | |
mridup | 0:dc55f40eb04f | 116 | char _ip_buffer[16]; |
mridup | 0:dc55f40eb04f | 117 | char _mac_buffer[18]; |
mridup | 0:dc55f40eb04f | 118 | }; |
mridup | 0:dc55f40eb04f | 119 | |
mridup | 0:dc55f40eb04f | 120 | #endif |