zhang chenhong / Mbed 2 deprecated IDW01M1_Cloud_IBM

Dependencies:   mbed Servo X_NUCLEO_IKS01A2 X_NUCLEO_IDW01M1v2 NetworkSocketAPI NDefLib MQTT

Committer:
mridup
Date:
Fri Apr 08 12:07:17 2016 +0000
Revision:
0:cbf8bc43bc9e
Child:
2:ba0531d896f0
changes for optimization in Keil compiler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mridup 0:cbf8bc43bc9e 1 /* SpwfSAInterface implementation of NetworkInterfaceAPI
mridup 0:cbf8bc43bc9e 2 * Copyright (c) 2015 ARM Limited
mridup 0:cbf8bc43bc9e 3 *
mridup 0:cbf8bc43bc9e 4 * Licensed under the Apache License, Version 2.0 (the "License");
mridup 0:cbf8bc43bc9e 5 * you may not use this file except in compliance with the License.
mridup 0:cbf8bc43bc9e 6 * You may obtain a copy of the License at
mridup 0:cbf8bc43bc9e 7 *
mridup 0:cbf8bc43bc9e 8 * http://www.apache.org/licenses/LICENSE-2.0
mridup 0:cbf8bc43bc9e 9 *
mridup 0:cbf8bc43bc9e 10 * Unless required by applicable law or agreed to in writing, software
mridup 0:cbf8bc43bc9e 11 * distributed under the License is distributed on an "AS IS" BASIS,
mridup 0:cbf8bc43bc9e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mridup 0:cbf8bc43bc9e 13 * See the License for the specific language governing permissions and
mridup 0:cbf8bc43bc9e 14 * limitations under the License.
mridup 0:cbf8bc43bc9e 15 */
mridup 0:cbf8bc43bc9e 16
mridup 0:cbf8bc43bc9e 17 #ifndef SPWFSA_INTERFACE_H
mridup 0:cbf8bc43bc9e 18 #define SPWFSA_INTERFACE_H
mridup 0:cbf8bc43bc9e 19
mridup 0:cbf8bc43bc9e 20 #include <vector>
mridup 0:cbf8bc43bc9e 21 #include <map>
mridup 0:cbf8bc43bc9e 22 #include "WiFiInterface.h"
mridup 0:cbf8bc43bc9e 23 #include "x-nucleo-idw01m1.h"
mridup 0:cbf8bc43bc9e 24
mridup 0:cbf8bc43bc9e 25 #define SPWFSA_SOCKET_COUNT 8
mridup 0:cbf8bc43bc9e 26
mridup 0:cbf8bc43bc9e 27 /** SpwfSAInterface class
mridup 0:cbf8bc43bc9e 28 * Implementation of the NetworkInterface for the SPWF Device
mridup 0:cbf8bc43bc9e 29 */
mridup 0:cbf8bc43bc9e 30 class SpwfSAInterface : public WiFiInterface
mridup 0:cbf8bc43bc9e 31 {
mridup 0:cbf8bc43bc9e 32 public:
mridup 0:cbf8bc43bc9e 33
mridup 0:cbf8bc43bc9e 34 SpwfSAInterface(PinName tx, PinName rx, PinName rst, PinName wkup, PinName rts, bool debug = false);
mridup 0:cbf8bc43bc9e 35 virtual ~SpwfSAInterface();
mridup 0:cbf8bc43bc9e 36
mridup 0:cbf8bc43bc9e 37 // Implementation of WiFiInterface
mridup 0:cbf8bc43bc9e 38 virtual int32_t connect(
mridup 0:cbf8bc43bc9e 39 const char *ssid,
mridup 0:cbf8bc43bc9e 40 const char *pass,
mridup 0:cbf8bc43bc9e 41 ns_security_t security = NS_SECURITY_NONE);
mridup 0:cbf8bc43bc9e 42
mridup 0:cbf8bc43bc9e 43 virtual int32_t disconnect();
mridup 0:cbf8bc43bc9e 44
mridup 0:cbf8bc43bc9e 45 // Implementation of NetworkInterface
mridup 0:cbf8bc43bc9e 46 virtual const char *getIPAddress();
mridup 0:cbf8bc43bc9e 47 virtual const char *getMACAddress();
mridup 0:cbf8bc43bc9e 48
mridup 0:cbf8bc43bc9e 49 virtual SocketInterface *createSocket(ns_protocol_t proto);
mridup 0:cbf8bc43bc9e 50 virtual void destroySocket(SocketInterface *socket);
mridup 0:cbf8bc43bc9e 51
mridup 0:cbf8bc43bc9e 52 int32_t init(void);
mridup 0:cbf8bc43bc9e 53 void debug(const char * string);
mridup 0:cbf8bc43bc9e 54 void setid(bool set, int id);
mridup 0:cbf8bc43bc9e 55
mridup 0:cbf8bc43bc9e 56 private:
mridup 0:cbf8bc43bc9e 57
mridup 0:cbf8bc43bc9e 58 SpwfSADevice _spwf;
mridup 0:cbf8bc43bc9e 59 bool _ids[SPWFSA_SOCKET_COUNT];
mridup 0:cbf8bc43bc9e 60 multimap <char *, vector <uint16_t> > c_table;
mridup 0:cbf8bc43bc9e 61
mridup 0:cbf8bc43bc9e 62 // Implementation of the SocketInterface for the SpwfSA
mridup 0:cbf8bc43bc9e 63 class SpwfSASocket : public SocketInterface
mridup 0:cbf8bc43bc9e 64 {
mridup 0:cbf8bc43bc9e 65 public:
mridup 0:cbf8bc43bc9e 66
mridup 0:cbf8bc43bc9e 67 // SpwfSA specific details
mridup 0:cbf8bc43bc9e 68 SpwfSADevice *__spwf;
mridup 0:cbf8bc43bc9e 69 SpwfSAInterface *_itf;
mridup 0:cbf8bc43bc9e 70 ns_protocol_t _proto;
mridup 0:cbf8bc43bc9e 71 int _id;
mridup 0:cbf8bc43bc9e 72
mridup 0:cbf8bc43bc9e 73 SpwfSASocket(SpwfSAInterface *itf, SpwfSADevice *spwf, ns_protocol_t proto)
mridup 0:cbf8bc43bc9e 74 : __spwf(spwf), _itf(itf), _proto(proto) {}
mridup 0:cbf8bc43bc9e 75
mridup 0:cbf8bc43bc9e 76 virtual ~SpwfSASocket() {
mridup 0:cbf8bc43bc9e 77 _itf = 0;
mridup 0:cbf8bc43bc9e 78 __spwf = 0;
mridup 0:cbf8bc43bc9e 79 }
mridup 0:cbf8bc43bc9e 80
mridup 0:cbf8bc43bc9e 81 // Implementation of SocketInterface
mridup 0:cbf8bc43bc9e 82 virtual int32_t open(const char *ip, uint16_t port);
mridup 0:cbf8bc43bc9e 83 virtual int32_t close();
mridup 0:cbf8bc43bc9e 84
mridup 0:cbf8bc43bc9e 85 virtual int32_t send(const void *data, uint32_t size);
mridup 0:cbf8bc43bc9e 86 virtual int32_t recv(void *data, uint32_t size);
mridup 0:cbf8bc43bc9e 87 };
mridup 0:cbf8bc43bc9e 88
mridup 0:cbf8bc43bc9e 89 };
mridup 0:cbf8bc43bc9e 90
mridup 0:cbf8bc43bc9e 91 /*Function to export singleton instance*/
mridup 0:cbf8bc43bc9e 92 SpwfSAInterface *createSPWFInstance(void);
mridup 0:cbf8bc43bc9e 93
mridup 0:cbf8bc43bc9e 94 #endif