Page 1 of 1

Does Line-Notify can use freertos to post message?

Posted: Wed Dec 22, 2021 9:38 am
by acer1204
I finish esp32 to post line message.
but if i pass a message, the main will dely 1~2s.
this is my program

Code: Select all

WiFiClientSecure lineClient;
String Linetoken = "--------------------------------------------";
char host[] = "notify-api.line.me";
bool isConnectLine = false;

void SendLineMessage()
{
    String mess = "AAAAA";
    if(Linetoken.length()>30)
    {
        if (lineClient.connect(host, 443))
        {
            Serial.println("Connect Line");
            isConnectLine = true;
        }else
        {
            Serial.println("Connect Line Fault");
            isConnectLine = false;
        }
        if(isConnectLine)
        {
            int LEN = mess.length();

            String url = "/api/notify";
            lineClient.println("POST " + url + " HTTP/1.1");
            lineClient.print("Host: "); lineClient.println(host);
            //client.println("Connection: close");

            lineClient.print("Authorization: Bearer "); lineClient.println(Linetoken);
            lineClient.println("Content-Type: application/x-www-form-urlencoded");
            lineClient.print("Content-Length: "); lineClient.println( String((LEN + 8)) );
            lineClient.println();

            lineClient.print("message="); lineClient.println(mess);
            lineClient.println();
            delay(500);
            String response = lineClient.readString();

            Serial.println(response);
        }
        lineClient.stop();
        lineClient.flush();
    }
}
if i use freertos to call the api.

lineTimer = xTimerCreate("lineTimer", pdMS_TO_TICKS(200), pdFALSE, (void *)0, reinterpret_cast<TimerCallbackFunction_t>(SendLineMessage));
xTimerStart(lineTimer , 0);

the esp32 will crash and reboot.

I change the configMINIMAL_STACK_SIZE to bigger like 2048, it alwasy not work.
Does anyone has some idel?