Error with receive value from M2X, sharing it for debug purpose

Dependencies:   SocketModem jsonlite mbed

Fork of MTS_M2x_Example by Multi-Hackers

Committer:
sam_grove
Date:
Sat Jan 04 20:43:00 2014 +0000
Revision:
3:d24e8bec5610
Parent:
2:76e0d5968991
Child:
6:0dbcf434679b
User needs to supply m2x settings

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfiore 0:032beb056844 1 #include "mbed.h"
mfiore 0:032beb056844 2 #include "M2XStreamClient.h"
mfiore 0:032beb056844 3 #include "include_me.h"
mfiore 0:032beb056844 4
mfiore 0:032beb056844 5 using namespace mts;
mfiore 0:032beb056844 6
sam_grove 3:d24e8bec5610 7 const char key[] = ""; // enter your m2x user account master key
sam_grove 3:d24e8bec5610 8 const char feed[] = ""; // enter your blueprint feed id
sam_grove 3:d24e8bec5610 9 const char stream[] = "amb-temp"; // Create a stream name
mfiore 0:032beb056844 10
mfiore 1:b12a128aae0e 11 // set to 1 for cellular shield board
mfiore 1:b12a128aae0e 12 // set to 0 for wifi shield board
sam_grove 3:d24e8bec5610 13 #define CELL_SHIELD 1
sam_grove 2:76e0d5968991 14
sam_grove 3:d24e8bec5610 15 // ssid and phrase for wifi
sam_grove 2:76e0d5968991 16 std::string ssid = "belkin54g";
sam_grove 3:d24e8bec5610 17 std::string phrase = "hackathon";
mfiore 1:b12a128aae0e 18
sam_grove 3:d24e8bec5610 19 int main()
sam_grove 3:d24e8bec5610 20 {
mfiore 1:b12a128aae0e 21 #if CELL_SHIELD
mfiore 1:b12a128aae0e 22 for (int i = 30; i >= 0; i = i - 2) {
mfiore 1:b12a128aae0e 23 wait(2);
mfiore 1:b12a128aae0e 24 printf("Waiting %d seconds...\n\r", i);
mfiore 1:b12a128aae0e 25 }
sam_grove 3:d24e8bec5610 26
mfiore 0:032beb056844 27 MTSSerialFlowControl* serial = new MTSSerialFlowControl(PTD3, PTD2, PTA12, PTC8);
mfiore 0:032beb056844 28 serial->baud(115200);
mfiore 1:b12a128aae0e 29 Transport::setTransport(Transport::CELLULAR);
mfiore 0:032beb056844 30 Cellular* cell = Cellular::getInstance();
sam_grove 2:76e0d5968991 31 cell->init(serial, PTA4, PTC9); //DCD and DTR pins for KL46Z
mfiore 0:032beb056844 32
mfiore 0:032beb056844 33 int max_tries = 5;
mfiore 0:032beb056844 34 int i;
mfiore 0:032beb056844 35 std::string apn = "wap.cingular";
sam_grove 3:d24e8bec5610 36
mfiore 0:032beb056844 37 i = 0;
mfiore 0:032beb056844 38 while (i++ < max_tries) {
mfiore 0:032beb056844 39 if (cell->getRegistration() == Cellular::REGISTERED) {
mfiore 0:032beb056844 40 printf("registered with tower\n\r");
mfiore 0:032beb056844 41 break;
mfiore 0:032beb056844 42 } else if (i >= max_tries) {
mfiore 0:032beb056844 43 printf("failed to register with tower\n\r");
mfiore 0:032beb056844 44 } else {
mfiore 0:032beb056844 45 wait(3);
mfiore 0:032beb056844 46 }
mfiore 0:032beb056844 47 }
sam_grove 3:d24e8bec5610 48
mfiore 1:b12a128aae0e 49 printf("signal strength: %d\n\r", cell->getSignalStrength());
mfiore 1:b12a128aae0e 50
mfiore 0:032beb056844 51 i = 0;
mfiore 1:b12a128aae0e 52 printf("setting APN to %s\n\r", apn.c_str());
mfiore 0:032beb056844 53 while (i++ < max_tries) {
mfiore 0:032beb056844 54 if (cell->setApn(apn) == SUCCESS) {
mfiore 0:032beb056844 55 printf("successfully set APN\n\r");
mfiore 0:032beb056844 56 break;
mfiore 0:032beb056844 57 } else if (i >= max_tries) {
mfiore 0:032beb056844 58 printf("failed to set APN\n\r");
mfiore 0:032beb056844 59 } else {
mfiore 0:032beb056844 60 wait(1);
mfiore 0:032beb056844 61 }
mfiore 0:032beb056844 62 }
sam_grove 3:d24e8bec5610 63
mfiore 0:032beb056844 64 i = 0;
mfiore 1:b12a128aae0e 65 printf("bringing up PPP link\n\r");
mfiore 0:032beb056844 66 while (i++ < max_tries) {
mfiore 0:032beb056844 67 if (cell->connect()) {
mfiore 0:032beb056844 68 printf("PPP link is up\n\r");
mfiore 0:032beb056844 69 break;
mfiore 0:032beb056844 70 } else if (i >= max_tries) {
mfiore 0:032beb056844 71 printf("failed to bring PPP link up\n\r");
mfiore 0:032beb056844 72 } else {
mfiore 0:032beb056844 73 wait(1);
mfiore 0:032beb056844 74 }
mfiore 0:032beb056844 75 }
mfiore 1:b12a128aae0e 76 #else
mfiore 1:b12a128aae0e 77 for (int i = 6; i >= 0; i = i - 2) {
mfiore 1:b12a128aae0e 78 wait(2);
mfiore 1:b12a128aae0e 79 printf("Waiting %d seconds...\n\r", i);
mfiore 0:032beb056844 80 }
mfiore 0:032beb056844 81 MTSSerial* serial = new MTSSerial(PTD3, PTD2, 256, 256);
mfiore 0:032beb056844 82 serial->baud(9600);
mfiore 0:032beb056844 83 Transport::setTransport(Transport::WIFI);
mfiore 0:032beb056844 84 Wifi* wifi = Wifi::getInstance();
mfiore 0:032beb056844 85 printf("Init: %s\n\r", wifi->init(serial) ? "SUCCESS" : "FAILURE");
sam_grove 3:d24e8bec5610 86 printf("Set Network: %s\n\r", getCodeNames(wifi->setNetwork(ssid, Wifi::WPA, phrase)).c_str());
mfiore 0:032beb056844 87 printf("Set DHCP: %s\n\r", getCodeNames(wifi->setDeviceIP("DHCP")).c_str());
mfiore 0:032beb056844 88 printf("Signal Strnegth (dBm): %d\n\r", wifi->getSignalStrength());
mfiore 0:032beb056844 89 printf("Is Connected: %s\n\r", wifi->isConnected() ? "True" : "False");
mfiore 0:032beb056844 90 printf("Connect: %s\n\r", wifi->connect() ? "Success" : "Failure");
mfiore 0:032beb056844 91 printf("Is Connected: %s\n\r", wifi->isConnected() ? "True" : "False");
mfiore 1:b12a128aae0e 92 #endif
sam_grove 3:d24e8bec5610 93
mfiore 0:032beb056844 94 /* send some data */
mfiore 1:b12a128aae0e 95 Client client;
mfiore 1:b12a128aae0e 96 M2XStreamClient m2xClient(&client, key);
mfiore 0:032beb056844 97 int ret;
mfiore 0:032beb056844 98 int num;
mfiore 0:032beb056844 99 while (true) {
mfiore 0:032beb056844 100 num = rand();
mfiore 0:032beb056844 101 printf("sending %d\r\n", num);
mfiore 0:032beb056844 102 ret = m2xClient.send(feed, stream, num);
mfiore 0:032beb056844 103 printf("send() returned %d\r\n", ret);
mfiore 0:032beb056844 104 wait(5);
mfiore 0:032beb056844 105 }
mfiore 0:032beb056844 106 }