PHS module SMA-01 library. see: https://developer.mbed.org/users/phsfan/notebook/abitusbmodem/

Dependencies:   Socket lwip-sys lwip

Dependents:   AbitUSBModem_HTTPTest AbitUSBModem_MQTTTest AbitUSBModem_WebsocketTest AbitUSBModem_SMSTest

Fork of VodafoneUSBModem by mbed official

/media/uploads/phsfan/sma01_003.png

Revision:
97:7d9cc95e2ea7
Parent:
96:b50f5f795684
Child:
99:514e67a69ad6
--- a/AbitUSBModem.cpp	Wed Feb 18 09:40:07 2015 +0000
+++ b/AbitUSBModem.cpp	Wed Feb 18 14:11:24 2015 +0000
@@ -1,5 +1,6 @@
-/* AbitUSBModem.cpp
- * modifyed by Suga
+/* AbitUSBModem.cpp */
+/* Modified by 2015 phsfan
+ *  for ABIT SMA-01
  */
 /* VodafoneUSBModem.cpp */
 /* Copyright (C) 2012 mbed.org, MIT License
@@ -36,9 +37,11 @@
    m_dongle(),                         // Construct WANDongle: USB interface with two serial channels to the modem (USBSerialStream objects)
    m_pppStream((IUSBHostSerial&)m_dongle), // PPP connections are managed via another serial channel.
    m_at(&m_pppStream),                  // Construct ATCommandsInterface with the AT serial channel
+   m_sms(&m_at),                       // Construct SMSInterface with the ATCommandsInterface
    m_ppp(&m_pppStream, &m_pppStream, &m_at, false), // Construct PPPIPInterface with the PPP serial channel
    m_dongleConnected(false),           // Dongle is initially not ready for anything
    m_ipInit(false),                    // PPIPInterface connection is initially down
+   m_smsInit(false),                   // SMSInterface starts un-initialised
    m_atOpen(false)                    // ATCommandsInterface starts in a closed state
 {
 }
@@ -151,6 +154,61 @@
   return OK;
 }
 
+
+int AbitUSBModem::sendSM(const char* number, const char* message)
+{
+  int ret = init();
+  if(ret)
+  {
+    return ret;
+  }
+
+  if(!m_smsInit)
+  {
+    ret = m_sms.init();
+    if(ret)
+    {
+      return ret;
+    }
+    m_smsInit = true;
+  }
+
+  ret = m_sms.send(number, message);
+  if(ret)
+  {
+    return ret;
+  }
+
+  return OK;
+}
+
+int AbitUSBModem::getSM(char* number, char* message, size_t maxLength)
+{
+  int ret = init();
+  if(ret)
+  {
+    return ret;
+  }
+
+  if(!m_smsInit)
+  {
+    ret = m_sms.init();
+    if(ret)
+    {
+      return ret;
+    }
+    m_smsInit = true;
+  }
+
+  ret = m_sms.get(number, message, maxLength);
+  if(ret)
+  {
+    return ret;
+  }
+
+  return OK;
+}
+
 char* AbitUSBModem::getIPAddress()
 {
     return m_ppp.getIPAddress();