Renesas Community
Renesas Community
  • User
    Join or sign in
  • Site
  • Search Community
  • User
  • Renesas Engineering Community
  • FAQ
  • HELP
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-LYCHEE GR-LYCEE スケッチリファレンスのTLS(HTTPS)を実行するとフリーズする
  • Forums
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 GR-SAKURA

 GR-KURUMI

 GR-COTTON

 GR-CITRUS

 GR-PEACH

 GR-KAEDE

 GR-ADZUKI

 GR-LYCHEE

 GR-ROSE

 GR-MANGO(*)

 SNShield

 Web Compiler

 IDE for GR

 TOPPERS関連

 女子美コラボ

 その他

 ※プロデューサミーティング中

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他・過去ファイル

  • State Not Answered
  • Replies 9 replies
  • Subscribers 438 subscribers
  • Views 4834 views
  • Users 0 members are here
Options
  • Share
  • More
  • Cancel
Related Tags
  • 5Vトレラント
  • binファイル
  • BLE
  • DisplayApp
  • e2studio
  • error
  • ESP32
  • GR-LYCHEE
  • GR-PEACH
  • html
  • includeに関しては、C言語のヘッダファイルの意味合いを理解すれば、どういうことなのか?がわかるんじゃないか?と思いますよ。
  • OpenCV
  • pwm
  • WebCamera
  • webコンパイラ
  • カメラ
  • コンパイラー
  • シリアル
  • ダウンロード
  • ツールチェン
  • ファームウェア
  • 基板サイズ
  • 解凍
Related

GR-LYCEE スケッチリファレンスのTLS(HTTPS)を実行するとフリーズする

t-t
t-t over 5 years ago

GR-LYCEEで

スケッチリファレンスのTLS(HTTPS)のコードを以下のように改編しました。

・SW1を押す度にPOSTリクエストを実行する

・IFTTTのwebhooksへPOSTする

その状態で実行すると

 

void setup() 内、

dump_response(post_res);内の

mbedtls_printf("\nBody (%d bytes):\n\n%s\n", res->get_body_length(), res->get_body_as_string().c_str());
 
の表示まではコンソール出力されているのですが
それ以降のルーチンまで進みません。
 
ちなみにIFTTTへは正常にPOSTされ連携先も動作しています。
 
