Ошибка типа переменной
- Войдите на сайт для отправки комментариев
Пнд, 04/02/2019 - 14:52
Дано:
Пример из стандартной библиотеки WiFi.h, в котором в самом начале объявляются две переменные:
// Please input the SSID and password of WiFi const char* ssid = " "; // const char* password = " "; //
Я, как честный Буратино, вставляю в кавычки имя своей Wi-Fi сети, а затем - PublickKey, пароль то бишь...
Пускаю на компиляцию - здрасьте-нате:
invalid conversion from 'const char*' to 'char*' [-fpermissive]
Указывают на строку с инициализацией Wi-Fi модуля:
WiFi.begin(ssid, password);
...и подчеркивают переменную 'password'.
Но мы же умные! Мы же знаем, что в библиотеке надо посмотреть, как именно объявлены типы данных для этой процедуры! Смотрю:
int WiFiClass::begin(char* ssid, const char *passphrase){}
И вот тут я уже понимаю, что ничего не понимаю! А разве в самом начале, еще перед всеми Void, не было человеческим языком С++ объявлено, что переменная 'password' имеет именно тот тип, который нужен процедуре?
Ну, скетч секретный, полный текст сообщения - секретный, а потом и причина проблемы - тоже секретна
Сказано выше, что пример из библиотеки WiFi.h. Или на свете существует множество разных библиотек WiFi.h для Arduino? Покажите мне, я только одну во всем интернете нашел. А cкетч для примера ньюбай может выбрать только один - WiFiclient.ino
Или на свете существует множество разных библиотек WiFi.h для Arduino? Покажите мне, я только одну во всем интернете нашел.
на этом ресурсе смотрели? и в этом месте
Или на свете существует множество разных библиотек WiFi.h для Arduino?
Или да.
Покажите мне, я только одну во всем интернете нашел.
Фига-се! А Вы хоть что-нибудь в Интернете умеете находить? Ну, хоть рекламу там или порнуху?
Вот, две: первая, вторая. И, уверяю Вас, есть ещё штук пять, как минимум.
А cкетч для примера ньюбай может выбрать только один - WiFiclient.ino
Я должен был об этом догадаться?
----------
В общем, я понял Ваш пост так: чтобы помочь Вам правильно, я должен был найти библиотеку, догадаться какой пример Вы взяли, угадать что Вы в нём поменяли, а потом решить Вашу проблему.
А Вы, часом, ухи не объелись?
(P.S. Если бы Вы, вместо того, чтобы читать мне нотации и учить как правильно помогать, просто выложили скетч и сообщение об ошибке, проблема уже была бы решена. Вот и думайте, как себя вести на форумах и не забывайте всем рассказывать какая я сволочь. Ну или о том, что я сам не знаю ответа, а здесь только щёки надуваю).
2Гриша:
На гитхабе в разделе issues упоминания такой проблемы нет. На Arduino.cc вообще не видно обсуждений - только сама библиотека лежит.
b_calavasov - компилятор у вас ругается не на переменную password. а на ssid - а вот у них как раз типы в библиотеке и в вашем скетче разные
А вообще - вместо того чтоб ругаться вбили бы текст ошибки в Гугль - я например нашел ответ в первой же ссылке
To b707:
Спасибо! Такой совет я тоже нашел (исправить тип для первой переменной), но тогда при компиляции одна ошибка меняется на другую:
ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
При этом, правда, скетч копмилируется, но WiFi все равно не работает должным образом: на Access Point даже не видно попыток подключения от платы. Т.е. WiFi все равно не стартует.
Я бы посыпал голову пеплом и постоянно каялся, но это все - стандартные примеры из совершенно стандартной библиотеки из совершенно стандартного средства разработки - Arduino IDE. Как так?
Я бы посыпал голову пеплом и постоянно каялся, но это все - стандартные примеры из совершенно стандартной библиотеки из совершенно стандартного средства разработки - Arduino IDE. Как так?
да очень просто - версия компилятора и его настройки от версии к версии меняются, а примеры в библиотеках остаются старые. Вот и текст этого примера стал несовместим с новыми версиями Ардуино ИДЕ.
Ошибка стандартная, решение ее есть в Гугле
b_calavasov, вы бы хоть сказали, что у Вас за wi-fi на ардуино? Только не говорите, что стандартный!
В природе существует WiFi Shield. Библиотека WiFi, имеющаяся на arduino.cc, рассчитана на работу с этим шилдом. И там же есть примеры для неё, и синтаксис там правильный.
А Ваш пример, по-моему от ESP, и он для другой библиотеки писан. Ошибок компилятор выдаёт далеко не одну - очевидно, что эти библиотека и скетч не родные! Или уж очень разных версий.
Я это всё к тому, что хоть может они все и делают практически одно и то же, но считать, что существует единственная "стандартная" библиотека WiFi - большое заблуждение.
Проблема решена. На не-скажу-какой-по-счету странице Гугла было найдено решение. Тривиально простое. Объявление этих двух несчастных переменных надо было написать по-другому:
После этого компилятор не выдает ни одной ошибки. Собственно об этом я только и спрашивал: как правильно объявить переменные.
2 kalapanga:
Нет, ошибка выдавалась одна и только та, которую я указал.
Да, это не стандартный шилд от ArduinoUno, а интегрированный в ESP32 модуль. Но к нему заявлена в поддержку та же самая библиотека 'WiFi.h by Arduino', более того, в самой библиотеке указана совместимость со следующими платформами: Atmel AVR, Atmel SAM, Espressif 32, Espressif 8266, Intel ARC32, Microchip PIC32, Nordic nRF51, Nordic nRF52, ST STM32, Teensy, Tl MSP430.
Проблема решена. На не-скажу-какой-по-счету странице Гугла было найдено решение.
ну молодец - нашел-таки. У меня этот ответ был на первой странице поиска. Хотя возможно я просто знал, что искать :)
2 b707:
Спасибо! Прямо на душе как-то теплее стало! Очень греет, что пока ты тратишь время на поиск, кто-то уже нашел, а теперь сидит довольный и ждет, когда же ты сам найдешь ответ... Это так приятно!
Вообще, при каждом обращении за помощью на этом форуме почему-то вспоминается старый анекдот... Уж не знаю даже и почему...
В один из моментов Развитого Социализма в СССР по торговому ведомству объявили "месячник заботы о покупателях", т.е. когда напрямую отказывать покупателям нельзя, и говорить "Товара нет!" тоже нельзя... а надо вести себя вежливо и обходительно.
И вот приходит супружеская пара в Универсам покупать женское пальто... А им продавец: "А с какой сумочкой вы носить пальто собираетесь? А с какими туфлями? А с какой прической? А шарфик/кофточка у вас какие? А шляпка? Будет гораздо лучше, если вы наденете все это, сделаете прическу и в этом всем к нам придете - мы сразу вам пальтишко-то и подберем!"
Удивленная пара разворачивается и идет к выходу, а им навстречу - мужик с унитазом в обнимку. На недоуменные взгляды и возгласы отвечает: "Да они уже и про цвет кафеля в моём туалете спрашивали, и ж$$у я им показывал... вот унитаз несу - может хоть теперь туалетную бумагу продадут!"
К чему этот анекдот вспоминается - даже и не знаю...
К тому, что вы форум с универсамом постоянно пытаетесь путать.
и жопу готовы показать, только-бы бумагу продали.
Вообще, при каждом обращении за помощью на этом форуме почему-то вспоминается старый анекдот... Уж не знаю даже и почему...
да все очень просто, я вот Вас не знаю, а вы меня... и попрошаек (халявшиков, студентов с курсовыми) на форуме поганой метлой мести - не перемести. Очень редко приходят люди с целью и приложенными усилиями для ее достижения, чаще чайки "дай...дай...дай"
форум создан помогать и делиться опытом, но никто не обещал, что первый же человек будет волшебником и решит все проблемы ТС. И некоторые вещи кажутся очевидными для ТС, и совсем не очевидными для постороннего человека.
Вообще, при каждом обращении за помощью на этом форуме
Опять начал учить как тебе правильно помогать? Один старожил тебя за это уже послал нах, добиваешься чтобы и все остальные послали?
как у них всех, блин, башню-то срывает от того, что не могут освоить "детский конструктор" Ардуино. Типа все должно быть легко и просто...
Только никому не приходит в голову. что этот "детский конструктор" - для программистов. А если ты не программист, то никаких скидок на "детство" - учиться придется по-взрослому.
Только никому не приходит в голову. что этот "детский конструктор" - для программистов. А если ты не программист, то никаких скидок на "детство" - учиться придется по-взрослому.
Да ну нахрен. На 99% обычные тривиальные задачи и программистом-математиком для них быть не нужно. Просто голову включи, распиши последовательность действий и переведи ее в полсотни операторов языка. Возможно будет коряво и неоптимально, но главное, работоспособно. А для хобби ничего иного и не нужно. Повысится скилл, появится желание, перепишешь красивее. ИМХО.
Да ну нахрен. На 99% обычные тривиальные задачи и программистом-математиком для них быть не нужно. Просто голову включи, распиши последовательность действий и переведи ее в полсотни операторов языка. Возможно будет коряво и неоптимально, но главное, работоспособно. А для хобби ничего иного и не нужно. Повысится скилл, появится желание, перепишешь красивее. ИМХО.
не совсем согласен, обычно из-за отсутствия знаний, новички ставят недостижимые задачи и наоборот - кто с опытом, частенько недооценивает своих возможностей... Я досих пор тока if , for применяю :))) и ничего, часы с термометром прекрасно это переносят, даже есть настройка даты и времени на 2х кнопках и это все в atmege8 с saa1064 на борту... и это я уже не первый год ХОББИ свое развиваю. А новички, частенько, сразу начинают сотовый телефон "изобретать" из "говна и палок" если и ошибаюсь, то не очень сильно...
А новички, частенько, сразу начинают сотовый телефон "изобретать" из "говна и палок" если и ошибаюсь, то не очень сильно...
Умные шлёмы это отдельная песня. Я про адекватномыслящих, а то b707 такие страсти понаписал, я ардуину чуть в окно не выкинул.))))
Вот так некоторые не в меру уравноешенные люди и губят прогресс :(((
Значит, какой-то пацанёнок её не найдёт, не заинтересуется "а что это?" и мир не получит нового Лебедева или Глушкова.
Вот так некоторые не в меру уравноешенные люди и губят прогресс :(((
Эт да, эт конешно, но сейчас бесполезно, снегу каждое утро - вагон. Весной обдумаю, как помочь прогрессу.)))
С другой стороны - может это паренек не станет злым гением и не уничтожит мир, а будет простым дворником.