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: M2XStreamClient jsonlite mbed
Fork of MTSAS_Cellular_Connect_Example_F411 by
main.cpp
- Committer:
- Vanger
- Date:
- 2014-08-07
- Revision:
- 9:0ed53023033b
- Parent:
- 8:95c226a1dca7
- Child:
- 10:2e6637cca9d7
File content as of revision 9:0ed53023033b:
#include "mbed.h"
#include "mtsas.h"
int main(){
//Modify to match your apn if you are using an HSPA radio with a SIM card
const char APN[] = "";
//Sets the log level to INFO, higher log levels produce more log output.
//Possible levels: NONE, FATAL, ERROR, WARNING, INFO, DEBUG, TRACE
MTSLog::setLogLevel(MTSLog::INFO_LEVEL);
/** STMicro Nucelo F401RE
* The supported jumper configurations of the MTSAS do not line up with
* the pin mapping of the Nucleo F401RE. Therefore, the MTSAS serial TX
* pin (JP8 Pin 2) must be manually jumped to Serial1 RX (Shield pin D2)
* and the MTSAS serial RX pin (JP9 Pin 2) pin must be manually jumped to
* Serial1 TX (Shield pin D8).
* Uncomment the following line to use the STMicro Nuceleo F401RE
*/
MTSSerialFlowControl* io = new MTSSerialFlowControl(D8, D2, D3, D6);
/** Freescale KL46Z
* To configure the pins for the Freescale KL46Z board, use configuration B
* Uncomment the following line to use the Freescale KL46Z board
*/
//MTSSerialFlowControl* io = new MTSSerialFlowControl(D2, D9, D3, D6);
/** Freescale K64F
* To configure the pins for the Freescale KL46Z board, use configuration A
* for the SocketModem.
* Uncomment te following line to use the Freescale KL46F board
*/
//MTSSerialFlowControl* io = new MTSSerialFlowControl(D1, D0, D3, D6);
//Sets the baud rate for communicating with the radio
io->baud(115200);
//Create radio object
Cellular* radio = CellularFactory::create(io);
radio->configureSignals(D4,D7,RESET);
Transport::setTransport(radio);
if (! radio) {
logFatal("Failed to initialize radio");
return 1;
}
//Set radio APN
for (int i = 0; i < 10; i++) {
if (i >= 10) {
logError("Failed to set APN to %s", APN);
}
if (radio->setApn(APN) == MTS_SUCCESS) {
logInfo("Successfully set APN to %s", APN);
break;
} else {
wait(1);
}
}
//Establish PPP link
for (int i = 0; i < 10; i++) {
if (i >= 10) {
logError("Failed to establish PPP link");
}
if (radio->connect() == true) {
logInfo("Successfully established PPP link");
break;
} else {
wait(1);
}
}
//Ping google.com
for (int i = 0; i < 10; i++) {
if (i >= 10) {
logError("Failed to ping www.google.com");
}
if (radio->ping("www.google.com") == true) {
logInfo("Successfully pinged www.google.com");
break;
} else {
wait(1);
}
}
//Disconnect ppp link
radio->disconnect();
logInfo("End of example code");
return 0;
}
