sandbox / ESP8266Interface

Dependencies:   ESP8266

Fork of ESP8266Interface by Christopher Haster

Committer:
sam_grove
Date:
Wed Jun 17 23:38:01 2015 +0000
Revision:
13:0186e9e35a24
Parent:
12:8db9b116cf76
Child:
15:d29439d50306
add socket implementations

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sam_grove 12:8db9b116cf76 1 /* WiFiRadioInterface Example
sam_grove 11:288c15b80a26 2 * Copyright (c) 2015 ARM Limited
sam_grove 11:288c15b80a26 3 *
sam_grove 11:288c15b80a26 4 * Licensed under the Apache License, Version 2.0 (the "License");
sam_grove 11:288c15b80a26 5 * you may not use this file except in compliance with the License.
sam_grove 11:288c15b80a26 6 * You may obtain a copy of the License at
sam_grove 11:288c15b80a26 7 *
sam_grove 11:288c15b80a26 8 * http://www.apache.org/licenses/LICENSE-2.0
sam_grove 11:288c15b80a26 9 *
sam_grove 11:288c15b80a26 10 * Unless required by applicable law or agreed to in writing, software
sam_grove 11:288c15b80a26 11 * distributed under the License is distributed on an "AS IS" BASIS,
sam_grove 11:288c15b80a26 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sam_grove 11:288c15b80a26 13 * See the License for the specific language governing permissions and
sam_grove 11:288c15b80a26 14 * limitations under the License.
sam_grove 11:288c15b80a26 15 */
sam_grove 11:288c15b80a26 16
sam_grove 11:288c15b80a26 17 #ifndef WIFIRADIOINTERFACE_H
sam_grove 11:288c15b80a26 18 #define WIFIRADIOINTERFACE_H
sam_grove 11:288c15b80a26 19
sam_grove 11:288c15b80a26 20 #include "WiFiInterface.h"
sam_grove 13:0186e9e35a24 21 #include "SocketInterface.h"
sam_grove 11:288c15b80a26 22
sam_grove 12:8db9b116cf76 23 /** WiFiRadioInterface class.
sam_grove 12:8db9b116cf76 24 This is a interface a WiFi radio
sam_grove 11:288c15b80a26 25 */
sam_grove 13:0186e9e35a24 26 class WiFiRadioInterface : public WiFiInterface, SocketInterface
sam_grove 11:288c15b80a26 27 {
sam_grove 11:288c15b80a26 28 public:
sam_grove 13:0186e9e35a24 29 using Socket::connect;
sam_grove 11:288c15b80a26 30
sam_grove 11:288c15b80a26 31 WiFiRadioInterface();
sam_grove 11:288c15b80a26 32 WiFiRadioInterface(const char *ap, const char *pass_phrase = 0, wifi_security_t security = WI_NONE, uint32_t timeout_ms = 15000);
sam_grove 11:288c15b80a26 33 virtual int32_t init(void) const;
sam_grove 11:288c15b80a26 34 virtual int32_t init(const char *ip, const char *mask, const char *gateway) const;
sam_grove 11:288c15b80a26 35 virtual int32_t connect(uint32_t timeout_ms) const;
sam_grove 11:288c15b80a26 36 virtual int32_t connect(const char *ap, const char *pass_phrase = 0, wifi_security_t security = WI_NONE, uint32_t timeout_ms = 15000) const;
sam_grove 11:288c15b80a26 37 virtual int32_t disconnect(void) const;
sam_grove 11:288c15b80a26 38 virtual char *getIPAddress(void) const;
sam_grove 11:288c15b80a26 39 virtual char *getGateway(void) const;
sam_grove 11:288c15b80a26 40 virtual char *getNetworkMask(void) const;
sam_grove 11:288c15b80a26 41 virtual char *getMACAddress(void) const;
sam_grove 11:288c15b80a26 42 virtual int32_t isConnected(void) const;
sam_grove 13:0186e9e35a24 43
sam_grove 13:0186e9e35a24 44 // socket stuff
sam_grove 13:0186e9e35a24 45 virtual const char *get_host_by_name(const char *name) const;
sam_grove 13:0186e9e35a24 46 virtual int32_t set_address(const char* addr) const;
sam_grove 13:0186e9e35a24 47 virtual int32_t set_port(uint16_t port) const;
sam_grove 13:0186e9e35a24 48 virtual int32_t set_address_port(const char* addr, uint16_t port) const;
sam_grove 13:0186e9e35a24 49 virtual const char *get_address(void) const;
sam_grove 13:0186e9e35a24 50 virtual uint16_t get_port(void) const;
sam_grove 13:0186e9e35a24 51 virtual int32_t bind(uint16_t port) const;
sam_grove 13:0186e9e35a24 52 virtual int32_t listen(void) const;
sam_grove 13:0186e9e35a24 53 virtual int32_t accept(const Endpoint &endpoint) const;
sam_grove 13:0186e9e35a24 54 virtual int32_t connect(const Endpoint &endpoint) const;
sam_grove 13:0186e9e35a24 55 virtual int32_t send(const void *data, uint32_t amount, uint32_t timeout_ms = 15000) const;
sam_grove 13:0186e9e35a24 56 virtual uint32_t recv(const void *data, uint32_t amount, uint32_t timeout_ms = 15000) const;
sam_grove 13:0186e9e35a24 57 virtual int32_t close(const Endpoint &endpoint) const;
sam_grove 13:0186e9e35a24 58
sam_grove 13:0186e9e35a24 59 Endpoint *endpoint;
sam_grove 11:288c15b80a26 60 };
sam_grove 11:288c15b80a26 61
sam_grove 11:288c15b80a26 62 #endif