Updates and additions required by mbed-os 5.2.2
Dependents: x-nucleo-iks01a1-test x-nucleo-iks01a1-test
Fork of X_NUCLEO_IDW01M1v2 by
SpwfInterface.h@14:aadc322f10db, 2016-11-20 (annotated)
- Committer:
- lapi
- Date:
- Sun Nov 20 20:39:17 2016 +0000
- Revision:
- 14:aadc322f10db
- Parent:
- 13:3d28a8c18182
Updates and additions required by mbed-os 5.2.2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mridup | 0:907910bfb0b5 | 1 | /* mbed Microcontroller Library |
mridup | 0:907910bfb0b5 | 2 | * Copyright (c) 20015 ARM Limited |
mridup | 0:907910bfb0b5 | 3 | * |
mridup | 0:907910bfb0b5 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
mridup | 0:907910bfb0b5 | 5 | * you may not use this file except in compliance with the License. |
mridup | 0:907910bfb0b5 | 6 | * You may obtain a copy of the License at |
mridup | 0:907910bfb0b5 | 7 | * |
mridup | 0:907910bfb0b5 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
mridup | 0:907910bfb0b5 | 9 | * |
mridup | 0:907910bfb0b5 | 10 | * Unless required by applicable law or agreed to in writing, software |
mridup | 0:907910bfb0b5 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
mridup | 0:907910bfb0b5 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
mridup | 0:907910bfb0b5 | 13 | * See the License for the specific language governing permissions and |
mridup | 0:907910bfb0b5 | 14 | * limitations under the License. |
mridup | 0:907910bfb0b5 | 15 | */ |
mridup | 0:907910bfb0b5 | 16 | |
mridup | 0:907910bfb0b5 | 17 | /** |
mridup | 0:907910bfb0b5 | 18 | ****************************************************************************** |
mridup | 0:907910bfb0b5 | 19 | * @file SpwfInterface.h |
mridup | 0:907910bfb0b5 | 20 | * @author STMicroelectronics |
mridup | 0:907910bfb0b5 | 21 | * @brief Header file of the NetworkStack for the SPWF Device |
mridup | 0:907910bfb0b5 | 22 | ****************************************************************************** |
mridup | 0:907910bfb0b5 | 23 | * @copy |
mridup | 0:907910bfb0b5 | 24 | * |
mridup | 0:907910bfb0b5 | 25 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS |
mridup | 0:907910bfb0b5 | 26 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE |
mridup | 0:907910bfb0b5 | 27 | * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY |
mridup | 0:907910bfb0b5 | 28 | * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING |
mridup | 0:907910bfb0b5 | 29 | * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE |
mridup | 0:907910bfb0b5 | 30 | * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
mridup | 0:907910bfb0b5 | 31 | * |
mridup | 0:907910bfb0b5 | 32 | * <h2><center>© COPYRIGHT 2016 STMicroelectronics</center></h2> |
mridup | 0:907910bfb0b5 | 33 | ****************************************************************************** |
mridup | 0:907910bfb0b5 | 34 | */ |
mridup | 0:907910bfb0b5 | 35 | |
mridup | 0:907910bfb0b5 | 36 | #ifndef SPWFSA_INTERFACE_H |
mridup | 0:907910bfb0b5 | 37 | #define SPWFSA_INTERFACE_H |
mridup | 0:907910bfb0b5 | 38 | |
mridup | 0:907910bfb0b5 | 39 | #include "WiFiInterface.h" |
mridup | 0:907910bfb0b5 | 40 | #include "SPWFSA01.h" |
mridup | 0:907910bfb0b5 | 41 | |
mridup | 0:907910bfb0b5 | 42 | #define SPWFSA_SOCKET_COUNT 8 |
mridup | 0:907910bfb0b5 | 43 | #define SERVER_SOCKET_NO 9 |
mridup | 0:907910bfb0b5 | 44 | |
mridup | 0:907910bfb0b5 | 45 | /** SpwfSAInterface class |
mridup | 0:907910bfb0b5 | 46 | * Implementation of the NetworkStack for the SPWF Device |
mridup | 0:907910bfb0b5 | 47 | */ |
mridup | 0:907910bfb0b5 | 48 | class SpwfSAInterface : public NetworkStack, public WiFiInterface |
mridup | 0:907910bfb0b5 | 49 | { |
mridup | 0:907910bfb0b5 | 50 | public: |
mridup | 0:907910bfb0b5 | 51 | |
mridup | 0:907910bfb0b5 | 52 | SpwfSAInterface(PinName tx, PinName rx, bool debug = false); |
lapi | 13:3d28a8c18182 | 53 | virtual ~SpwfSAInterface(); |
mridup | 0:907910bfb0b5 | 54 | |
mridup | 0:907910bfb0b5 | 55 | // Implementation of WiFiInterface |
lapi | 13:3d28a8c18182 | 56 | virtual nsapi_error_t set_credentials(const char *ssid, const char *pass, |
lapi | 13:3d28a8c18182 | 57 | nsapi_security_t security = NSAPI_SECURITY_NONE); |
lapi | 13:3d28a8c18182 | 58 | virtual nsapi_error_t connect(const char *ssid, |
mridup | 0:907910bfb0b5 | 59 | const char *pass, |
lapi | 13:3d28a8c18182 | 60 | nsapi_security_t security = NSAPI_SECURITY_NONE, |
lapi | 13:3d28a8c18182 | 61 | uint8_t channel = 0); |
lapi | 13:3d28a8c18182 | 62 | virtual nsapi_error_t connect() { |
lapi | 13:3d28a8c18182 | 63 | if (_ssid == 0 || _pass == 0) return NSAPI_ERROR_PARAMETER; |
lapi | 13:3d28a8c18182 | 64 | return connect(_ssid, _pass, _security, _channel); |
lapi | 13:3d28a8c18182 | 65 | } |
lapi | 13:3d28a8c18182 | 66 | virtual nsapi_error_t set_channel(uint8_t channel) { |
lapi | 13:3d28a8c18182 | 67 | _channel = channel; |
lapi | 13:3d28a8c18182 | 68 | return NSAPI_ERROR_OK; |
lapi | 13:3d28a8c18182 | 69 | } |
lapi | 13:3d28a8c18182 | 70 | virtual int8_t get_rssi(); |
lapi | 13:3d28a8c18182 | 71 | virtual int disconnect(); |
lapi | 13:3d28a8c18182 | 72 | virtual nsapi_size_or_error_t scan(WiFiAccessPoint *res, nsapi_size_t count) { |
lapi | 13:3d28a8c18182 | 73 | return NSAPI_ERROR_UNSUPPORTED; // TODO! Add scan support |
lapi | 13:3d28a8c18182 | 74 | } |
lapi | 13:3d28a8c18182 | 75 | |
lapi | 13:3d28a8c18182 | 76 | virtual const char *get_mac_address(); |
lapi | 13:3d28a8c18182 | 77 | void debug(const char * string); |
mridup | 0:907910bfb0b5 | 78 | |
mridup | 0:907910bfb0b5 | 79 | //Implementation of NetworkStack |
lapi | 13:3d28a8c18182 | 80 | virtual const char *get_ip_address(); |
mridup | 0:907910bfb0b5 | 81 | |
mridup | 0:907910bfb0b5 | 82 | protected: |
mridup | 0:907910bfb0b5 | 83 | //Implementation of NetworkStack |
lapi | 13:3d28a8c18182 | 84 | virtual int socket_open(void **handle, nsapi_protocol_t proto); |
lapi | 13:3d28a8c18182 | 85 | virtual int socket_close(void *handle); |
lapi | 13:3d28a8c18182 | 86 | virtual int socket_bind(void *handle, const SocketAddress &address); //not supported |
lapi | 13:3d28a8c18182 | 87 | virtual int socket_listen(void *handle, int backlog); |
lapi | 13:3d28a8c18182 | 88 | virtual int socket_connect(void *handle, const SocketAddress &address); |
lapi | 13:3d28a8c18182 | 89 | virtual nsapi_error_t socket_accept(nsapi_socket_t server, |
lapi | 13:3d28a8c18182 | 90 | nsapi_socket_t *handle, SocketAddress *address=0); |
lapi | 13:3d28a8c18182 | 91 | virtual int socket_send(void *handle, const void *data, unsigned size); |
lapi | 13:3d28a8c18182 | 92 | virtual int socket_recv(void *handle, void *data, unsigned size); |
lapi | 13:3d28a8c18182 | 93 | virtual int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size); |
lapi | 13:3d28a8c18182 | 94 | virtual int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size); |
lapi | 13:3d28a8c18182 | 95 | virtual void socket_attach(void *handle, void (*callback)(void *), void *data); |
lapi | 13:3d28a8c18182 | 96 | virtual NetworkStack* get_stack() {return this;} |
mridup | 0:907910bfb0b5 | 97 | private: |
lapi | 13:3d28a8c18182 | 98 | int init(void); |
mridup | 0:907910bfb0b5 | 99 | |
mridup | 0:907910bfb0b5 | 100 | SPWFSA01 _spwf; |
mridup | 0:907910bfb0b5 | 101 | bool _ids[SPWFSA_SOCKET_COUNT]; |
mridup | 0:907910bfb0b5 | 102 | bool isListening; |
lapi | 13:3d28a8c18182 | 103 | bool isInitialized; |
lapi | 13:3d28a8c18182 | 104 | const char *_ssid; |
lapi | 13:3d28a8c18182 | 105 | const char *_pass; |
lapi | 13:3d28a8c18182 | 106 | nsapi_security_t _security; |
lapi | 13:3d28a8c18182 | 107 | uint8_t _channel; |
mridup | 0:907910bfb0b5 | 108 | }; |
mridup | 0:907910bfb0b5 | 109 | |
mridup | 0:907910bfb0b5 | 110 | |
mridup | 0:907910bfb0b5 | 111 | #endif |