Extending the X_NUCLEO_IDW01M1 to allow configuration of the board as an access point
Dependents: X_NUCLEO_IDW01M1_AP_Test
Fork of X_NUCLEO_IDW01M1 by
SPWFInterface.h@7:0fdd186a7d90, 2016-05-11 (annotated)
- Committer:
- mridup
- Date:
- Wed May 11 06:12:16 2016 +0000
- Revision:
- 7:0fdd186a7d90
- Parent:
- 6:e7a3fca2df10
- Child:
- 11:67a8c3499caf
fix recv, server sock, \r\n..\r\n issue in FW.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mridup | 0:dc55f40eb04f | 1 | /* SpwfSAInterface implementation of NetworkInterfaceAPI |
mridup | 0:dc55f40eb04f | 2 | * Copyright (c) 2015 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 | #ifndef SPWFSA_INTERFACE_H |
mridup | 0:dc55f40eb04f | 18 | #define SPWFSA_INTERFACE_H |
mridup | 0:dc55f40eb04f | 19 | |
mridup | 0:dc55f40eb04f | 20 | #include <vector> |
mridup | 0:dc55f40eb04f | 21 | #include <map> |
mridup | 0:dc55f40eb04f | 22 | #include "WiFiInterface.h" |
mridup | 0:dc55f40eb04f | 23 | #include "SpwfSADevice.h" |
mridup | 0:dc55f40eb04f | 24 | |
mridup | 0:dc55f40eb04f | 25 | #define SPWFSA_SOCKET_COUNT 8 |
mridup | 6:e7a3fca2df10 | 26 | #define SERVER_SOCKET_NO 9 |
mridup | 0:dc55f40eb04f | 27 | |
mridup | 0:dc55f40eb04f | 28 | /** SpwfSAInterface class |
mridup | 5:c83ffd44f40a | 29 | * Implementation of the NetworkStack for the SPWF Device |
mridup | 0:dc55f40eb04f | 30 | */ |
mridup | 5:c83ffd44f40a | 31 | class SpwfSAInterface : public NetworkStack, public WiFiInterface |
mridup | 0:dc55f40eb04f | 32 | { |
mridup | 0:dc55f40eb04f | 33 | public: |
mridup | 0:dc55f40eb04f | 34 | |
mridup | 0:dc55f40eb04f | 35 | SpwfSAInterface(PinName tx, PinName rx, PinName rst, PinName wkup, PinName rts, bool debug = false); |
mridup | 0:dc55f40eb04f | 36 | virtual ~SpwfSAInterface(); |
mridup | 0:dc55f40eb04f | 37 | |
mridup | 0:dc55f40eb04f | 38 | // Implementation of WiFiInterface |
mridup | 5:c83ffd44f40a | 39 | virtual int connect( |
mridup | 0:dc55f40eb04f | 40 | const char *ssid, |
mridup | 0:dc55f40eb04f | 41 | const char *pass, |
mridup | 5:c83ffd44f40a | 42 | nsapi_security_t security = NSAPI_SECURITY_NONE); |
mridup | 0:dc55f40eb04f | 43 | |
mridup | 5:c83ffd44f40a | 44 | virtual int disconnect(); |
mridup | 5:c83ffd44f40a | 45 | virtual const char *get_mac_address(); |
mridup | 0:dc55f40eb04f | 46 | void debug(const char * string); |
mridup | 5:c83ffd44f40a | 47 | |
mridup | 5:c83ffd44f40a | 48 | //Implementation of NetworkStack |
mridup | 5:c83ffd44f40a | 49 | virtual const char *get_ip_address(); |
mridup | 5:c83ffd44f40a | 50 | |
mridup | 5:c83ffd44f40a | 51 | protected: |
mridup | 5:c83ffd44f40a | 52 | //Implementation of NetworkStack |
mridup | 5:c83ffd44f40a | 53 | virtual int socket_open(void **handle, nsapi_protocol_t proto); |
mridup | 5:c83ffd44f40a | 54 | virtual int socket_close(void *handle); |
mridup | 5:c83ffd44f40a | 55 | virtual int socket_bind(void *handle, const SocketAddress &address); //not supported |
mridup | 6:e7a3fca2df10 | 56 | virtual int socket_listen(void *handle, int backlog); |
mridup | 6:e7a3fca2df10 | 57 | virtual int socket_connect(void *handle, const SocketAddress &address); |
mridup | 6:e7a3fca2df10 | 58 | virtual int socket_accept(void **handle, void *server); |
mridup | 5:c83ffd44f40a | 59 | virtual int socket_send(void *handle, const void *data, unsigned size); |
mridup | 5:c83ffd44f40a | 60 | virtual int socket_recv(void *handle, void *data, unsigned size); |
mridup | 5:c83ffd44f40a | 61 | virtual int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size); |
mridup | 5:c83ffd44f40a | 62 | virtual int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size); |
mridup | 5:c83ffd44f40a | 63 | virtual void socket_attach(void *handle, void (*callback)(void *), void *data); |
mridup | 5:c83ffd44f40a | 64 | |
mridup | 5:c83ffd44f40a | 65 | private: |
mridup | 7:0fdd186a7d90 | 66 | int init(void); |
mridup | 7:0fdd186a7d90 | 67 | //int get_network_socket(struct spwf_socket **handle); |
mridup | 0:dc55f40eb04f | 68 | |
mridup | 0:dc55f40eb04f | 69 | SpwfSADevice _spwf; |
mridup | 0:dc55f40eb04f | 70 | bool _ids[SPWFSA_SOCKET_COUNT]; |
mridup | 6:e7a3fca2df10 | 71 | bool isListening; |
mridup | 3:fd9d20c4d3f0 | 72 | bool isInitialized; |
mridup | 5:c83ffd44f40a | 73 | multimap <char *, vector <uint16_t> > c_table; |
mridup | 0:dc55f40eb04f | 74 | |
mridup | 0:dc55f40eb04f | 75 | }; |
mridup | 0:dc55f40eb04f | 76 | |
mridup | 0:dc55f40eb04f | 77 | |
mridup | 0:dc55f40eb04f | 78 | #endif |