M2XStreamClient fork with a workaround in M2XStreamClient.cpp for the MTS_Wifi_Connect_M2X example.
Dependents: STM32_MTS_Wifi_Connect_M2X M2X_STM32_MTS_Temp MTS_WiFi_Connect_M2X_Example
Fork of M2XStreamClient by
Client.cpp
- Committer:
- joe_tijerina
- Date:
- 2014-08-26
- Revision:
- 2:6fbc104d1321
- Parent:
- 0:f479e4f4db0e
File content as of revision 2:6fbc104d1321:
#include "Client.h" #include "mbed.h" #include <stdint.h> Client::Client() : _len(0), _sock() { } Client::~Client() { } int Client::connect(const char *host, uint16_t port) { return _sock.connect(host, port) == 0; } size_t Client::write(uint8_t b) { return write(&b, 1); } size_t Client::write(const uint8_t *buf, size_t size) { _sock.set_blocking(false, 15000); // NOTE: we know it's dangerous to cast from (const uint8_t *) to (char *), // but we are trying to maintain a stable interface between the Arduino // one and the mbed one. What's more, while TCPSocketConnection has no // intention of modifying the data here, it requires us to send a (char *) // typed data. So we belive it's safe to do the cast here. return _sock.send_all(const_cast<char*>((const char*) buf), size); } int Client::available() { if (_len > 0) { return 1; } int ret = read(_buf, 1); if (ret <= 0) { return 0; } _len = ret; return 1; } int Client::read() { if (_len > 0) { _len = 0; return _buf[0]; } return -1; } int Client::read(uint8_t *buf, size_t size) { return _sock.receive_all((char*) buf, size); } void Client::flush() { // does nothing, TCP stack takes care of this } void Client::stop() { _sock.close(); } uint8_t Client::connected() { return _sock.is_connected(); }