cc3000 hostdriver with the mbed socket interface

Dependents:   cc3000_hello_world_demo cc3000_simple_socket_demo cc3000_ntp_demo cc3000_ping_demo ... more

Committer:
SolderSplashLabs
Date:
Thu Oct 03 21:00:00 2013 +0000
Revision:
23:fed7f64dd520
Parent:
0:615c697c33b0
Added separate debug messages and VT100 formatting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SolderSplashLabs 23:fed7f64dd520 1 /*****************************************************************************
SolderSplashLabs 23:fed7f64dd520 2 *
SolderSplashLabs 23:fed7f64dd520 3 * C++ interface/implementation created by Martin Kojtal (0xc0170). Thanks to
SolderSplashLabs 23:fed7f64dd520 4 * Jim Carver and Frank Vannieuwkerke for their inital cc3000 mbed port and
SolderSplashLabs 23:fed7f64dd520 5 * provided help.
SolderSplashLabs 23:fed7f64dd520 6 *
SolderSplashLabs 23:fed7f64dd520 7 * This version of "host driver" uses CC3000 Host Driver Implementation. Thus
SolderSplashLabs 23:fed7f64dd520 8 * read the following copyright:
SolderSplashLabs 23:fed7f64dd520 9 *
SolderSplashLabs 23:fed7f64dd520 10 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
SolderSplashLabs 23:fed7f64dd520 11 *
SolderSplashLabs 23:fed7f64dd520 12 * Redistribution and use in source and binary forms, with or without
SolderSplashLabs 23:fed7f64dd520 13 * modification, are permitted provided that the following conditions
SolderSplashLabs 23:fed7f64dd520 14 * are met:
SolderSplashLabs 23:fed7f64dd520 15 *
SolderSplashLabs 23:fed7f64dd520 16 * Redistributions of source code must retain the above copyright
SolderSplashLabs 23:fed7f64dd520 17 * notice, this list of conditions and the following disclaimer.
SolderSplashLabs 23:fed7f64dd520 18 *
SolderSplashLabs 23:fed7f64dd520 19 * Redistributions in binary form must reproduce the above copyright
SolderSplashLabs 23:fed7f64dd520 20 * notice, this list of conditions and the following disclaimer in the
SolderSplashLabs 23:fed7f64dd520 21 * documentation and/or other materials provided with the
SolderSplashLabs 23:fed7f64dd520 22 * distribution.
SolderSplashLabs 23:fed7f64dd520 23 *
SolderSplashLabs 23:fed7f64dd520 24 * Neither the name of Texas Instruments Incorporated nor the names of
SolderSplashLabs 23:fed7f64dd520 25 * its contributors may be used to endorse or promote products derived
SolderSplashLabs 23:fed7f64dd520 26 * from this software without specific prior written permission.
SolderSplashLabs 23:fed7f64dd520 27 *
SolderSplashLabs 23:fed7f64dd520 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
SolderSplashLabs 23:fed7f64dd520 29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
SolderSplashLabs 23:fed7f64dd520 30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
SolderSplashLabs 23:fed7f64dd520 31 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
SolderSplashLabs 23:fed7f64dd520 32 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SolderSplashLabs 23:fed7f64dd520 33 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
SolderSplashLabs 23:fed7f64dd520 34 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
SolderSplashLabs 23:fed7f64dd520 35 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
SolderSplashLabs 23:fed7f64dd520 36 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SolderSplashLabs 23:fed7f64dd520 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
SolderSplashLabs 23:fed7f64dd520 38 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SolderSplashLabs 23:fed7f64dd520 39 *
SolderSplashLabs 23:fed7f64dd520 40 *****************************************************************************/
SolderSplashLabs 23:fed7f64dd520 41 #include "cc3000.h"
SolderSplashLabs 23:fed7f64dd520 42
SolderSplashLabs 23:fed7f64dd520 43 namespace mbed_cc3000 {
SolderSplashLabs 23:fed7f64dd520 44
SolderSplashLabs 23:fed7f64dd520 45
SolderSplashLabs 23:fed7f64dd520 46 cc3000_client::cc3000_client(cc3000 &cc3000_ref) : _cc3000(cc3000_ref) {
SolderSplashLabs 23:fed7f64dd520 47 _current_socket = -1;
SolderSplashLabs 23:fed7f64dd520 48 }
SolderSplashLabs 23:fed7f64dd520 49
SolderSplashLabs 23:fed7f64dd520 50 cc3000_client::cc3000_client(cc3000 &cc3000_ref, int16_t socket) : _cc3000(cc3000_ref) {
SolderSplashLabs 23:fed7f64dd520 51 _current_socket = socket;
SolderSplashLabs 23:fed7f64dd520 52 }
SolderSplashLabs 23:fed7f64dd520 53
SolderSplashLabs 23:fed7f64dd520 54 bool cc3000_client::connected(void) {
SolderSplashLabs 23:fed7f64dd520 55 if (_current_socket < 0) {
SolderSplashLabs 23:fed7f64dd520 56 return false;
SolderSplashLabs 23:fed7f64dd520 57 }
SolderSplashLabs 23:fed7f64dd520 58
SolderSplashLabs 23:fed7f64dd520 59 return true;
SolderSplashLabs 23:fed7f64dd520 60 }
SolderSplashLabs 23:fed7f64dd520 61
SolderSplashLabs 23:fed7f64dd520 62 int16_t cc3000_client::write(const void *buffer, uint16_t length, uint32_t flags = 0) {
SolderSplashLabs 23:fed7f64dd520 63 return _cc3000._socket.send(_current_socket, buffer, length, flags);
SolderSplashLabs 23:fed7f64dd520 64 }
SolderSplashLabs 23:fed7f64dd520 65
SolderSplashLabs 23:fed7f64dd520 66 int16_t cc3000_client::read(void *buffer, uint16_t length, uint32_t flags)
SolderSplashLabs 23:fed7f64dd520 67 {
SolderSplashLabs 23:fed7f64dd520 68 return _cc3000._socket.recv(_current_socket, buffer, length, flags);
SolderSplashLabs 23:fed7f64dd520 69
SolderSplashLabs 23:fed7f64dd520 70 }
SolderSplashLabs 23:fed7f64dd520 71
SolderSplashLabs 23:fed7f64dd520 72 } /* end of mbed_cc3000 namespace */