Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FP MQTTPacket
Dependents: IDW01M1_Cloud_IBM IDW01M1-MQTT IDW01M1-MQTT-1 IDW01M1-MQTT3 ... more
Fork of MQTT by
IPStack/EthernetInterfaceIPStack.h
- Committer:
- sam_grove
- Date:
- 2014-05-09
- Revision:
- 25:d13a6c558164
File content as of revision 25:d13a6c558164:
#ifndef ETHERNETINTERFACEIPSTACK_H
#define ETHERNETINTERFACEIPSTACK_H
#include "EthernetInterface.h"
class IPStack
{
public:
IPStack()
{
eth.init(); // Use DHCP
eth.connect();
mysock.set_blocking(false, 1000); // 1 second Timeout
}
int connect(char* hostname, int port)
{
return mysock.connect(hostname, port);
}
int read(char* buffer, int len, int timeout)
{
mysock.set_blocking(false, timeout);
return mysock.receive(buffer, len);
}
int write(char* buffer, int len, int timeout)
{
mysock.set_blocking(false, timeout);
return mysock.send(buffer, len);
}
int disconnect()
{
return mysock.close();
}
private:
EthernetInterface eth;
TCPSocketConnection mysock;
};
class Countdown
{
public:
Countdown()
{
t = Timer();
}
Countdown(int ms)
{
t = Timer();
countdown_ms(ms);
}
bool expired()
{
return t.read_ms() >= interval_end_ms;
}
void countdown_ms(int ms)
{
t.stop();
interval_end_ms = ms;
t.reset();
t.start();
}
void countdown(int seconds)
{
countdown_ms(seconds * 1000);
}
int left_ms()
{
return interval_end_ms - t.read_ms();
}
private:
Timer t;
int interval_end_ms;
};
#endif
