Страница 262 из 328

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:14 pm
zDimaBYz
serghei писал(а):
Сб июн 09, 2018 5:48 pm
Вот цырк - сам не могу скомпилировать 017 версию. Хотя работало (((.

To zDimaBYz
А что у Вас за первые три каталога? Хотя у меня бывает , что Дуя теряет карту. Но это уже от старости и грязи на контактах. Помогает передергивание SD в слоте.
Хотя с 017 версией плотно не работал.
Проблема решена... форматировал SD Card через SD Card Formatter и отключил питание опять включил заработало. Эта версия (ams_017.zip) предназначена для работы со средой Arduino 1.8.5

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:27 pm
Alex
А где обещанная в статье 0.18 версия?))
Ёлки-палки, благодарю, я почему-то был уверен, что АМС уже 0.18 версии :)

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:29 pm
eGorka
Alex писал(а):
Вс июн 10, 2018 3:56 pm
Для любителей Ардуино и АМС статья на Хабре «Таймеры и многозадачность на Ардуино»
Основной кейс при данном типе организации многозадачности — это создавать так называемый «неблокирующий» код, то есть код, который не использует функцию delay(), которая просто приостанавливает выполнение программы на заданное время.
И при этом использовать в AMS

Код: Выделить всё

#include <DallasTemperature.h>

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:29 pm
serghei
Конкретный пример многозадачности ( поморгать и покрутить ) , а самое главное - понятие " конечный автомат " и ООП на ардуино очень хорошо объяснены В этой статье.
Спасибо за пояснения!

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:44 pm
serghei
zDimaBYz писал(а):
Вс июн 10, 2018 4:14 pm
Эта версия (ams_017.zip) предназначена для работы со средой Arduino 1.8.5
Разобрался. Опять расположение библиотек поломал. Вернул все обратно.

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:48 pm
zDimaBYz
У меня очень интересный вопрос: как перенести любую переменю например из server_ajax.ino в arduino_mega_server.ino ?
Например у меня написано в server_ajax.ino

Код: Выделить всё

byte light1 = 0;

void setControl() {
 #ifdef LEDS_FEATURE
  if (StrContains(HTTP_req, "light1=1")) {
    light1 = 1;
    red(led1, 127);
  } 
И переменую light1 перенести в arduino_mega_server.ino

Код: Выделить всё

// Реле модуль подключен к цифровому выводу 22
int Relay = 22;

void setup() 
{                
  pinMode(Relay, OUTPUT);     
}

void loop() 
{
if (light1 = 1) {
  digitalWrite(Relay, LOW);   // реле включено
  }
else {   
  digitalWrite(Relay, HIGH);  // реле выключено
  }          
}

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 4:49 pm
Alex
И при этом использовать в AMS
#include DallasTemperature.h
:) Дело в том, что разработка идёт на принципах разумной достаточности — если далласы вписываются (в данном случае в мои) представления о разумной достаточности, то я использую эту библиотеку, если нет — использую другое решение или переписываю библиотеку.
а самое главное - понятие " конечный автомат
Куды уж без него. На данный момент АМС это и есть своего рода конечный автомат (собственно почему он и работает).

И, кстати, рекомендую, кто не слушал, послушать лекции Олега — ничего особо нового, но всё очень хорошо раскладывает по полочкам.

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 5:03 pm
serghei
To zDimaBYz
По поводу переменной light1 . Выкладывал код пощелкать реле с Web страницы. Он сейчас не доступен ((. Реализацию можно посмотреть в " Готовых примерах" на форуме.

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 5:06 pm
eGorka
Alex писал(а): Дело в том, что разработка идёт на принципах разумной достаточности — если далласы вписываются (в данном случае в мои) представления о разумной достаточности, то я использую эту библиотеку, если нет — использую другое решение или переписываю библиотеку.
Ваши представления
Основной кейс при данном типе организации многозадачности — это создавать так называемый «неблокирующий» код, то есть код, который не использует функцию delay(), которая просто приостанавливает выполнение программы на заданное время.
Разумная достаточность

Код: Выделить всё

#include <DallasTemperature.h>
Другими словами рассуждения о "неблокирующем» коде, так, пыль в глаза, разумнее использовать библиотеку, которая блокирует код на 750 мс.?
Без обид, но Вы второй человек который публично рассуждает о неблокирующем коде и при этом использует DallasTemperature.

Re: Arduino Mega Server

Добавлено: Вс июн 10, 2018 8:39 pm
Alex
разумнее использовать библиотеку, которая блокирует код на 750 мс.?
eGorka, ну какие 750 мс? И что это вообще за детский сад — штаны на лямках? Во всех моих проектах далласы работают на «второй скорости», сейчас не помню, но это кажется то ли 200, то ли 150 мс. Да, это ещё много, но ДЛЯ МОИХ КОНКРЕТНЫХ ЗАДАЧ это меня вполне устраивает.

И 200 мс раз в 5 минут при типовых задержках 10 мс — это более чем приемлемо. Надо будет меньше — будем думать.