Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: AxedaWrapper SocketModem mbed
main.cpp
- Committer:
- mfiore
- Date:
- 2014-01-04
- Revision:
- 0:5b04479914b6
- Child:
- 1:f0b38aa21aaf
File content as of revision 0:5b04479914b6:
#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
using namespace mts;
int main() {
#if CELL_SHIELD
for (int i = 30; i >= 0; i = i - 2) {
wait(2);
printf("Waiting %d seconds...\n\r", i);
}
MTSSerialFlowControl* serial = new MTSSerialFlowControl(PTD3, PTD2, PTA12, PTC8);
serial->baud(115200);
Transport::setTransport(Transport::CELLULAR);
Cellular* cell = Cellular::getInstance();
cell->init(serial);
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("", Wifi::WPA2, "")).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
std::string serial_num = "";
AxedaWrapper* client = new AxedaWrapper(serial_num);
//AxedaWrapper* client = new AxedaWrapper(serial_num, "mbed", "54.235.103.204");
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;
}