Example program for MTS Universal Socked Modem Shield and WiFi Shield. Test that you can connect to Axeda with your account.

Dependencies:   AxedaWrapper SocketModem mbed

Fork of axeda_wrapper_dev by Mike Fiore

main.cpp

Committer:
mfiore
Date:
2014-01-05
Revision:
5:e1ac66f8cd26
Parent:
4:bb9bfd6be913
Parent:
3:7ba95d6503e4

File content as of revision 5:e1ac66f8cd26:

#include "mbed.h"
#include "include_me.h"
#include "AxedaWrapper.h"

// set to 1 for cellular shield board
// set to 0 for wifi shield board
#define CELL_SHIELD 1

// wifi ssid and phrase for event
std::string ssid = "belkin54g";
std::string phrase = "hackathon";

// https://connect.axeda.com/apps/connectiontest/index.html#login
std::string serial_num = "ATT_Summit_Hackathon";    // add your serial number here but test with this
    
using namespace mts;

int main() {
#if CELL_SHIELD
    MTSSerialFlowControl* serial = new MTSSerialFlowControl(PTD3, PTD2, PTA12, PTC8);
    serial->baud(115200);
    Transport::setTransport(Transport::CELLULAR);
    Cellular* cell = Cellular::getInstance();
    cell->init(serial, PTA4, PTC9);

    int max_tries = 5;
    int i;
    std::string apn = "wap.cingular";
    
    i = 0;
    while (i++ < max_tries) {
        if (cell->getRegistration() == Cellular::REGISTERED) {
            printf("registered with tower\n\r");
            break;
        } else if (i >= max_tries) {
            printf("failed to register with tower\n\r");
        } else {
            wait(3);
        }
    }
    
    printf("signal strength: %d\n\r", cell->getSignalStrength());

    i = 0;
    printf("setting APN to %s\n\r", apn.c_str());
    while (i++ < max_tries) {
        if (cell->setApn(apn) == SUCCESS) {
            printf("successfully set APN\n\r");
            break;
        } else if (i >= max_tries) {
            printf("failed to set APN\n\r");
        } else {
            wait(1);
        }
    }
    
    i = 0;
    printf("bringing up PPP link\n\r");
    while (i++ < max_tries) {
        if (cell->connect()) {
            printf("PPP link is up\n\r");
            break;
        } else if (i >= max_tries) {
            printf("failed to bring PPP link up\n\r");
        } else {
            wait(1);
        }
    }
#else
    for (int i = 6; i >= 0; i = i - 2) {
        wait(2);
        printf("Waiting %d seconds...\n\r", i);
    }
    MTSSerial* serial = new MTSSerial(PTD3, PTD2, 256, 256);
    serial->baud(9600);
    Transport::setTransport(Transport::WIFI);
    Wifi* wifi = Wifi::getInstance();
    printf("Init: %s\n\r", wifi->init(serial) ? "SUCCESS" : "FAILURE");
    printf("Set Network: %s\n\r", getCodeNames(wifi->setNetwork(ssid, Wifi::WPA, phrase)).c_str());
    printf("Set DHCP: %s\n\r", getCodeNames(wifi->setDeviceIP("DHCP")).c_str());
    printf("Signal Strnegth (dBm): %d\n\r", wifi->getSignalStrength());
    printf("Is Connected: %s\n\r", wifi->isConnected() ? "True" : "False");
    printf("Connect: %s\n\r", wifi->connect() ? "Success" : "Failure");
    printf("Is Connected: %s\n\r", wifi->isConnected() ? "True" : "False");
#endif
    
    AxedaWrapper* client = new AxedaWrapper(serial_num);
    bool retval;
    while (true) {
        int val = rand();
        printf("sending %d\r\n", val);
        retval = client->send("test", val);
        printf("%s\n\r", retval ? "succeeded" : "failed");
        wait(5);
    }
    
    return 0;
}