Integrating the ublox LISA C200 modem

Fork of SprintUSBModemHTTPClientTest by Donatien Garnier

main.cpp

Committer:
sam_grove
Date:
2013-10-01
Revision:
14:cd53f77f8afe
Parent:
13:c920eb6774de
Child:
19:f1d893c651e5

File content as of revision 14:cd53f77f8afe:

#include "mbed.h"
#include "SprintUSBModem.h"
#include "HTTPClient.h"
#include "Websocket.h"

char const *msg = "need another reason to merge\n";
//char const *URL = "http://mbed.org/";
//char const *URL = "https://www.google.com/";
char const *URL = "http://httpbin.org/ip";

void test(void const*) 
{
    SprintUSBModem modem(p18, true, 1);
    HTTPClient http;
    char str[512];
    
    Thread::wait(5000);
    printf("Switching power on\r\n");
    
    modem.power(true);
    
    int ret = modem.connect();
    if(ret)
    {
      printf("Could not connect\r\n");
      return;
    }
    // See the output on http://sockets.mbed.org/sg_test/viewer
    Websocket ws("ws://sockets.mbed.org:443/ws/sg_test/rw");
    ws.connect();
    char json_str[100];
    for(int i=0; i<100; ++i)
    {
        // create json string with acc/tmp data
        sprintf(json_str, "{\"id\":\"test\",\"ax\":%d,\"ay\":%d,\"az\":%d, \"tmp\":%d}", i, i, i, i);
        // send str
        ws.send(json_str);    
        wait(1.0f);
        memset(json_str, 0, 100);
        if (ws.read(json_str))
        {
           printf("rcv: %s\r\n", json_str);
        }
    }
    
    
    //GET data
    printf("Trying to fetch page...\r\n");
    ret = http.get(URL, str, 128);
    if (!ret)
    {
      printf("Page fetched successfully - read %d characters\r\n", strlen(str));
      printf("Result: %s\r\n", str);
    }
    else
    {
      printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
    }
    
    //POST data
    HTTPMap map;
    HTTPText text(str, 512);
    map.put("Hello", "World");
    map.put("test", "1234");
    printf("Trying to post data...\r\n");
    ret = http.post("http://httpbin.org/post", map, &text);
    if (!ret)
    {
      printf("Executed POST successfully - read %d characters\r\n", strlen(str));
      printf("Result: %s\r\n", str);
    }
    else
    {
      printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
    }
    
    printf("Disconnecting\r\n");
    
    modem.disconnect(); 
    
    printf("Disconnected\r\n");
    
    modem.power(false); 
    
    printf("Powered off\r\n");

    while(1) {
    }
}


int main()
{
  DBG_INIT();
  DBG_SET_SPEED(115200);
  DBG_SET_NEWLINE("\r\n");
  Thread testTask(test, NULL, osPriorityNormal, 1024 * 5);
  DigitalOut led(LED1);
  while(1)
  {
    led=!led;
    Thread::wait(1000);  
  }

  return 0;
}