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: ublox-cellular-driver-gen gnss ublox-cellular-base ublox-at-cellular-interface-ext
Revision 20:3ca2d75614e6, committed 2019-01-28
- Comitter:
- fahim.alavi@u-blox.com
- Date:
- Mon Jan 28 12:50:16 2019 +0500
- Parent:
- 19:23b4551c5a53
- Child:
- 21:b09d258f2788
- Commit message:
- Cell locate not supported in R4, https link corrected, and null termination added
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Mar 26 15:41:36 2018 +0100
+++ b/main.cpp Mon Jan 28 12:50:16 2019 +0500
@@ -134,7 +134,8 @@
// true);
UbloxATCellularInterfaceExt::Error *err;
UbloxATCellularInterfaceExt::CellLocData data;
- char buf[1024];
+ const int c_size_of_buffer = 2048;
+ char *buf;
int httpProfile;
int numRes;
GnssSerial gnssSerial; // This needed purely to power on the GNSS chip in
@@ -153,7 +154,10 @@
gnssSerial.init();
good();
printf("Starting up, please wait up to 180 seconds for network registration to complete...\n");
+
if (interface->init(PIN)) {
+ int bytesRead = 0;
+
pulseEvent();
interface->set_credentials(APN, USERNAME, PASSWORD);
printf("Registered, connecting to the packet network...\n");
@@ -165,6 +169,8 @@
}
pulseEvent();
+ buf = (char *) malloc(c_size_of_buffer);
+
// FTP OPERATIONS
// Reset FTP parameters to default then set things up
printf("=== FTP ===\n");
@@ -182,56 +188,84 @@
pulseEvent();
// Get a directory listing from the server
if (interface->ftpCommand(UbloxATCellularInterfaceExt::FTP_LS,
- NULL, NULL, buf, sizeof (buf)) == NULL) {
+ NULL, NULL, buf, c_size_of_buffer) == NULL) {
pulseEvent();
printf ("Directory listing of FTP server:\n"
"--------------------------------\n%s"
"--------------------------------\n", buf);
}
-
// FTP GET a file known to be on test.rebex.net into the module file system,
// making sure it's not there to begin with
interface->delFile("readme.txt");
if (interface->ftpCommand(UbloxATCellularInterfaceExt::FTP_GET_FILE, "readme.txt") == NULL) {
pulseEvent();
// Read the file from the module file system into buf
- if (interface->readFile("readme.txt", buf, sizeof (buf))) {
- printf("FTP GET of file \"readme.txt\" completed. The file contained:\n"
- "------------------------------------------------------------\n%s"
- "------------------------------------------------------------\n", buf);
+ bytesRead = interface->readFile("readme.txt", buf, c_size_of_buffer);
+
+ if (bytesRead) {
+ if (bytesRead < c_size_of_buffer) {
+ // Add null terminator
+ *(buf + bytesRead) = 0;
+
+ printf("FTP GET of file \"readme.txt\" completed. The file contained:\n"
+ "------------------------------------------------------------\n%s"
+ "------------------------------------------------------------\n", buf);
+ }
+ else {
+ printf("Error: buffer overflow...\n");
+ }
+
}
- }
+ else {
+ printf("Error: data not read from module's FS...\n");
+ }
+ }
} else {
bad();
printf ("Unable to log in, error class %d, error code %d.\n", err->eClass, err->eCode);
}
-
+
// HTTP OPERATIONS
// Set up HTTP parameters
printf("=== HTTP ===\n");
- printf("Performing HTTP GET on \"developer.mbed.org\"...\n");
+ printf("Performing HTTP GET on \"Github\"...\n");
+ // Make sure bytesRead is equal to 0
+ bytesRead = 0;
+
httpProfile = interface->httpAllocProfile();
interface->httpSetTimeout(httpProfile, 30000);
- interface->httpSetPar(httpProfile, UbloxATCellularInterfaceExt::HTTP_SERVER_NAME, "developer.mbed.org");
-
+ interface->httpSetPar(httpProfile, UbloxATCellularInterfaceExt::HTTP_SECURE, "1");
+ interface->httpSetPar(httpProfile, UbloxATCellularInterfaceExt::HTTP_SERVER_NAME, "raw.githubusercontent.com");
+
// Do the HTTP command
err = interface->httpCommand(httpProfile, UbloxATCellularInterfaceExt::HTTP_GET,
- "/media/uploads/mbed_official/hello.txt",
+ "/u-blox/mbed-os/master/features/cellular/mbed_lib.json",
NULL, NULL, 0, NULL,
- buf, sizeof (buf));
+ buf, c_size_of_buffer, &bytesRead);
+
if (err == NULL) {
pulseEvent();
- printf("HTTP GET of \"/media/uploads/mbed_official/hello.txt\" completed. The response contained:\n"
- "----------------------------------------------------------------------------------------\n%s"
- "----------------------------------------------------------------------------------------\n", buf);
+
+ if(bytesRead > 0 && bytesRead < c_size_of_buffer) {
+ //Add null terminator
+ *(buf + bytesRead) = 0;
+
+ printf("HTTP GET of \"/u-blox/mbed-os/master/features/cellular/mbed_lib.json\" completed. The response contained:\n"
+ "----------------------------------------------------------------------------------------\n%s"
+ "----------------------------------------------------------------------------------------\n", buf);
+ }
+ else {
+ printf("Error: Bytes read is zero");
+ }
} else {
bad();
- printf("Unable to get \"/media/uploads/mbed_official/hello.txt\" from \"developer.mbed.org\", "
+ printf("Unable to get \"/u-blox/mbed-os/master/features/cellular/mbed_lib.json\" from github, "
"error class %d, error code %d.\n", err->eClass, err->eCode);
}
-
+#ifndef TARGET_UBLOX_C030_R41XM
// CELL LOCATE OPERATIONS (in a loop)
printf("=== Cell Locate ===\n");
+
printf("Sending Cell Locate requests in a loop (until the user button is pressed on C030 or forever on C027)...\n");
while (!buttonPressed) {
interface->cellLocSrvUdp();
@@ -244,7 +278,7 @@
for (int x = 0; (numRes == 0) && (x < 10); x++) {
numRes = interface->cellLocGetRes();
}
-
+
if (numRes > 0) {
interface->cellLocGetData(&data);
if (data.validData) {
@@ -257,14 +291,29 @@
}
}
wait_ms(5000);
+
#ifndef TARGET_UBLOX_C027
printf("[Checking if user button has been pressed]\n");
#endif
}
-
+
+ free(buf);
+
+#else
+ while(!buttonPressed) {
+ wait_ms(500);
+ // Shift the LED states
+ int carry = ledBlue;
+ ledBlue = ledRed;
+ ledRed = ledGreen;
+ ledGreen = carry;
+ }
+#endif
+
pulseEvent();
printf("User button was pressed, stopping...\n");
gnssSerial.powerOff();
+
interface->disconnect();
interface->deinit();
ledOff();
@@ -275,4 +324,4 @@
}
}
-// End Of File
\ No newline at end of file
+// End Of File