どなたか原因分かりますでしょうか??
 

 

  • Reply
  • Cancel
  • Cancel
  • Okamiya Yuuki
    0 Okamiya Yuuki over 5 years ago
    再現するプログラムを貼り付けていただくことはできますか?
    こちらで再現出来たらJ-Linkをつなげてどこで止まっているのか確認してみたいと思います。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • t-t
    0 t-t over 5 years ago in reply to Okamiya Yuuki
    お世話になります。貼り付けてみます。
    WIFI、IFTTT関係はhogeにしてます。
    証明書はopensslで取得したものです。
    よろしくお願いします。

    [gr_sketch.cpp]
    ---------------------------------------------------------------------------

    /* GR-LYCHEE Sketch Template V1.02 */
    #include <Arduino.h>
    #include <Camera.h>
    #include <SD.h>
    #include <SPI.h>
    #include <RTC.h>

    #include "TCPSocket.h"
    #include "https_request.h"
    #include "ESP32Interface.h"

    //------------------
    // WiFi
    //------------------
    #define MBED_CONF_APP_WIFI_SSID "hoge"
    #define MBED_CONF_APP_WIFI_PASSWORD "hoge"
    ESP32Interface wifi;

    //------------------
    // IFTTT
    //------------------
    // Enter a MAC address and IP address for your controller below.
    //byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x02, 0x8C }; // MAC

    // Initialize the Ethernet client library
    // with the IP address and port of the server
    // that you want to connect to (port 80 is default for HTTP):
    //EthernetClient client;
    char server[] = "maker.ifttt.com";

    // IFTTT strings
    char eventName[] = "hoge"; // Enter THIS event name for your recipe
    char secretKey[] = "hoge"; // Enter your secret key
    char s[128];
    int val1, val2, val3;

    //------------------
    // camere
    //------------------
    Camera camera(640, 480);
    RTC rtc;

    //------------------
    // SSL
    //------------------
    #if 0
    const char SSL_CA_PEM[] = "-----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";
    #endif
    #if 1
    const char SSL_CA_PEM[] = "-----BEGIN CERTIFICATE-----\n"
    "MIIFJjCCBA6gAwIBAgIIRJxbLJxAihkwDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNV\n"
    "BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRow\n"
    "GAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UECxMkaHR0cDovL2NlcnRz\n"
    "LmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQDEypHbyBEYWRkeSBTZWN1\n"
    "cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwHhcNMTYwNzI1MTc0NTM4WhcN\n"
    "MTgwOTI4MjIxMzU0WjA5MSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0\n"
    "ZWQxFDASBgNVBAMMCyouaWZ0dHQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\n"
    "MIIBCgKCAQEA8c1HRaRBFWER/SG2eXN++ykWLSoCyJ1xcxOXy15Bk57WXGLIBZHn\n"
    "Y8/SN+H1KuUcN40KC35NuGhaQP43cELcBSG/BiYTlFPIAizauX2K9VZh+zWhwkgq\n"
    "y8bJ5+yvZKH5gwqNL248Y4gjwaPeU8o2K1xrFYWSfM/7kFQFul2goWOA3HIn5qE3\n"
    "NUsgxF8uLh2BSuJKQF73WDvM1zE86MIU20M9+PEo/pV5orIPZX/54cAZgXnr+59t\n"
    "KPL14Rl9qqTiptMJC8y2CIqKC9zHBwIwX4uYPOquom1oqAuItWgqAJwtC3z5a20r\n"
    "wbI2eNbDPdbeweT/4RtCjTwKlQuHmzeLbwIDAQABo4IBtDCCAbAwDAYDVR0TAQH/\n"
    "BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH/BAQD\n"
    "AgWgMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Rp\n"
    "ZzJzMS0yNzMuY3JsMF0GA1UdIARWMFQwSAYLYIZIAYb9bQEHFwEwOTA3BggrBgEF\n"
    "BQcCARYraHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5\n"
    "LzAIBgZngQwBAgEwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8v\n"
    "b2NzcC5nb2RhZGR5LmNvbS8wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jZXJ0aWZpY2F0\n"
    "ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9nZGlnMi5jcnQwHwYDVR0jBBgwFoAU\n"
    "QMK9J47MNIMwojPX+2yz8LQsgM4wIQYDVR0RBBowGIILKi5pZnR0dC5jb22CCWlm\n"
    "dHR0LmNvbTAdBgNVHQ4EFgQUTv/uQ1GFjIW3WdcM3sn8fwtzoKQwDQYJKoZIhvcN\n"
    "AQELBQADggEBAA0L5s4DXdeyx2rsVKljSq7CsDUbl1w8AgyxO0o1JAdYoPwZOlUT\n"
    "Yl6xL+jYtlgdINAOi/SDsEXtTQSMNb6xrGN0AfPgCRlKEBSEIluiRQc97H/AOmwp\n"
    "6HVeMQm/BVdQtp+i9MauwKJclB7ljReS0vlqMfk5FnlD3AT9eT61HUGcBVuyR37p\n"
    "vbHP2yRg+5uZnw5BqUOL1Y0asuK0vqlizllpRxikq9kMKsR8KaesRyHkVX/FAC9u\n"
    "uxxYke0T3f+dGlGzxm/ly6g5gQVbjdZGeoNma8qXjJ9o5BhZuAll7SajSLiXWERu\n"
    "n4PtYxVA4KsvJNDabHea1zF3pGyKzv7HAUc=\n"
    "-----END CERTIFICATE-----\n"
    "-----BEGIN CERTIFICATE-----\n"
    "MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx\n"
    "EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT\n"
    "EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp\n"
    "ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3\n"
    "MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH\n"
    "EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE\n"
    "CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD\n"
    "EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi\n"
    "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD\n"
    "BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv\n"
    "K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e\n"
    "cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY\n"
    "pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n\n"
    "eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB\n"
    "AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV\n"
    "HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv\n"
    "9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v\n"
    "b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n\n"
    "b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG\n"
    "CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv\n"
    "MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz\n"
    "91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2\n"
    "RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi\n"
    "DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11\n"
    "GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x\n"
    "LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB\n"
    "-----END CERTIFICATE-----\n";
    #endif



    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());
    }

    /////////////////////////////////////////////////////
    // SUB
    /////////////////////////////////////////////////////
    //------------------
    // WiFi
    //------------------
    const char *sec2str(nsapi_security_t sec)
    {
    switch (sec) {
    case NSAPI_SECURITY_NONE:
    return "None";
    case NSAPI_SECURITY_WEP:
    return "WEP";
    case NSAPI_SECURITY_WPA:
    return "WPA";
    case NSAPI_SECURITY_WPA2:
    return "WPA2";
    case NSAPI_SECURITY_WPA_WPA2:
    return "WPA/WPA2";
    case NSAPI_SECURITY_UNKNOWN:
    default:
    return "Unknown";
    }
    }
    int scan_demo(WiFiInterface *wifi)
    {
    WiFiAccessPoint *ap;
    int count = 15; /* Limit number of network arbitrary to 15 */

    printf("Scan:\r\n");

    ap = new WiFiAccessPoint[count];
    count = wifi->scan(ap, count);
    for (int i = 0; i < count; i++)
    {
    printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\r\n", ap[i].get_ssid(),
    sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
    ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
    }
    printf("%d networks available.\r\n", count);

    delete[] ap;

    return count;
    }
    void https_post(NetworkInterface *net)
    {
    printf("\n----- HTTPS POST request -----\n");

    HttpsRequest* post_req = new HttpsRequest(net, SSL_CA_PEM, HTTP_POST, "maker.ifttt.com/.../{hoge}");
    post_req->set_debug(true);
    post_req->set_header("Content-Type", "application/json");

    const char body[] = "{\"value1\": \"1\",\"value2\": \"2\",\"value3\": \"3\"}";

    HttpResponse* post_res = post_req->send(body, strlen(body));
    if (!post_res) {
    printf("HttpRequest failed (error code %d)\n", post_req->get_error());
    }
    else{
    printf("\n----- HTTPS POST response -----\n");
    //dump_response(post_res);
    printf("\n----------\n");
    }

    delete post_req;
    }

    //------------------
    // camere
    //------------------
    void dateTime(uint16_t* date, uint16_t* time) {
    int year, mon, day, hour, min, sec, week;
    rtc.getDateTime(year, mon, day, hour, min, sec, week);
    *date = FAT_DATE(year, mon, day);
    *time = FAT_TIME(hour, min, sec);
    }

    /////////////////////////////////////////////////////
    // MAIN
    /////////////////////////////////////////////////////
    void setup() {

    Serial.begin(9600);
    printf("\r\n===================================\r\n");

    // I/O
    pinMode(PIN_SW0, INPUT);
    pinMode(PIN_SW1, INPUT);
    pinMode(PIN_LED_GREEN, OUTPUT);
    pinMode(PIN_LED_YELLOW, OUTPUT);
    pinMode(PIN_LED_ORANGE, OUTPUT);
    pinMode(PIN_LED_RED, OUTPUT);
    digitalWrite(PIN_LED_GREEN, LOW);
    digitalWrite(PIN_LED_YELLOW, LOW);
    digitalWrite(PIN_LED_ORANGE, LOW);
    digitalWrite(PIN_LED_RED, LOW);

    // wifi
    printf("WiFi example\r\n\r\n");

    while (scan_demo(&wifi) == 0);

    printf("\r\nConnecting...\r\n");
    int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
    if (ret != 0) {
    printf("\r\nConnection error\r\n");
    digitalWrite(PIN_LED_RED, HIGH);
    while(1);
    }
    else{
    digitalWrite(PIN_LED_YELLOW, HIGH);
    }

    printf("Success\r\n\r\n");
    printf("MAC: %s\r\n", wifi.get_mac_address());
    printf("IP: %s\r\n", wifi.get_ip_address());
    printf("Netmask: %s\r\n", wifi.get_netmask());
    printf("Gateway: %s\r\n", wifi.get_gateway());
    printf("RSSI: %d\r\n\r\n", wifi.get_rssi());

    //wifi.disconnect();

    printf("Done\r\n");

    // camere
    printf("start\r\n");

    camera.begin();
    rtc.begin();

    rtc.setDateTime(2018, 2, 21, 15, 30, 0);
    SdFile::dateTimeCallback(&dateTime);

    if (!SD.begin()) {
    printf("Card failed, or not present.\r\n");
    digitalWrite(PIN_LED_RED, HIGH);
    while (1)
    ;
    }
    else {
    printf("Card founded.\r\n");
    digitalWrite(PIN_LED_GREEN, HIGH);
    }
    printf("Click button0 to take a picture.\r\n");

    }
    void loop() {

    static int count = 0;

    //--------------
    // SW0
    //--------------
    if (digitalRead(PIN_SW0) == 0) {
    char filename[13];
    sprintf(filename, "image%d.jpg", count);
    File file = SD.open(filename, FILE_WRITE);

    if (file) {
    // seved jpeg
    digitalWrite(PIN_LED_ORANGE, HIGH);
    size_t size = camera.createJpeg();
    uint8_t* adr = camera.getJpegAdr();
    for (size_t i = 0; i < size; i++) {
    file.write(*adr);
    adr++;
    }
    file.close();
    printf("Saved a picture as ");
    printf("%s\r\n", filename);
    digitalWrite(PIN_LED_ORANGE, LOW);
    count++;
    }
    else {
    printf("Failed to open file.\r\n");
    digitalWrite(PIN_LED_RED, HIGH);
    while (1){
    ;
    }
    }
    }

    //--------------
    // SW1
    //--------------
    if (digitalRead(PIN_SW1) == 0) {
    digitalWrite(PIN_LED_ORANGE, HIGH);
    https_post(&wifi);
    digitalWrite(PIN_LED_ORANGE, LOW);
    }
    }
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • t-t
    0 t-t over 5 years ago in reply to Okamiya Yuuki
    t-tです。
    追記ですが、止まるのはどうやら数回に1度のようです。
    発生は処理後のLED消灯をせず、以降のキーも受付ません。

    >digitalWrite(PIN_LED_ORANGE, HIGH);
    >https_post(&wifi);
    >digitalWrite(PIN_LED_ORANGE, LOW);

    重ねてお願い致します。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Okamiya Yuuki
    0 Okamiya Yuuki over 5 years ago in reply to t-t
    t-tさん、プログラムの貼り付けありがとうございます。

    再現とJ-Linkでの確認をやってみます。大変恐れ入りますが来週26日(月)までお時間ください。いただいたプログラムをビルドできるところまで確認しました。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • t-t
    0 t-t over 5 years ago in reply to Okamiya Yuuki
    >Okamiyaさま

    ありがとうございます。
    私自身は特に急いでいませんのでご負担でない範囲で検証お願いします。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Okamiya Yuuki
    0 Okamiya Yuuki over 5 years ago in reply to t-t
    t-tさん、こちらで試したところ再現しました。
    J-LINKにつなげ、現象発生時にブレークさせたところ、システムエラー(CDAbtHandler)のところでwhile(1)してました。
    エラーフラグは「FSR_PERMISION_FAULT_SECOND 0x0d //MMU Fault - internal」でした。
    ちょっと社内有識者に聞いてみます。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Okamiya Yuuki
    0 Okamiya Yuuki over 4 years ago in reply to Okamiya Yuuki
    Mbed関係の有識者でも特定には難しかったため、追加調査をしているのですが、どうもカメラ、あるいはLCDに依存性がありそうです。
    camera.beginをしなければ、こちらでは現象は発生しませんでした。Mbed環境ではカメラというより、LCDの設定をすると別の現象として、POSTでUNKNOWNエラーが発生する現象が発生します。推測としては割込み処理なのではないかと考えているのですが、もう少し時間をかけて調査させてください。すみません。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • t-t
    0 t-t over 4 years ago in reply to Okamiya Yuuki
    >Okamiyaさま

    調査ありがとうございます。
    なにやら難しそうですね;

    とりあえずネットワークに繋げず色々やろうと思います。
    ですがLYCHEEとしてはカメラとWiFiはウリの部分だと思いますので
    どこかで解決していただけることを望みます。
    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
  • Okamiya Yuuki
    0 Okamiya Yuuki over 4 years ago in reply to t-t

    解決が遅くなり申し訳ありません。原因としてはCameraライブラリでの画像用バッファ領域のmallocについて、32バイトアラインにするための処理が間違ってました。

    (誤) uint32_t temp = (uint32_t)FrameBuffer_Video_pre & ~31u;

    (正) uint32_t temp = ((uint32_t)FrameBuffer_Video_pre + 31) & ~31u;

    Webコンパイラ、e2studioをお使いの場合は、以下を解凍後のCamera.cppを置き換えることで修正されます。Webコンパイラの場合、全てのオブジェクト(.o)をアーカイブしたgr_common.aを事前に削除してください。バージョンアップは、別件のESP32で固定IP設定+APモードにできない問題を解決してから行います。既にd-katoさんがオーバーライドするための処理を作成しているので、動作確認のみ行い早めのバージョンアップを行いたいと思います。

    Camera.zip

    • Cancel
    • Up 0 Down
    • Reply
    • Verify Answer
    • Cancel
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2022 Renesas Electronics Corporation. All rights reserved.