GainSpan Wi-Fi library see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Dependents:   GSwifi_httpd GSwifi_websocket GSwifi_tcpclient GSwifi_tcpserver ... more

Fork of GSwifi by gs fan

GainSpan Wi-Fi library

The GS1011 is an ultra low power 802.11b wireless module from GainSpan.

see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

/media/uploads/gsfan/gs_im_002.jpg /media/uploads/gsfan/gs1011m_2.jpg

ゲインスパン Wi-Fi モジュール ライブラリ

ゲインスパン社の低電力 Wi-Fiモジュール(無線LAN) GS1011 シリーズ用のライブラリです。

解説: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Revision:
32:e19538c1f13d
Parent:
29:1c4419512941
Child:
35:515ec79792d3
--- a/GSwifi_smtp.cpp	Tue Feb 26 06:05:11 2013 +0000
+++ b/GSwifi_smtp.cpp	Tue Feb 26 07:39:58 2013 +0000
@@ -51,6 +51,7 @@
     send(cid, "EHLO gainspan\r\n", 15);
     wait_ms(100);
     if (wait_smtp(cid ,250)) goto exit;
+    wait_smtp(cid ,0);
 
     if (user && pwd) {
         // smtp auth
@@ -79,12 +80,22 @@
     if (wait_smtp(cid ,354)) goto quit;
  
     // mail data
+    send(cid, "From: ", 6);
+    send(cid, from, strlen(from));
+    send(cid, "\r\n", 2);
+    send(cid, "To: ", 9);
+    send(cid, to, strlen(to));
+    send(cid, "\r\n", 2);
+    send(cid, "Subject: ", 9);
+    send(cid, subject, strlen(subject));
+    send(cid, "\r\n\r\n", 4);
+
     send(cid, mesg, strlen(mesg));
     send(cid, "\r\n.\r\n", 5);
     if (wait_smtp(cid ,250)) goto quit;
     ret = 0;
  
-    LOG("From: %s To: %s %d\r\n", from, to, strlen(mesg));
+    LOG("Mail, from: %s, to: %s %d\r\n", from, to, strlen(mesg));
 
 quit:
     send(cid, "QUIT\r\n", 6);
@@ -100,7 +111,22 @@
     int i, n, len = 0;
     char buf[200], data[100];
 
+    if (code == 0) {
+      // dummy read
+      timeout.start();
+      while (timeout.read_ms() < GS_TIMEOUT) {
+        wait_ms(10);
+        if (_gs_sock[cid].data->isEmpty()) break;
+        poll();
+        n = recv(cid, buf, sizeof(buf));
+        if (n <= 0) break;
+      }
+      timeout.stop();
+      return 0;
+    }
+
     // wait responce
+    len = 0;
     timeout.start();
     while (timeout.read_ms() < SMTP_TIMEOUT) {
         wait_ms(10);