A library for talking to Multi-Tech's Cellular SocketModem Devices.
Dependents: M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more
Diff: cellular/Cellular.cpp
- Revision:
- 55:56d9a9d98079
- Parent:
- 53:27c9622de0f9
- Child:
- 57:88b07490d7e8
- Child:
- 58:408f67fa292f
--- a/cellular/Cellular.cpp Fri Dec 20 14:29:29 2013 +0000 +++ b/cellular/Cellular.cpp Fri Dec 20 16:26:10 2013 +0000 @@ -188,7 +188,17 @@ } } - ////Setup IP Connection + //Set Local Port + if(local_port != 0) { + //Attempt to set local port + sprintf(buffer, "AT#OUTPORT=%d", local_port); + Code code = sendBasicCommand(buffer, 1000); + if(code != CELL_OK) { + printf("[WARNING] Unable to set local port (%d) [%d]\r\n", local_port, (int) code); + } + } + + //Set TCP/UDP parameters if(mode == TCP) { if(socketCloseable) { Code code = sendBasicCommand("AT#DLEMODE=1,1", 1000); @@ -206,9 +216,9 @@ printf("[WARNING] Unable to set socket closeable [%d]\r\n", (int) code); } } - sprintf(buffer, "AT#UDPPORT=1,%d", port); + sprintf(buffer, "AT#UDPPORT=%d", port); portCode = sendBasicCommand(buffer, 1000); - addressCode = sendBasicCommand("AT#UDPSERV=1,\"" + address + "\"", 1000); + addressCode = sendBasicCommand("AT#UDPSERV=\"" + address + "\"", 1000); } if(portCode == CELL_OK) { @@ -223,22 +233,24 @@ printf("[ERROR] Host address could not be set\r\n"); } - if(local_port != 0) { - //Attempt to set local port - sprintf(buffer, "AT#OUTPORT=%d", local_port); - Code code = sendBasicCommand(buffer, 1000); - if(code != CELL_OK) { - printf("[WARNING] Unable to set local port (%d) [%d]\r\n", local_port, (int) code); - } - } + // Try and Connect - string response = sendCommand("AT#OTCP=1", 30000); + std::string sMode; + std::string sOpenSocketCmd; + if(mode == TCP) { + sOpenSocketCmd = "AT#OTCP=1"; + sMode = "TCP"; + } else { + sOpenSocketCmd = "AT#OUDP"; + sMode = "UDP"; + } + string response = sendCommand(sOpenSocketCmd, 30000); if (response.find("Ok_Info_WaitingForData") != string::npos) { - printf("[INFO] Opened TCP Socket [%s:%d]\r\n", address.c_str(), port); + printf("[INFO] Opened %s Socket [%s:%d]\r\n", sMode.c_str(), address.c_str(), port); socketOpened = true; } else { - printf("[WARNING] Unable to open TCP Socket [%s:%d]\r\n", address.c_str(), port); + printf("[WARNING] Unable to open %s Socket [%s:%d]\r\n", sMode.c_str(), address.c_str(), port); socketOpened = false; }