Updates and additions required by mbed-os 5.2.2

Dependencies:   SPWF01SA-lapi-1

Dependents:   x-nucleo-iks01a1-test x-nucleo-iks01a1-test

Fork of X_NUCLEO_IDW01M1v2 by ST

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?

UserRevisionLine numberNew 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>&copy; 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