Change tcp server.
Dependencies: ublox-at-cellular-interface ublox-cellular-base ublox-cellular-base-n2xx ublox-at-cellular-interface-n2xx
Revision 33:48101a4c3f14, committed 2018-02-28
- Comitter:
- RobMeades
- Date:
- Wed Feb 28 15:13:03 2018 +0000
- Parent:
- 32:bdc45c7052cc
- Child:
- 34:f25d2ea9f55c
- Child:
- 35:8e65f2bee044
- Commit message:
- Update to latest library versions and replace UbloxPPPCellularInterface with OnboardCellularInterface.
Changed in this revision
--- a/main.cpp Mon Oct 30 14:49:58 2017 +0000
+++ b/main.cpp Wed Feb 28 15:13:03 2018 +0000
@@ -16,7 +16,7 @@
#include "mbed.h"
#include "UbloxATCellularInterface.h"
-#include "UbloxPPPCellularInterface.h"
+#include "OnboardCellularInterface.h"
#include "UbloxATCellularInterfaceN2xx.h"
// You must select the correct interface library for your board, by
@@ -24,12 +24,12 @@
// indicated with a "Y" in the table below.
//
// C030_U201 C030_N211 C027
-// UbloxPPPCellularInterface Y - Y
// UbloxATCellularInterface Y - Y
+// OnboardCellularInterface Y - Y
// UbloxATCellularInterfaceN2xx - Y -
// Note: the N211 module supports only UDP, not TCP
-// UbloxPPPCellularInterface uses LWIP and the PPP cellular interface
+// OnboardCellularInterface uses LWIP and the PPP cellular interface
// on the mbed MCU, while using UbloxATCellularInterface and
// UbloxATCellularInterfaceN2xx uses an IP stack on the cellular
// module and hence uses less RAM (significant on C027). This also
@@ -39,7 +39,7 @@
// library). However, it is slower than using the LWIP/PPP on the mbed
// MCU interface since more string parsing is required.
#define INTERFACE_CLASS UbloxATCellularInterface
-//#define INTERFACE_CLASS UbloxPPPCellularInterface
+//#define INTERFACE_CLASS OnboardCellularInterface
//#define INTERFACE_CLASS UbloxATCellularInterfaceN2xx
// The credentials of the SIM in the board. If PIN checking is enabled
@@ -124,7 +124,7 @@
}
/* This example program for the u-blox C030 and C027 boards instantiates
- * the UbloxAtCellularInterface or UbloxPPPCellularInterface and uses it
+ * the UbloxATCellularInterface or OnboardCellularInterface and uses it
* to make a simple sockets connection to a server, using 2.pool.ntp.org
* for UDP and developer.mbed.org for TCP. For a more comprehensive example,
* where higher layer protocols make use of the same sockets interface,
@@ -166,113 +166,105 @@
good();
printf("Starting up, please wait up to 180 seconds for network registration to complete...\n");
- if (interface->init(PIN)) {
+ interface->set_credentials(APN, USERNAME, PASSWORD);
+ for (x = 0; interface->connect(PIN) != 0; x++) {
+ if (x > 0) {
+ bad();
+ printf("Retrying (have you checked that an antenna is plugged in and your APN is correct?)...\n");
+ }
+ }
+ pulseEvent();
+
+ printf("Getting the IP address of \"developer.mbed.org\" and \"2.pool.ntp.org\"...\n");
+ if ((interface->gethostbyname("2.pool.ntp.org", &udpServer) == 0) &&
+ (interface->gethostbyname("developer.mbed.org", &tcpServer) == 0)) {
pulseEvent();
- interface->set_credentials(APN, USERNAME, PASSWORD);
- printf("Registered, connecting to the packet network...\n");
- for (x = 0; interface->connect() != 0; x++) {
- if (x > 0) {
- bad();
- printf("Retrying (have you checked that an antenna is plugged in and your APN is correct?)...\n");
- }
- }
- pulseEvent();
-
- printf("Getting the IP address of \"developer.mbed.org\" and \"2.pool.ntp.org\"...\n");
- if ((interface->gethostbyname("2.pool.ntp.org", &udpServer) == 0) &&
- (interface->gethostbyname("developer.mbed.org", &tcpServer) == 0)) {
- pulseEvent();
+
+ udpServer.set_port(123);
+ printf("\"2.pool.ntp.org\" address: %s on port %d.\n", udpServer.get_ip_address(), udpServer.get_port());
+ printf("\"developer.mbed.org\" address: %s on port %d.\n", tcpServer.get_ip_address(), tcpServer.get_port());
+ tcpServer.set_port(80);
- udpServer.set_port(123);
- printf("\"2.pool.ntp.org\" address: %s on port %d.\n", udpServer.get_ip_address(), udpServer.get_port());
- printf("\"developer.mbed.org\" address: %s on port %d.\n", tcpServer.get_ip_address(), tcpServer.get_port());
- tcpServer.set_port(80);
-
- printf("Performing socket operations in a loop (until the user button is pressed on C030 or forever on C027)...\n");
- while (!buttonPressed) {
- // UDP Sockets
- printf("=== UDP ===\n");
- printf("Opening a UDP socket...\n");
- if (sockUdp.open(interface) == 0) {
+ printf("Performing socket operations in a loop (until the user button is pressed on C030 or forever on C027)...\n");
+ while (!buttonPressed) {
+ // UDP Sockets
+ printf("=== UDP ===\n");
+ printf("Opening a UDP socket...\n");
+ if (sockUdp.open(interface) == 0) {
+ pulseEvent();
+ printf("UDP socket open.\n");
+ sockUdp.set_timeout(10000);
+ printf("Sending time request to \"2.pool.ntp.org\" over UDP socket...\n");
+ memset (buf, 0, sizeof(buf));
+ *buf = '\x1b';
+ if (sockUdp.sendto(udpServer, (void *) buf, 48) == 48) {
pulseEvent();
- printf("UDP socket open.\n");
- sockUdp.set_timeout(10000);
- printf("Sending time request to \"2.pool.ntp.org\" over UDP socket...\n");
- memset (buf, 0, sizeof(buf));
- *buf = '\x1b';
- if (sockUdp.sendto(udpServer, (void *) buf, 48) == 48) {
+ printf("Socket send completed, waiting for UDP response...\n");
+ x = sockUdp.recvfrom(&udpSenderAddress, buf, sizeof (buf));
+ if (x > 0) {
pulseEvent();
- printf("Socket send completed, waiting for UDP response...\n");
- x = sockUdp.recvfrom(&udpSenderAddress, buf, sizeof (buf));
+ printf("Received %d byte response from server %s on UDP socket:\n"
+ "-------------------------------------------------------\n",
+ x, udpSenderAddress.get_ip_address());
+ printNtpTime(buf, x);
+ printf("-------------------------------------------------------\n");
+ }
+ }
+ printf("Closing socket...\n");
+ sockUdp.close();
+ pulseEvent();
+ printf("Socket closed.\n");
+ }
+
+#ifndef TARGET_UBLOX_C030_N211
+ // TCP Sockets
+ printf("=== TCP ===\n");
+ printf("Opening a TCP socket...\n");
+ if (sockTcp.open(interface) == 0) {
+ pulseEvent();
+ printf("TCP socket open.\n");
+ sockTcp.set_timeout(10000);
+ printf("Connecting socket to %s on port %d...\n", tcpServer.get_ip_address(), tcpServer.get_port());
+ if (sockTcp.connect(tcpServer) == 0) {
+ pulseEvent();
+ printf("Connected, sending HTTP GET request to \"developer.mbed.org\" over socket...\n");
+ strcpy (buf, "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\r\n\r\n");
+ // Note: since this is a short string we can send it in one go as it will
+ // fit within the default buffer sizes. Normally you should call sock.send()
+ // in a loop until your entire buffer has been sent.
+ if (sockTcp.send((void *) buf, strlen(buf)) == (int) strlen(buf)) {
+ pulseEvent();
+ printf("Socket send completed, waiting for response...\n");
+ x = sockTcp.recv(buf, sizeof (buf));
if (x > 0) {
pulseEvent();
- printf("Received %d byte response from server %s on UDP socket:\n"
- "-------------------------------------------------------\n",
- x, udpSenderAddress.get_ip_address());
- printNtpTime(buf, x);
- printf("-------------------------------------------------------\n");
- }
- }
- printf("Closing socket...\n");
- sockUdp.close();
- pulseEvent();
- printf("Socket closed.\n");
- }
-
-#ifndef TARGET_UBLOX_C030_N211
- // TCP Sockets
- printf("=== TCP ===\n");
- printf("Opening a TCP socket...\n");
- if (sockTcp.open(interface) == 0) {
- pulseEvent();
- printf("TCP socket open.\n");
- sockTcp.set_timeout(10000);
- printf("Connecting socket to %s on port %d...\n", tcpServer.get_ip_address(), tcpServer.get_port());
- if (sockTcp.connect(tcpServer) == 0) {
- pulseEvent();
- printf("Connected, sending HTTP GET request to \"developer.mbed.org\" over socket...\n");
- strcpy (buf, "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\r\n\r\n");
- // Note: since this is a short string we can send it in one go as it will
- // fit within the default buffer sizes. Normally you should call sock.send()
- // in a loop until your entire buffer has been sent.
- if (sockTcp.send((void *) buf, strlen(buf)) == (int) strlen(buf)) {
- pulseEvent();
- printf("Socket send completed, waiting for response...\n");
- x = sockTcp.recv(buf, sizeof (buf));
- if (x > 0) {
- pulseEvent();
- printf("Received %d byte response from server on TCP socket:\n"
- "----------------------------------------------------\n%.*s"
- "----------------------------------------------------\n",
- x, x, buf);
- }
+ printf("Received %d byte response from server on TCP socket:\n"
+ "----------------------------------------------------\n%.*s"
+ "----------------------------------------------------\n",
+ x, x, buf);
}
}
- printf("Closing socket...\n");
- sockTcp.close();
- pulseEvent();
- printf("Socket closed.\n");
}
-#endif
- wait_ms(5000);
-#ifndef TARGET_UBLOX_C027
- printf("[Checking if user button has been pressed]\n");
-#endif
+ printf("Closing socket...\n");
+ sockTcp.close();
+ pulseEvent();
+ printf("Socket closed.\n");
}
-
- pulseEvent();
- printf("User button was pressed, stopping...\n");
- interface->disconnect();
- interface->deinit();
- ledOff();
- printf("Stopped.\n");
- } else {
- bad();
- printf("Unable to get IP address of \"developer.mbed.org\" or \"2.pool.ntp.org\".\n");
+#endif
+ wait_ms(5000);
+#ifndef TARGET_UBLOX_C027
+ printf("[Checking if user button has been pressed]\n");
+#endif
}
+
+ pulseEvent();
+ printf("User button was pressed, stopping...\n");
+ interface->disconnect();
+ ledOff();
+ printf("Stopped.\n");
} else {
bad();
- printf("Unable to initialise the interface.\n");
+ printf("Unable to get IP address of \"developer.mbed.org\" or \"2.pool.ntp.org\".\n");
}
}
--- a/mbed-os.lib Mon Oct 30 14:49:58 2017 +0000 +++ b/mbed-os.lib Wed Feb 28 15:13:03 2018 +0000 @@ -1,1 +1,1 @@ -https://github.com/ARMmbed/mbed-os/#97e2d4a8c55ac8959f66cd1cb60529708ff7a830 +https://github.com/ARMmbed/mbed-os/#eaf6f8153d8b8c2d3136f288ca3c5d4fbc1ae18f
--- a/ublox-at-cellular-interface-n2xx.lib Mon Oct 30 14:49:58 2017 +0000 +++ b/ublox-at-cellular-interface-n2xx.lib Wed Feb 28 15:13:03 2018 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/ublox/code/ublox-at-cellular-interface-n2xx/#4be20bab5138 +https://developer.mbed.org/teams/ublox/code/ublox-at-cellular-interface-n2xx/#b0757007cc72
--- a/ublox-at-cellular-interface.lib Mon Oct 30 14:49:58 2017 +0000 +++ b/ublox-at-cellular-interface.lib Wed Feb 28 15:13:03 2018 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/ublox/code/ublox-at-cellular-interface/#ba18f4418ee8 +https://developer.mbed.org/teams/ublox/code/ublox-at-cellular-interface/#39264b492ce7
--- a/ublox-cellular-base-n2xx.lib Mon Oct 30 14:49:58 2017 +0000 +++ b/ublox-cellular-base-n2xx.lib Wed Feb 28 15:13:03 2018 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/ublox/code/ublox-cellular-base-n2xx/#377997119ef1 +https://developer.mbed.org/teams/ublox/code/ublox-cellular-base-n2xx/#1afe5ed24f0c
--- a/ublox-cellular-base.lib Mon Oct 30 14:49:58 2017 +0000 +++ b/ublox-cellular-base.lib Wed Feb 28 15:13:03 2018 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/ublox/code/ublox-cellular-base/#a15349fcab25 +https://developer.mbed.org/teams/ublox/code/ublox-cellular-base/#e420232ee4e7
--- a/ublox-ppp-cellular-interface.lib Mon Oct 30 14:49:58 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://developer.mbed.org/teams/ublox/code/ublox-ppp-cellular-interface/#4c533665168c