Грешка в http синтактична грешка в кода на arduino

Функцията по-долу описва набор от стойности от adruino shield и uno board с помощта на gps модул.

Получавам някои грешки, може би е в синтаксиса. Моля, игнорирайте реда, в който е посочена грешката. Не искам хората да се плашат, като видят голям код.

void send_HTTP(){

uint8_t answer=0;
// Initializes HTTP service
answer = sendATcommand("AT+HTTPINIT", "OK", 10000);
if (answer == 1)
{
    // Sets CID parameter
    answer = sendATcommand("AT+HTTPPARA=\"CID\",1", "OK", 5000);
    if (answer == 1)
    {
        // Sets url 
        sprintf(aux_str, "AT+HTTPPARA=\"URL\",\"http://%s/demo_sim908.php?", url);// line number :459
        Serial.print(aux_str);
        sprintf(frame, "visor=false&latitude=%s&longitude=%s&altitude=%s&time=%s&satellites=%s&speedOTG=%s&course=%s",       
        latitude, longitude, altitude, date, satellites, speedOTG, course);   // line number : 460
        Serial.print(frame);
        answer = sendATcommand("\"", "OK", 5000);
        if (answer == 1)
        {
            // Starts GET action
            answer = sendATcommand("AT+HTTPACTION=0", "+HTTPACTION:0,200", 30000);
            if (answer == 1)
            {

                Serial.println(F("Done!"));
            }
            else
            {
                Serial.println(F("Error getting url"));
            }

        }
        else
        {
            Serial.println(F("Error setting the url"));
        }
    }
    else
    {
        Serial.println(F("Error setting the CID"));
    }    
}
else
{
    Serial.println(F("Error initializating"));
}

sendATcommand("AT+HTTPTERM", "OK", 5000);

}

И получавам следните грешки.

Arduino: 1.7.5 (Windows 8.1), Платка: Arduino Uno

sketch_aug22e.ino:459:13: грешка: липсва завършващ знак

sketch_aug22e.ino: Във функцията 'void send_HTTP()':

sketch_aug22e.ino:460:34: грешка: очаква се ')' преди ';' жетон

Грешка при компилирането.

Този отчет ще има повече информация с активирано Показване на подробен изход по време на компилация във Файл › Предпочитания.


person satabios    schedule 22.08.2015    source източник
comment
Това е просто грешка на arduino, защото проблемът възникна поради наличието на двойни кавички   -  person satabios    schedule 31.08.2015
comment
Изобразих други опции, както е споменато по-долу, но и двете неща работят   -  person satabios    schedule 31.08.2015


Отговори (1)


Имате нечетен брой кавички в ред 459:

sprintf(aux_str, "AT+HTTPPARA=\"URL\",\"http://%s/demo_sim908.php?", url);

което обърква компилатора.

Трудно е да се каже, без да знаете какво точно искате да направите, но ако отпечатвате 3 отделни низа, тогава може да не искате да „ESC“ третия низ - напр.:

sprintf(aux_str, "AT+HTTPPARA=\"URL\"", "http://%s/demo_sim908.php?", url);

или алтернативно, ако просто се опитвате да отпечатате два низа и "запетая" преди http е само част от низа, тогава може просто да е трябвало да затворите този "ESCed" URL:

sprintf(aux_str, "AT+HTTPPARA=\"URL\",http://%s/demo_sim908.php?\", url);

person Mick    schedule 24.08.2015
comment
С кой коригиран ред все още идва грешката? Можете ли да покажете и точните съобщения за грешки на компилатора, нередактирани. - person Mick; 24.08.2015
comment
Опитах го по различен начин, като заместих по различен начин, като промених кавичките и получих отговора. благодаря все пак за вашата уважаема помощ - person satabios; 30.08.2015
comment
Предполагам, че използвах това вместо това: sprintf(aux_str, AT+HTTPPARA=\URL\,\http:/ /%s/demo_sim908.php?, url);: - person satabios; 31.08.2015