Test of USSD commands transmission over the Vodafone network with the Vodafone library

Dependencies:   VodafoneUSBModem mbed-rtos mbed

Fork of VodafoneK3770USSDTestBeta by Donatien Garnier

Revision:
0:5c60462d9282
Child:
1:e5d64ece3a8c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu May 31 16:12:08 2012 +0000
@@ -0,0 +1,94 @@
+/* net_ussd_test.cpp */
+/*
+Copyright (C) 2012 ARM Limited.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#define __DEBUG__ 4 //Maximum verbosity
+#ifndef __MODULE__
+#define __MODULE__ "net_ussd_test.cpp"
+#endif
+
+#define USSD_COMMAND "*#134#"
+
+#include "core/fwk.h"
+#include "mbed.h"
+
+#include "rtos.h"
+
+#include "if/VodafoneK3770.h"
+
+extern "C" void HardFault_Handler() {
+    error("Hard Fault!\n");
+}
+
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+
+void test(void const*) {
+  VodafoneK3770 threeg;
+
+  DBG("Hello!");
+    
+  char result[32];
+
+  DBG("Sending %s on USSD channel", USSD_COMMAND);
+
+  int ret = threeg.sendUSSD(USSD_COMMAND, result, 32);
+  if(ret != OK)
+  {
+    ERR("Send USSD command returned %d", ret);
+  }
+
+  DBG("Result of command: %s", result);
+
+  while(true)
+  {
+    Thread::wait(1000);
+  }
+
+}
+
+void keepAlive(void const*) {
+   while(1)
+   {
+     led1=!led1;
+     Thread::wait(500);
+   }
+}
+
+void tick()
+{
+  led4=!led4;
+}
+
+int main() {
+  Ticker t;
+  t.attach(tick,1);
+  DBG_INIT();
+
+  Thread testTask(test, NULL, osPriorityNormal, 1024*4);
+  keepAlive(NULL);
+
+    
+    return 0;
+}