Ошибка в синтаксисе 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 является лишь частью строки, вам, возможно, просто нужно закрыть этот URL-адрес «ESCed»:

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