Vodafone K3770/K3772-Z modems driver & networking library

Dependencies:   Socket USBHostWANDongle lwip-sys lwip

Dependents:   VodafoneUSBModemHTTPClientTest VodafoneUSBModemNTPClientTest VodafoneUSBModemSMSTest VodafoneUSBModemUSSDTest ... more

Fork of VodafoneUSBModem_bleedingedge by Donatien Garnier

This is the driver for the Vodafone K3700 & K3772-Z Dongles:

K3770

More details and instructions can be found here.

Files at this revision

API Documentation at this revision

Comitter:
nherriot
Date:
Thu Sep 20 08:02:30 2012 +0000
Parent:
36:45c3b5cb0234
Child:
40:9c6c87297a37
Commit message:
small correction to the sms get method. It now only removes items from the sms item array if it can remove them from the modem sms inbox. Also added some debug.

Changed in this revision

sms/SMSInterface.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/sms/SMSInterface.cpp	Wed Sep 19 09:36:28 2012 +0000
+++ b/sms/SMSInterface.cpp	Thu Sep 20 08:02:30 2012 +0000
@@ -17,7 +17,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#define __DEBUG__ 0
+#define __DEBUG__ 4
 #ifndef __MODULE__
 #define __MODULE__ "SMSInterface.cpp"
 #endif
@@ -119,7 +119,9 @@
   m_inboxMtx.lock();
   if(m_msgRefListCount == 0 && m_needsUpdate)
   {
+    DBG("Message list count is 0 and needs updating. Running updateInbox.");
     ret = updateInbox();
+    
     if (ret)
     {
       m_inboxMtx.unlock();
@@ -130,6 +132,7 @@
   if(m_msgRefListCount == 0)
   {
     m_inboxMtx.unlock();
+    DBG("Message list count is 0, I think it's empty and returning.");
     return NET_EMPTY; //No message to read
   }
 
@@ -154,6 +157,7 @@
 
   if (m_state != SMS_CMD_PROCESSED)
   {
+    WARN(" State variable is not 'SMS_CMD_PROCESSED' - returning 'NET_EMPTY'");
     m_state = SMS_IDLE;
     m_inboxMtx.unlock();
     return NET_EMPTY;
@@ -161,7 +165,7 @@
 
   m_state = SMS_IDLE;
 
-  DBG("Deleting message");
+  DBG("Deleting message from index number: d%", m_msgRefList[0] );
   //Delete message from outbox
   std::sprintf(cmd, "AT+CMGD=%d", m_msgRefList[0]);
   ret = m_pIf->executeSimple(cmd, NULL, DEFAULT_TIMEOUT);
@@ -170,11 +174,12 @@
     m_inboxMtx.unlock();
     WARN("Could not delete message");
   }
-
+  else
+  {
   //Remove message from list
   std::memmove(m_msgRefList, m_msgRefList+1, m_msgRefListCount-1);
   m_msgRefListCount--;
-
+  }  
   m_inboxMtx.unlock();
 
   return OK;