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.
Fork of frdm_https_HPM by
Revision 27:373612b1cd94, committed 2017-12-06
- Comitter:
- Roietronics
- Date:
- Wed Dec 06 11:25:25 2017 +0000
- Parent:
- 26:43420c027a45
- Commit message:
- New tester HPM_lib_tester loads hang online ide
Changed in this revision
--- a/HPM.lib Wed Nov 29 17:02:13 2017 +0000 +++ b/HPM.lib Wed Dec 06 11:25:25 2017 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/teams/mDot/code/HPM/#0f9dc7a845dc +https://os.mbed.com/teams/mDot/code/HPM/#77a06cb07542
--- a/HPM.lib.orig Wed Nov 29 17:02:13 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://os.mbed.com/teams/mDot/code/HPM/#760ebe68bcbe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HPM_Modes.h Wed Dec 06 11:25:25 2017 +0000 @@ -0,0 +1,14 @@ +//Uncoment one ot the MODE defintions to select implementzation type + +//#define MODE 1 //interrupt handler and serial object are class members + //interrupt data variables are static (singleton) member of main + //class i.e. :: the class with the main() function + //Clean up version on Jacob's code +//#define MODE 2 //interrupt handler serial object and all interrupt handler + //data members are HPM class instance member +//#define MODE 3 //interrupt handler serial object and all interrupt handler + //data members are static (singlton) member of HPM class +#define MODE 4 //interrupt handler serial serial object and all interrupt + //data members are static (singlton) :: (Main Class) + //Honeywell_Dust_Simple_2 implementation +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Main.cpp Wed Dec 06 11:25:25 2017 +0000
@@ -0,0 +1,28 @@
+#include "mbed.h"
+#include "HPM.h"
+
+#define TESTER_VERSION 1.0
+
+Serial pc(USBTX, USBRX, 115200);
+
+#if MODE == 4
+RawSerial link(D0, D1);
+#endif
+
+main()
+{
+ pc.printf("Starting HPM library Tester Version %s\n", TESTER_VERSION);
+#if MODE == 4
+ HPM pm(&link);
+#else
+ HPM pm(D1, D0); //Create an instance of a HPM class object
+#endif
+ pm.setLog(&pc); //Attach a log output stream
+ pm.startAutoRead(); //Start the sensor in continous read mode
+ for(int index = 0; index < 5; index++) { //Display 5 readings
+ pm.getPMReadings();
+ }
+ pm.stopAutoRead(); //Shut the sensor down
+
+ }
+
--- a/easy-connect.lib Wed Nov 29 17:02:13 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://github.com/ARMmbed/easy-connect/#a913964341394430cd3997c6f2950f93ba1d75c8
--- a/mbed-http.lib Wed Nov 29 17:02:13 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://developer.mbed.org/teams/sandbox/code/mbed-http/#3004056e4661
--- a/mbed_app.json Wed Nov 29 17:02:13 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-{
- "config": {
- "network-interface": {
- "help": "options are ETHERNET,WIFI_ESP8266,MESH_LOWPAN_ND,MESH_THREAD",
- "value": "ETHERNET"
- },
- "mesh_radio_type": {
- "help": "options are ATMEL, MCR20",
- "value": "ATMEL"
- },
- "esp8266-tx": {
- "help": "Pin used as TX (connects to ESP8266 RX)",
- "value": "D1"
- },
- "esp8266-rx": {
- "help": "Pin used as RX (connects to ESP8266 TX)",
- "value": "D0"
- },
- "esp8266-debug": {
- "value": false
- },
- "wifi-ssid": {
- "value": "\"SSID\""
- },
- "wifi-password": {
- "value": "\"Password\""
- }
- },
- "macros": [ "MBEDTLS_USER_CONFIG_FILE=\"mbedtls_entropy_config.h\"", "MBEDTLS_TEST_NULL_ENTROPY", "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES" ],
- "target_overrides": {
- "*": {
- "target.features_add": ["NANOSTACK", "LOWPAN_ROUTER", "COMMON_PAL"],
- "mbed-mesh-api.6lowpan-nd-channel-page": 0,
- "mbed-mesh-api.6lowpan-nd-channel": 12,
- "mbed-trace.enable": 0,
- "mbed-http.http-buffer-size": 2048
- },
- "HEXIWEAR": {
- "esp8266-tx": "PTD3",
- "esp8266-rx": "PTD2"
- },
- "NUCLEO_F401RE": {
- "esp8266-tx": "D8",
- "esp8266-rx": "D2"
- },
- "NUCLEO_F411RE": {
- "esp8266-tx": "D8",
- "esp8266-rx": "D2"
- }
- }
-}
--- a/mbedtls_entropy_config.h Wed Nov 29 17:02:13 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) - */ - -#include "select-demo.h" - -/* Enable entropy for K64F and K22F. This means entropy is disabled for all other targets. */ -/* Do **NOT** deploy this code in production on other targets! */ -/* See https://tls.mbed.org/kb/how-to/add-entropy-sources-to-entropy-pool */ -#if defined(TARGET_K64F) || defined(TARGET_K22F) -#undef MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES -#undef MBEDTLS_TEST_NULL_ENTROPY -#endif - -#if DEMO == DEMO_HTTPS - -#if !defined(MBEDTLS_ENTROPY_HARDWARE_ALT) && \ - !defined(MBEDTLS_ENTROPY_NV_SEED) && !defined(MBEDTLS_TEST_NULL_ENTROPY) -#error "This hardware does not have an entropy source." -#endif /* !MBEDTLS_ENTROPY_HARDWARE_ALT && !MBEDTLS_ENTROPY_NV_SEED && - * !MBEDTLS_TEST_NULL_ENTROPY */ - -#if !defined(MBEDTLS_SHA1_C) -#define MBEDTLS_SHA1_C -#endif /* !MBEDTLS_SHA1_C */ - -#if !defined(MBEDTLS_RSA_C) -#define MBEDTLS_RSA_C -#endif /* !MBEDTLS_RSA_C */ - -/* - * This value is sufficient for handling 2048 bit RSA keys. - * - * Set this value higher to enable handling larger keys, but be aware that this - * will increase the stack usage. - */ -#define MBEDTLS_MPI_MAX_SIZE 1024 - -#define MBEDTLS_MPI_WINDOW_SIZE 1 - -#endif
--- a/source/main-http-socket-reuse.cpp Wed Nov 29 17:02:13 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-#include "select-demo.h"
-
-#if DEMO == DEMO_HTTP_SOCKET_REUSE
-
-#include "mbed.h"
-#include "easy-connect.h"
-#include "http_request.h"
-
-Serial pc(USBTX, USBRX);
-
-void dump_response(HttpResponse* res) {
- printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
-
- printf("Headers:\n");
- for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
- printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
- }
- printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
-}
-
-int main() {
- pc.baud(115200);
- // Connect to the network (see mbed_app.json for the connectivity method used)
- NetworkInterface *network = easy_connect(true);
- if (!network) {
- printf("Cannot connect to the network, see serial output");
- return 1;
- }
-
- // Create a TCP socket
- printf("\n----- Setting up TCP connection -----\n");
-
- TCPSocket* socket = new TCPSocket();
- nsapi_error_t open_result = socket->open(network);
- if (open_result != 0) {
- printf("Opening TCPSocket failed... %d\n", open_result);
- return 1;
- }
-
- nsapi_error_t connect_result = socket->connect("httpbin.org", 80);
- if (connect_result != 0) {
- printf("Connecting over TCPSocket failed... %d\n", connect_result);
- return 1;
- }
-
- printf("Connected over TCP to httpbin.org:80\n");
-
- // Do a GET request to httpbin.org
- {
- HttpRequest* get_req = new HttpRequest(socket, HTTP_GET, "http://httpbin.org/status/418");
-
- // By default the body is automatically parsed and stored in a string, this is memory heavy.
- // To receive chunked response, pass in a callback as third parameter to 'send'.
- HttpResponse* get_res = get_req->send();
- if (!get_res) {
- printf("HttpRequest failed (error code %d)\n", get_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTP GET response -----\n");
- dump_response(get_res);
-
- delete get_req;
- }
-
- // POST request to httpbin.org
- {
- HttpRequest* post_req = new HttpRequest(socket, HTTP_POST, "http://httpbin.org/post");
- post_req->set_header("Content-Type", "application/json");
-
- const char body[] = "{\"hello\":\"world\"}";
-
- HttpResponse* post_res = post_req->send(body, strlen(body));
- if (!post_res) {
- printf("HttpRequest failed (error code %d)\n", post_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTP POST response -----\n");
- dump_response(post_res);
-
- delete post_req;
- }
-
- delete socket;
-
- Thread::wait(osWaitForever);
-}
-
-#endif
--- a/source/main-http.cpp Wed Nov 29 17:02:13 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#include "select-demo.h"
-
-#if DEMO == DEMO_HTTP
-
-#include "mbed.h"
-#include "easy-connect.h"
-#include "http_request.h"
-
-Serial pc(USBTX, USBRX);
-
-void dump_response(HttpResponse* res) {
- printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
-
- printf("Headers:\n");
- for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
- printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
- }
- printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
-}
-
-int main() {
- pc.baud(115200);
- // Connect to the network (see mbed_app.json for the connectivity method used)
- NetworkInterface *network = easy_connect(true);
- if (!network) {
- printf("Cannot connect to the network, see serial output");
- return 1;
- }
-
- // Do a GET request to httpbin.org
- {
- // By default the body is automatically parsed and stored in a buffer, this is memory heavy.
- // To receive chunked response, pass in a callback as last parameter to the constructor.
- HttpRequest* get_req = new HttpRequest(network, HTTP_GET, "http://httpbin.org/status/418");
-
- HttpResponse* get_res = get_req->send();
- if (!get_res) {
- printf("HttpRequest failed (error code %d)\n", get_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTP GET response -----\n");
- dump_response(get_res);
-
- delete get_req;
- }
-
- // POST request to httpbin.org
- {
- HttpRequest* post_req = new HttpRequest(network, HTTP_POST, "http://httpbin.org/post");
- post_req->set_header("Content-Type", "application/json");
-
- const char body[] = "{\"hello\":\"world\"}";
-
- HttpResponse* post_res = post_req->send(body, strlen(body));
- if (!post_res) {
- printf("HttpRequest failed (error code %d)\n", post_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTP POST response -----\n");
- dump_response(post_res);
-
- delete post_req;
- }
-
- Thread::wait(osWaitForever);
-}
-
-#endif
--- a/source/main-https-socket-reuse.cpp Wed Nov 29 17:02:13 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-#include "select-demo.h"
-
-/**
- * This demo shows how to re-use sockets, so the TLS handshake only has to happen once
- */
-
-#if DEMO == DEMO_HTTPS_SOCKET_REUSE
-
-#include "mbed.h"
-#include "easy-connect.h"
-#include "https_request.h"
-
-Serial pc(USBTX, USBRX);
-
-/* List of trusted root CA certificates
- * currently one: Let's Encrypt, the CA for httpbin.org
- *
- * To add more root certificates, just concatenate them.
- */
-const char SSL_CA_PEM[] = "-----BEGIN CERTIFICATE-----\n"
- "MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\n"
- "MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n"
- "DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\n"
- "SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\n"
- "GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC\n"
- "AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF\n"
- "q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8\n"
- "SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0\n"
- "Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA\n"
- "a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj\n"
- "/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T\n"
- "AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG\n"
- "CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv\n"
- "bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k\n"
- "c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw\n"
- "VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC\n"
- "ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz\n"
- "MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu\n"
- "Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF\n"
- "AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo\n"
- "uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/\n"
- "wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu\n"
- "X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG\n"
- "PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6\n"
- "KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n"
- "-----END CERTIFICATE-----\n";
-
-void dump_response(HttpResponse* res) {
- mbedtls_printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
-
- mbedtls_printf("Headers:\n");
- for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
- mbedtls_printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
- }
- mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
-}
-
-int main() {
- pc.baud(115200);
-
- NetworkInterface* network = easy_connect(true);
- if (!network) {
- return 1;
- }
-
- // Create a TLS socket (which holds a TCPSocket)
- printf("\n----- Setting up TLS connection -----\n");
-
- TLSSocket* socket = new TLSSocket(network, "httpbin.org", 443, SSL_CA_PEM);
- socket->set_debug(true);
- if (socket->connect() != 0) {
- printf("TLS Connect failed %d\n", socket->error());
- return 1;
- }
-
- // GET request to httpbin.org
- {
- HttpsRequest* get_req = new HttpsRequest(socket, HTTP_GET, "https://httpbin.org/status/418");
- get_req->set_debug(true);
-
- HttpResponse* get_res = get_req->send();
- if (!get_res) {
- printf("HttpRequest failed (error code %d)\n", get_req->get_error());
- return 1;
- }
- printf("\n----- HTTPS GET response -----\n");
- dump_response(get_res);
-
- delete get_req;
- }
-
- // POST request to httpbin.org
- {
- HttpsRequest* post_req = new HttpsRequest(socket, HTTP_POST, "https://httpbin.org/post");
- post_req->set_debug(true);
- post_req->set_header("Content-Type", "application/json");
-
- const char body[] = "{\"hello\":\"world\"}";
-
- HttpResponse* post_res = post_req->send(body, strlen(body));
- if (!post_res) {
- printf("HttpRequest failed (error code %d)\n", post_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTPS POST response -----\n");
- dump_response(post_res);
-
- delete post_req;
- }
-
- delete socket;
-
- Thread::wait(osWaitForever);
-}
-
-#endif
--- a/source/main-https.cpp Wed Nov 29 17:02:13 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-#include "select-demo.h"
-
-#if DEMO == DEMO_HTTPS
-
-#include "mbed.h"
-#include "easy-connect.h"
-#include "https_request.h"
-#include "TestHPM.h"
-#include "HPM.h"
-
-Serial pc(USBTX, USBRX);
-
-/* List of trusted root CA certificates
- * currently two: GlobalSign, the CA for developer.mbed.org and Let's Encrypt, the CA for httpbin.org
- *
- * To add more root certificates, just concatenate them.
- */
-
-const char SSL_CA_PEM[] =
-/* DigiCert Baltimore Root */
-"-----BEGIN CERTIFICATE-----\r\n"
-"MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\r\n"
-"RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\r\n"
-"VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\r\n"
-"DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\r\n"
-"ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\r\n"
-"VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\r\n"
-"mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\r\n"
-"IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\r\n"
-"mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\r\n"
-"XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\r\n"
-"dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\r\n"
-"jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\r\n"
-"BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\r\n"
-"DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\r\n"
-"9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\r\n"
-"jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\r\n"
-"Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\r\n"
-"ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\r\n"
-"R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\r\n"
-"-----END CERTIFICATE-----\r\n";
-
-void dump_response(HttpResponse* res) {
- mbedtls_printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
-
- mbedtls_printf("Headers:\n");
- for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
- mbedtls_printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
- }
- mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
-}
-
-int main() {
- pc.baud(115200);
-
- // Create an instance of the Honeywell Particle sensor interface object
- HPM sensor(D1, D0);
-
- NetworkInterface* network = easy_connect(true);
- if (!network) {
- return 1;
- }
-
- for (int i=0;i<5;i++)
- // POST request to httpbin.org
- {
- printf("\n----- HTTPS POST request -----\n");
-
- std::string iotHub = "hublora";
- //std::string iotHub = "smartlink-iot-hub-1";
- std::string deviceId = "HPM01";
- //std::string deviceId = "smartlink-test-device-1";
- std::string api = "2016-02-03";
-
- //Build rest endpoint for the device.
- std::string restUri = "https://"+iotHub+".azure-devices.net/devices/"+ deviceId+"/messages/events?api-version="+api;
- const char* s = restUri.c_str();
-
- HttpsRequest* post_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_POST, s);
- post_req->set_debug(true);
- post_req->set_header("Content-Type", "application/json");
- //post_req->set_header("Authorization","SharedAccessSignature sr=smartlink-iot-hub-1.azure-devices.net%2Fdevices%2Fsmartlink-test-device-1&sig=KaZZE%2BLN4Muu%2FerJM4pqVF8n%2Bdg8j141id5CYzxUFkA%3D&se=1542117770");
- post_req->set_header("Authorization","SharedAccessSignature sr=hublora.azure-devices.net%2Fdevices%2FHPM01&sig=3app1U%2Fvh1mIgcv0vb%2FsXa33udUpnwITURxOFPQFsJI%3D&se=1541972292");
-
- #if TEST
- printf("TEST getPMReadingsJSON()");
- string valuesJSON = TestHPM::getPMReadingsJSON();
- char body[256];
- strncpy(body, valuesJSON.c_str(), sizeof(body));
- printf("%s", body);
- #else
- printf("SENSOR getPMReadingsJSON()");
-// const char body[] = "{\"hello\":\"SmartLink\"}";
- string valuesJSON = sensor.getPMReadingsJSON();
- printf("HTM Library returned");
- char body[256];
- strncpy(body, valuesJSON.c_str(), sizeof(body));
- printf("%S", body);
- #endif
-
- HttpResponse* post_res = post_req->send(body, strlen(body));
- if (!post_res) {
- printf("HttpRequest failed (error code %d)\n", post_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTPS POST response -----\n");
- dump_response(post_res);
-
- delete post_req;
- }
-
- Thread::wait(osWaitForever);
-}
-
-#endif
--- a/source/prev_test_main-https.cpp Wed Nov 29 17:02:13 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-#include "select-demo.h"
-
-#if DEMO == OLD_TEST_DEMO_HTTPS
-
-#include "mbed.h"
-#include "easy-connect.h"
-#include "https_request.h"
-#include "TestHPM.h"
-//#include <sstream>
-
-Serial pc(USBTX, USBRX);
-
-/* List of trusted root CA certificates
- * currently two: GlobalSign, the CA for developer.mbed.org and Let's Encrypt, the CA for httpbin.org
- *
- * To add more root certificates, just concatenate them.
- */
-
-const char SSL_CA_PEM[] =
-/* DigiCert Baltimore Root */
-"-----BEGIN CERTIFICATE-----\r\n"
-"MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\r\n"
-"RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\r\n"
-"VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\r\n"
-"DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\r\n"
-"ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\r\n"
-"VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\r\n"
-"mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\r\n"
-"IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\r\n"
-"mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\r\n"
-"XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\r\n"
-"dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\r\n"
-"jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\r\n"
-"BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\r\n"
-"DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\r\n"
-"9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\r\n"
-"jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\r\n"
-"Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\r\n"
-"ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\r\n"
-"R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\r\n"
-"-----END CERTIFICATE-----\r\n"
-/*
-"-----BEGIN CERTIFICATE-----\n"
- "MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\n"
- "A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\n"
- "b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\n"
- "MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\n"
- "YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\n"
- "aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\n"
- "jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\n"
- "xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n"
- "1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\n"
- "snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\n"
- "U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n"
- "9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\n"
- "BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\n"
- "AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\n"
- "yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n"
- "38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\n"
- "AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\n"
- "DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\n"
- "HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\n"
- "MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n"
- "DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\n"
- "SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\n"
- "GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC\n"
- "AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF\n"
- "q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8\n"
- "SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0\n"
- "Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA\n"
- "a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj\n"
- "/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T\n"
- "AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG\n"
- "CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv\n"
- "bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k\n"
- "c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw\n"
- "VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC\n"
- "ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz\n"
- "MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu\n"
- "Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF\n"
- "AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo\n"
- "uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/\n"
- "wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu\n"
- "X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG\n"
- "PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6\n"
- "KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n"
- "-----END CERTIFICATE-----\n"
- */
- ;
-
-
-
-void dump_response(HttpResponse* res) {
- mbedtls_printf("Status: %d - %s\n", res->get_status_code(), res->get_status_message().c_str());
-
- mbedtls_printf("Headers:\n");
- for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
- mbedtls_printf("\t%s: %s\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
- }
- mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
-}
-
-int main() {
- pc.baud(115200);
-
- NetworkInterface* network = easy_connect(true);
- if (!network) {
- return 1;
- }
-
- for (int i=0;i<5;i++)
- // POST request to httpbin.org
- {
- printf("\n----- HTTPS POST request -----\n");
- printf("\n----- Test Function HPM -----\n");
- //std::string iotHub = "hublora";
- std::string iotHub = "smartlink-iot-hub-1";
- //std::string deviceId = "HPM01";
- std::string deviceId = "smartlink-test-device-1";
- std::string api = "2016-02-03";
-
- //Build rest endpoint for the device.
- std::string restUri = "https://"+iotHub+".azure-devices.net/devices/"+ deviceId+"/messages/events?api-version="+api;
- const char* s = restUri.c_str();
-
- HttpsRequest* post_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_POST, s);
- post_req->set_debug(true);
- post_req->set_header("Content-Type", "application/json");
- post_req->set_header("Authorization","SharedAccessSignature sr=smartlink-iot-hub-1.azure-devices.net%2Fdevices%2Fsmartlink-test-device-1&sig=KaZZE%2BLN4Muu%2FerJM4pqVF8n%2Bdg8j141id5CYzxUFkA%3D&se=1542117770");
- //post_req->set_header("Authorization","SharedAccessSignature sr=hublora.azure-devices.net%2Fdevices%2FHPM01&sig=3app1U%2Fvh1mIgcv0vb%2FsXa33udUpnwITURxOFPQFsJI%3D&se=1541972292");
-
- //std::stringstream data;
- //TestHPM::PMReading readings = TestHPM::getPMReadings();
- //uint16_t * readings[3] = TestHPM::getPMReadings();
- //data << "{\"PM01\": " << readings.PM01Value << ", \"PM2_5\": " << readings.PM2_5Value << ", \"PM10\": " << readings.PM10Value << "}";
-
- //string data = "{\"PM01\": ";
-// //uint16_t * readings[3] = TestHPM::getPMReadings();
-// //data << "{\"PM01\": " << readings.PM01Value << ", \"PM2_5\": " << readings.PM2_5Value << ", \"PM10\": " << readings.PM10Value << "}";
-// char str[32];
-// string dataArray[3];
-// dataArray[0] = sprintf(str, "%d", readings.PM01Value);//"%f"
-// data.append(dataArray[0]);
-// data = data + ", \"PM2_5\": ";
-// dataArray[1] = sprintf(str, "%d", readings.PM2_5Value);//"%f"
-// data.append(dataArray[1]);
-// data = data + ", \"PM10\": ";
-// dataArray[2] = sprintf(str, "%d", readings.PM10Value);//"%f"
-// data.append(dataArray[2]);
-// data = data + "}";
- // Convert the string to char array, which is expected by the http send method
-// char data[256] = TestHPM::getPMReadingsJSON();
-
-// body[sizeof(body) - 1] = 0;
-// char body[] = valuesJSON.c_str();
-
- string valuesJSON = TestHPM::getPMReadingsJSON();
- char body[256];
- strncpy(body, valuesJSON.c_str(), sizeof(body));
-
- //const char body[] = "{\"hello\":\"SmartLink\"}";
-
- //HttpResponse* post_res = post_req->send(data, strlen(data));
- HttpResponse* post_res = post_req->send(body, strlen(body));
- if (!post_res) {
- printf("HttpRequest failed (error code %d)\n", post_req->get_error());
- return 1;
- }
-
- printf("\n----- HTTPS POST response -----\n");
- dump_response(post_res);
- delete post_req;
- }
- Thread::wait(osWaitForever);
-}
-
-#endif
--- a/source/select-demo.h Wed Nov 29 17:02:13 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -#ifndef _SELECT_METHOD_H_ -#define _SELECT_METHOD_H_ - -#define DEMO_HTTP 1 -#define DEMO_HTTP_SOCKET_REUSE 2 -#define DEMO_HTTPS 3 -#define DEMO_HTTPS_SOCKET_REUSE 4 - -#define DEMO DEMO_HTTPS - -// TEST 1 to run the fake PM generator, TEST 0 to use attached sensor -#define TEST 1 - -#endif // _SELECT_METHOD_H_
