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.
Fork of XBee by
Diff: XBeeWiFi.h
- Revision:
- 3:8573b122fa84
- Parent:
- 2:6efb3541af61
- Child:
- 4:f6d73acc1f75
--- a/XBeeWiFi.h Fri Jul 29 16:22:15 2011 +0000
+++ b/XBeeWiFi.h Thu Mar 08 17:41:29 2012 +0000
@@ -5,7 +5,7 @@
*/
/** @file
- * @brief Weather Station
+ * @brief XBee Wi-Fi library for mbed
*/
#ifndef XBeeWiFi_h
@@ -16,8 +16,8 @@
#include "XBee.h"
#include <inttypes.h>
-#undef USE_WIFICLASS
-#undef USE_WIFIDNS
+#define USE_WIFICLASS
+#define USE_WIFIDNS
// the non-variable length of the frame data (not including frame id or api id or variable data size (e.g. payload, at command set value)
#define IPv4_TRANSMIT_REQUEST_API_LENGTH 10
@@ -53,8 +53,13 @@
/// modem status
#define JOINED_AP 0
+#define INITIALIZATION 0x01
+#define SSID_NOT_FOUND 0x22
#define SSID_NOT_CONFIGURED 0x23
-#define JOINING_AP 0xff
+#define JOIN_FAILED 0x27
+#define WAITING_IPADDRESS 0x41
+#define WAITING_SOCKETS 0x42
+#define SCANNING_SSID 0xff
/// dns
#define DNS_QUERY_A 1
@@ -66,6 +71,10 @@
#define DNS_QUERY_ANY 255
#define DNS_CLASS_IN 1
+#define DNS_PORT 53
+#define DNS_SRC_PORT 1234
+#define DNS_TIMEOUT 5 // x 3s
+
struct DNSHeader {
uint16_t id;
uint16_t flags;
@@ -95,21 +104,24 @@
*/
class XBeeWiFi : public XBee {
public:
- XBeeWiFi (PinName p_tx, PinName p_rx);
+ XBeeWiFi (PinName p_tx, PinName p_rx, PinName p_cts);
int setup (int security, const char *ssid, const char *pin);
int setup (const char *ssid);
int reset ();
int setAddress ();
int setAddress (IpAddr &ipaddr, IpAddr &netmask, IpAddr &gateway, IpAddr &nameserver);
+ int getAddress (IpAddr &ipaddr, IpAddr &netmask, IpAddr &gateway, IpAddr &nameserver);
int setTimeout (int timeout);
int getStatus ();
+ int getWiResponse (int apiId, int frameid = 0, int timeout = 1500);
#ifdef USE_WIFIDNS
+ int setNameserver (IpAddr &nameserver);
int getHostByName (const char* name, IpAddr &addr);
#endif
protected:
- int getWiResponse (int apiId, int timeout = 1500);
+ int getWiAddr (IpAddr &ipaddr);
#ifdef USE_WIFIDNS
int createDnsRequest (const char* name, char *buf);
int getDnsResponse (const uint8_t *buf, int len, IpAddr &addr);
