Я использую mbed LPC1768, хотя проблема не связана с оборудованием. Я пытаюсь использовать стандартный пример ниже, чтобы проверить HTTP-клиента на LPC1768. Я ничего не изменил в этом примере (я видел его в Интернете, но первоначально нашел в книге «Быстрое и эффективное проектирование встроенных систем»).
#include "mbed.h"#include "EthernetNetIf.h"#include "HTTPClient.h"
EthernetNetIf eth(
IpAddr(192,168,0,101),
IpAddr(255,255,255,0),
IpAddr(192,168,0,1),
IpAddr(192,168,0,1)
);
HTTPClient http;
HTTPText txt;
Serial pc (USBTX, USBRX);
int main() {
pc.printf("\r\nSetting up network connection...\n\r");
eth.setup();
pc.printf("\n\nSetup OK. Querying data...\r\n");
// attempt to access file 'mbedclienttest.txt' through the Internet...
HTTPResult r=http.get("http://www/embeddedacademic.com/mbed/mbedcllienttest.txt", &txt);
pc.printf("Result: \n\r\"%s\"\n\r", txt.gets());
}
Все это кажется довольно простым, однако я постоянно получаю следующие ошибки:
Error: No default constructor exists for class "HTTPText" in "main.cpp", Line: 13, Col: 11
Error: Class "HTTPText" has no member "gets" in "main.cpp", Line: 24, Col: 46
Я не знаю почему. Я имею в виду, я понимаю ошибки, но конструктор существует в HTTPText, и в файле HTTPText также есть метод gets, поэтому я действительно не понимаю, почему у меня здесь проблема. Файлы HTTPText.cpp / .h находятся в data
каталог в HTTPClient
, Я думаю, что вторая проблема вполне может пройти, если я знаю причину первой.
В окне кодирования, когда он говорит вам, где находятся функции, он указывает на правильное место, поэтому я не думаю, что это тот случай, когда есть два разных класса или что-то в этом роде.
Ни у кого, похоже, не было этой проблемы, поэтому я предполагаю, что это, скорее всего, связано с тем, что я сделал / не сделал. Возможно, это связано с тем, как среда разработки mbed обрабатывает вещи. Я относительно новичок в системе, поэтому все еще выясняю это.
В качестве дополнительного примечания, если по какой-то удивительной причине это имеет значение, мне пришлось включить в папку программы библиотеки EthernetInterface и mbed-rtos, поскольку одна из других библиотек, казалось, требовала определенной версии TCPSocketConnection и некоторых вещей lwip. ,
Я сделал что-то глупое? Похоже, что это работает для других людей без вопросов в онлайн-примерах. Любая помощь приветствуется.
Задача ещё не решена.