OneNet_IoT_demo for ASC platform

Dependencies:   Common_lib ESP8266 EdpKit_lib cJSON_lib driver_mbed_HP20x driver_mbed_TH02 wifi_example

Fork of mbed-os-example-esp8266 by ESP8266

Revision:
2:1dbc3aa8ae3a
Parent:
1:b4a718e62e0b
--- a/esp8266-driver/ESP8266Interface.cpp	Thu Jan 12 22:05:15 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/* ESP8266 implementation of NetworkInterfaceAPI
- * Copyright (c) 2015 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <string.h>
-#include "ESP8266Interface.h"
-
-// Various timeouts for different ESP8266 operations
-#define ESP8266_CONNECT_TIMEOUT 15000
-#define ESP8266_SEND_TIMEOUT    500
-#define ESP8266_RECV_TIMEOUT    0
-#define ESP8266_MISC_TIMEOUT    500
-
-// ESP8266Interface implementation
-ESP8266Interface::ESP8266Interface(PinName tx, PinName rx, bool debug)
-    : _esp(tx, rx, debug)
-{
-    memset(_ids, 0, sizeof(_ids));
-    memset(_cbs, 0, sizeof(_cbs));
-
-    _esp.attach(this, &ESP8266Interface::event);
-}
-
-int ESP8266Interface::connect(const char *ssid, const char *pass, nsapi_security_t security,
-                                        uint8_t channel)
-{
-    if (channel != 0) {
-        return NSAPI_ERROR_UNSUPPORTED;
-    }
-
-    set_credentials(ssid, pass, security);
-    return connect();
-}
-
-int ESP8266Interface::connect()
-{
-    _esp.setTimeout(ESP8266_CONNECT_TIMEOUT);
-
-    if (!_esp.startup(3)) {
-        return NSAPI_ERROR_DEVICE_ERROR;
-    }
-
-    if (!_esp.dhcp(true, 1)) {
-        return NSAPI_ERROR_DHCP_FAILURE;
-    }
-
-    if (!_esp.connect(ap_ssid, ap_pass)) {
-        return NSAPI_ERROR_NO_CONNECTION;
-    }
-
-    if (!_esp.getIPAddress()) {
-        return NSAPI_ERROR_DHCP_FAILURE;
-    }
-
-    return NSAPI_ERROR_OK;
-}
-
-int ESP8266Interface::set_credentials(const char *ssid, const char *pass, nsapi_security_t security)
-{
-    memset(ap_ssid, 0, sizeof(ap_ssid));
-    strncpy(ap_ssid, ssid, sizeof(ap_ssid));
-
-    memset(ap_pass, 0, sizeof(ap_pass));
-    strncpy(ap_pass, pass, sizeof(ap_pass));
-
-    ap_sec = security;
-
-    return 0;
-}
-
-int ESP8266Interface::set_channel(uint8_t channel)
-{
-    return NSAPI_ERROR_UNSUPPORTED;
-}
-
-
-int ESP8266Interface::disconnect()
-{
-    _esp.setTimeout(ESP8266_MISC_TIMEOUT);
-
-    if (!_esp.disconnect()) {
-        return NSAPI_ERROR_DEVICE_ERROR;
-    }
-
-    return NSAPI_ERROR_OK;
-}
-
-const char *ESP8266Interface::get_ip_address()
-{
-    return _esp.getIPAddress();
-}
-
-const char *ESP8266Interface::get_mac_address()
-{
-    return _esp.getMACAddress();
-}
-
-const char *ESP8266Interface::get_gateway()
-{
-    return _esp.getGateway();
-}
-
-const char *ESP8266Interface::get_netmask()
-{
-    return _esp.getNetmask();
-}
-
-int8_t ESP8266Interface::get_rssi()
-{
-    return _esp.getRSSI();
-}
-
-int ESP8266Interface::scan(WiFiAccessPoint *res, unsigned count)
-{
-    return _esp.scan(res, count);
-}
-
-struct esp8266_socket {
-    int id;
-    nsapi_protocol_t proto;
-    bool connected;
-    SocketAddress addr;
-};
-
-int ESP8266Interface::socket_open(void **handle, nsapi_protocol_t proto)
-{
-    // Look for an unused socket
-    int id = -1;
- 
-    for (int i = 0; i < ESP8266_SOCKET_COUNT; i++) {
-        if (!_ids[i]) {
-            id = i;
-            _ids[i] = true;
-            break;
-        }
-    }
- 
-    if (id == -1) {
-        return NSAPI_ERROR_NO_SOCKET;
-    }
-    
-    struct esp8266_socket *socket = new struct esp8266_socket;
-    if (!socket) {
-        return NSAPI_ERROR_NO_SOCKET;
-    }
-    
-    socket->id = id;
-    socket->proto = proto;
-    socket->connected = false;
-    *handle = socket;
-    return 0;
-}
-
-int ESP8266Interface::socket_close(void *handle)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;
-    int err = 0;
-    _esp.setTimeout(ESP8266_MISC_TIMEOUT);
- 
-    if (!_esp.close(socket->id)) {
-        err = NSAPI_ERROR_DEVICE_ERROR;
-    }
-
-    _ids[socket->id] = false;
-    delete socket;
-    return err;
-}
-
-int ESP8266Interface::socket_bind(void *handle, const SocketAddress &address)
-{
-    return NSAPI_ERROR_UNSUPPORTED;
-}
-
-int ESP8266Interface::socket_listen(void *handle, int backlog)
-{
-    return NSAPI_ERROR_UNSUPPORTED;
-}
-
-int ESP8266Interface::socket_connect(void *handle, const SocketAddress &addr)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;
-    _esp.setTimeout(ESP8266_MISC_TIMEOUT);
-
-    const char *proto = (socket->proto == NSAPI_UDP) ? "UDP" : "TCP";
-    if (!_esp.open(proto, socket->id, addr.get_ip_address(), addr.get_port())) {
-        return NSAPI_ERROR_DEVICE_ERROR;
-    }
-    
-    socket->connected = true;
-    return 0;
-}
-    
-int ESP8266Interface::socket_accept(void *server, void **socket, SocketAddress *addr)
-{
-    return NSAPI_ERROR_UNSUPPORTED;
-}
-
-int ESP8266Interface::socket_send(void *handle, const void *data, unsigned size)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;
-    _esp.setTimeout(ESP8266_SEND_TIMEOUT);
- 
-    if (!_esp.send(socket->id, data, size)) {
-        return NSAPI_ERROR_DEVICE_ERROR;
-    }
- 
-    return size;
-}
-
-int ESP8266Interface::socket_recv(void *handle, void *data, unsigned size)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;
-    _esp.setTimeout(ESP8266_RECV_TIMEOUT);
- 
-    int32_t recv = _esp.recv(socket->id, data, size);
-    if (recv < 0) {
-        return NSAPI_ERROR_WOULD_BLOCK;
-    }
- 
-    return recv;
-}
-
-int ESP8266Interface::socket_sendto(void *handle, const SocketAddress &addr, const void *data, unsigned size)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;
-
-    if (socket->connected && socket->addr != addr) {
-        _esp.setTimeout(ESP8266_MISC_TIMEOUT);
-        if (!_esp.close(socket->id)) {
-            return NSAPI_ERROR_DEVICE_ERROR;
-        }
-        socket->connected = false;
-    }
-
-    if (!socket->connected) {
-        int err = socket_connect(socket, addr);
-        if (err < 0) {
-            return err;
-        }
-        socket->addr = addr;
-    }
-    
-    return socket_send(socket, data, size);
-}
-
-int ESP8266Interface::socket_recvfrom(void *handle, SocketAddress *addr, void *data, unsigned size)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;
-    int ret = socket_recv(socket, data, size);
-    if (ret >= 0 && addr) {
-        *addr = socket->addr;
-    }
-
-    return ret;
-}
-
-void ESP8266Interface::socket_attach(void *handle, void (*callback)(void *), void *data)
-{
-    struct esp8266_socket *socket = (struct esp8266_socket *)handle;    
-    _cbs[socket->id].callback = callback;
-    _cbs[socket->id].data = data;
-}
-
-void ESP8266Interface::event() {
-    for (int i = 0; i < ESP8266_SOCKET_COUNT; i++) {
-        if (_cbs[i].callback) {
-            _cbs[i].callback(_cbs[i].data);
-        }
-    }
-}