Метеостанция 2.1 + чайник начинающий
- Войдите на сайт для отправки комментариев
Пнд, 02/01/2017 - 16:01
Добрый день!
Всех с Новым 2017 годом!
Не пинайте сильно ногами.
Пробовал найти ветку для самых\свмых новичков - видимо плохо искал.
Ситуация следующая:
Метеостанция 2.1
Открыл скетч в arduino 1.6.13
Подключил все нужные библиотеки
Пытаюсь Проверить/Компилировать и получаю:
exit status 1
'DsCount' was not declared in this scope
Что я делаю не так?
При этом куча других скетчей, например Arduino CNC Shield прекрасно проверяются и компилируются
А эта вот метеостанция, во всех своих реинкарнациях, начиная с первой и по последнюю - вылетают с вышеуказанной ошибкой.
Такое ощущение, что какая то библиотека не подгрузилась. Но только какая? Смотрю те, что в скетче явно прописаны - таки они есть.
Может следует перенисти библиотеки в папку без русских букв и пробелов? И как тогда об этом сообщить arduino 1.6.13, что бы он больше не спотыкался?
В общем - хелп!
Что я делаю не так?
Берете чужие скетчи, смысла которых не понимаете. вместо того, чтобы учиться писать свои.
'DsCount' was not declared in this scope
Перенесите функцию DsCount (строки 3671-376) выше функции setup
Наверняка там ещё встрется аналогичные ошибки - переносите всё так, чтобы любая функция была объвлено ДО использования, а не после.
-----------------
Пожалуйста, если Вам нужна помощь, публикуйте скетч здесь. Мне, например, неудомно лазать по посторонним сайтам.
Ну что тут сказать...
К чеиу читать Чуковского, Чехова или Шоу? Надо же сразу самому писать!
Причем сразу. Нквзирая.
Я же сначала учился собирать чужой детекторный приемник, магнитофон, усилитель, а уже после свой аудиокомплекс, и админки.
1. Строки DsCount (строки 3671-376) - это за гранью добра и зла. Как не крути строки мимо нумкрации.
2. Вот интересно, скетч опубликован. Скетч - рабочий. Вопрос конечно идиотский, но, какого спрашивается рожна в рабочем скетче переставлять куски промеж собой, что бы заработало в новом компиляторе? Вопрос обратной совместимости не функционирует?
3. То,что переменная, фунция или процедура должна использоваться после того, как она должна бытьобъявлена - понятно и ежу. Вы объясните, почему у других этот скетч компилируется а у меня - нет.
Скетч живой. Рабочий. Многими заюзаный. Если бы нужно было что то поменять местами - давно бы уже поменяли. Использумые библиотеке все на месте. Вроде бы. Т.е. в интерфейсе они есть, а при компиляции могут и косяки вылезти. Про это и спрашиваю
Молодой человек, я нахожу Ваш тон хамским. Если Вам хочется знать почему компилируется у других, а у Вас нет, об этом можно спросить вежливо.
Я отвечу на Ваши вопросы, на этот раз. Но если Вам еще раз потребуется моя помощь, то только после извинений.
Итак, я не буду комментировать Вашу придирку к опечатке человека, который Вам помогает, которая, к тому же не особо влияет на понимание, т.к. номера строк там очевидны. Перейду сразу к сути дела.
Этот скетч был рабочим раньше. Он и сейчас будет работать, если Вы возьмёте старую версию IDE (например, 1.6.5).
Разработчики IDE сначала решили «позаботиться» о безграмотных чайниках и сами, перед передачей текста компилятору, собирали все заголовки функций и делали «предобъявление» в начале файла. Именно потому, всё и работало. Но из-за этого идиотизма, они столько всего сломали, и столько всего правильно написанного перестало работать, что потом они отказались от этого маразма и теперь писать надо как положено, а старые скетчи не работают.
Переставьте функции местами, скажите спасибо и впредь не хамите старшим.
Про это и спрашиваю
Так и ответили про это. Установите IDE версии 1.6.7 и ниже, очень приятно удивит обратная совместимость при компиляции. Ошибок не будет.
И что интересно сами себе противоречите. Так то правильно пишите сначала приемник, потом ....
А тут сразу бац и погодная станция, может попроще взять разобрать программу?
И опять же насчет читать Чуковского, Чехова или Шоу... Есть так назывемый Release Notes там как раз все написано, что и как менялось в IDE. И про ту самую обратную совместимость тоже.
Думаю ответил на все ваши вопросы. Так что вместо того чтобы сразу на коня и в атаку пробуйте что советуют, а потом уж - Скетч живой. Рабочий. Многими заюзаный и тд и тп.
Достопочтенный Сэр, примите искренние увкрения в глубочайшем к Вам почтении! Смиею заметить, однако, что тон диалога задали именно Вы. Т.о. извинения должны быть обоюдными. ИначИ мои секунданты свяжутся с Вами через ВаЦап! Выбор оружия за Вами. Рогатки с жованой бумагой или трубочки. А там ещё поглядим, кто из нас молодой человек!
По сути вопроса - тут даже и говорить грустно. То, что я 1989 писал на паскале - сейчас любым компилятором пролетает без ошибк. А то, что было написано всего пару лет назад - уже требует напильника.
Господа, это - не просто грустно, это какой то треш.
Нет, я и сейчас могу, как раньше, спаять из диодов, проводов, земли и опилок многие чудеса, но, брацци мои, если одна и та же схема, с одними и теми же копмаанентами, седня работает а завтра нет - эт уже о многом говорит.
Грустно, разбойники, грустно (с) Кто в теме - тот поймет.
ПыСы: Сказали бы просто - откатись на такую то версию. И будет счастье. А то наехали...На старого перешника - и рады :)
За сим примите искренние уверения в глубочайшем к Вам почтении.
zztop1967, к сожалению, Мир таков, как он есть, а не таков, каким бы нам хотелось его видеть.
И разработчики Ардуино, вероятно, талантливые маркетологи, но не очень хорошие программисты. ПОэтому они, создав хороший проект, понаделали в нем много глупостей, которые приходится исправлять, и из-за которых страдает совместимость с ранними версиями. Но это лучше того, что было раньше - несовместимость с С/С++. Так что если бы Вы не брали чужие скетчи, написанные вопреки правилам языка, а писали свои - с учетом этих правил, никакой несовместимости бы Вы не заметили.
PS. И позвольте выразить сомнение, что то, что Вы писали в 89 году на Паскале (кстати, на каком? Борланд 5.0 или GNU?) сегодня компилируется любым компилятором паскаля. Попытайтесь откомпилировать хотя бы в Дельфи. Или ABC. Крайне сомневаюсь, что у Вас что-то получится. Тем более, что во-первых, уже в 89 году существовало, минимум, две несовместимые между собой версии Паскаля, а во-второых, пример Паскаля не показателен, т.к. в 89 году он был вполне себе рабочим инструментом, а сегодння - давным давно заброшен и не развивается.
Тексты на латыни (мертвом языке) сегодня читаются точно так же, как 500 лет назад, но попытайтесь прочитать что-нибудь написанное 500 лет назад по-русски (на языке живом и развивающимся).
лучше код поправить и сюда выложить )))
PS как хорошо, что я на ASMе 1.27 писал ))) и в debug
Я же сначала учился собирать чужой детекторный приемник,
Эт ты молодец, не то, что некоторые умники! Скачают чужой скетч сразу на целую метеостанцию ....
Скетч живой. Рабочий. Многими заюзаный.
Так и ты юзай! И не слушай тут всяких умничающих! А то они, сцуко за " Вопрос обратной совместимости" ни хера не слышали, а туда же, мля, советы раздавать!
PS. И позвольте выразить сомнение, что то, что Вы писали в 89 году на Паскале (кстати, на каком? Борланд 5.0 или GNU?)
Эх! Взяли и под корень моё хвастовство рубанули! :)
Нет, не 89 конечно. Чуточку позже. Где то 91-92 спаял я себе синклер-профи. По тем временам не аппарат - а сказка! Разгонялся до 7 мГц!!! 1 Мб ОЗУ!!! Можно было цеплять HDD!!! Музыкальный сопроцессор! Порт центроникс! И, самое главное - Режим CP/M!!! :) А там были настоящие инструменты в виде турбопаскаля(или борланд?) 3.0, dBase и прочие радости. Я писал дома, записывал на дискету, тащил на работу, там конвертил KOI8- забыл какая кодировка Досовская, и продолжал писать на 386DX2 :)
Лет 5-7 назад из спортивного интереса взял фри паскаль - откомпилилось :) Библиотечки подсунул и откомпилилось :)
Сейчас конечно уже глаз не тот, навык программирования потускнел, но кое что еще помнится. Будем потрести стариной и разбираться с ардуиной. Тем более в чем проблема - мне уже подсказали :)
Огромнейшее спасибо! :)
А библиотеку BMP085 откуда скачали? У Меня правленый в 1.8.0 не компилируется с найденной на просторах библиотекой, поставид адафрутовскую, три строки добавил, компилируется, но проверить не на чем, из датчиков есть только DS18B20 )))
Правленный код
Все отлично откомпилировалось! Всего то и нужно было так описание функций поместить до тела программы :) Спасибо огромнейшее за подсказку! А то я грешил на что угодно, только не на сам скетч :)
К сожалению сейчас пока нету под рукой ethernet шилда. Проверить пока не могу. Но, думаю что заработает :)
А библиотеку BMP085 откуда скачали?
Кхм... Я брал библиотеки которые вместе со статьей лежали :)
http://student-proger.ru/2014/11/meteostanciya-2-1/
У автора несколько статей про свою метеостанцию. Поэтапное ее развитие. начиная с первой версии и до сегодняшней. И к каждой есть библиотеки.
В вышепреведённой статье в комментариях от читателя есть дополнение в виде еще какого то датчика. Сейчас не помню какого. Все равно пробовать пока неначем. Вот приедут железки с датчиками буду продолжать :)
Слона то я и не приметил...
Попробую на WeMos D1 переделать и залить
Признаю, ошибки указанного рода (объявление функций) в моих скетчах могут быть. Дело в том, что не привык я обновлять софт до последних версий. Разработчики Arduino IDE постоянно что-то меняют, и это уже надоело. Первый раз это произошло при переходе с версий 0.x на 1.0.x . Большая часть библиотек просто перестала работать. С тех пор и использую чаще всего версию 1.0.5, о чём и предупреждаю в статьях на сайте.