Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт янв 12, 2016 8:24 am

но заметил тормоза при одновременном обращении с разных девайсов. Насколько я понимаю проблема в таймерах и сокетах сохранилась.
Дело в том, что в W5100 всего 4 аппаратных сокета и родная библиотека так работает с ними, что задержки интерфейса АМС достигают 40 секунд, что совершенно неприемлемо. Одновременно, она корректно обслуживает множественные единичные соединения.

Модифицированная библиотека захватывает все 4 сокета для интерфейса, но не оставляет их для других сетевых сервисов. Что тоже неприемлемо.

В качестве временного компромиссного варианта было принято решение захватывать 3 сокета, а 1 оставлять для всех прочих нужд. Свободный остаётся всего 1 и поэтому тормозят множественные обращения.

Это ненормальная ситуация и она требует решения и, видимо, для этого нужно переделать библиотеку Ethernet. Мне это пока не удалось.

В качестве ещё одной временной меры пробовал организовать динамический захват сокетов — и тоже безуспешно. С 3 на 4 переходит корректно, а с 4 на 3 — виснет.

Решение этой проблемы было и остаётся главной задачей.
alex946
Сообщения: 7
Зарегистрирован: Вт янв 05, 2016 9:11 am
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение alex946 » Вт янв 12, 2016 11:07 am

w5500

8 сокетов.
tto4ka
Сообщения: 5
Зарегистрирован: Пн янв 11, 2016 3:32 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение tto4ka » Вт янв 12, 2016 12:51 pm

Прочитал всю тему, Автору спасибо огромное за проект, проект стоящий, планирую использовать его в постройке умного дома, только конечное видение немного отличается от видения автора :) Но это так сказать нормально, каждый видит по своему, у меня возник вопрос, третий день ищу способ реализации, может вы кто нибудь подскажите.
В каждой комнате планирую по небольшому контроллеру с ЛСД экраном и всеми датчиками, на котором будет допустим температура, время, ну и управление светом, температурой в комнате или еще какой либо автоматикой причем само управление будет идти с AMS, и мне нужно как то передавать данные на АМС, и вот тут самая огромная проблема, это либо ethernet, либо rs485 либо еще что то. По локалке все понятно, из минусов относительная дороговизна 200р за ENC28J60, занятие 4 пар витой пары, отдельный коммутатор, из плюсов гибкость, огромный запас по пропускной способности, возможность обновлять скетчи по сети, по rs485 опять же избыточность только в другом, куча запросов от мастера к слейвам что тоже не очень нравится, из минусов сложный мастер, односторонняя инициация запросов, можно воспользоваться допустим флагом изменения что уменьшит количество запросов но увеличит число необходимых проводов с 2(3) до 3(4), из плюсов дешевизна, надежность теоретически, так же есть возможность заливать скетчи удаленно(теоретически). i2c не хватит по расстояниям на сколь я понял, вайфай использовать не хочется, больше варантов нет, может кто еще какие варианты посоветует?
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server

Сообщение pastry777 » Вт янв 12, 2016 2:35 pm

Alex писал(а):

Модифицированная библиотека захватывает все 4 сокета для интерфейса, но не оставляет их для других сетевых сервисов. Что тоже неприемлемо..
поясните пожалуйста,что за другие сетевые сервисы? я видел это так,пришел запрос,обработали его,отдали страничку или что там еще,все,ждем запрос,будь то на страничку или ajax,не важно...какие еще сервисы?
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт янв 12, 2016 3:20 pm

w5500

8 сокетов.
Само-собой. Но у народа на 99.9% w5100. Кстати w5500 уже официально поддерживается 0.14 версией, но у неё другая проблема.

http://hi-lab.ru/arduino-mega-server/de ... -ethernet2
может кто еще какие варианты посоветует?
Да моя концепция немного нестандартная :)
поясните пожалуйста,что за другие сетевые сервисы? я видел это так,пришел запрос,обработали его,отдали страничку или что там еще,все,ждем запрос,будь то на страничку или ajax,не важно...какие еще сервисы?
Это вопрос насколько интересный, настолько и мутный. Тут имеется в виду, что если мы работаем с 4 сокетами, то запросы на М уже не отправляются и сетевые функции, кроме интерфейса, уже не работают.

Начинаем работать с 3 сокетами - запросы на М уже работают.

Я имел в виду под сервисами любую сетевую работу, кроме интерфейса.

Если вы можете прояснить этот момент или решить эту проблему то благодарность всех пользователей АМС (и моя тоже) не будет иметь границ.
tto4ka
Сообщения: 5
Зарегистрирован: Пн янв 11, 2016 3:32 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение tto4ka » Вт янв 12, 2016 4:00 pm

Alex писал(а):
Да моя концепция немного нестандартная :)
Она более экономичная по ресурсам и более надежная так как все на одном контроллере, и поэтому тоже весьма оправдана, но я просто вижу совсем по другому, и теперь пытаюсь найти реализацию моего видения.
Пока что планирую заказать для rs485 платы, ну и 5500ка с ENC28J60 едет с ENC28J60 правда граблей тоже немало :) Да и сетевое решение тяжеловато опять таки.... хочется сделать что оптимальное :) И с запасом
alex946
Сообщения: 7
Зарегистрирован: Вт янв 05, 2016 9:11 am
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение alex946 » Вт янв 12, 2016 4:36 pm

Alex, это проблема выбранной архитектуры приложения.
Допустим, к "сокетам" подцепится два-три "интерфейса" - что будет? А если пять?
Я развлекался с telnet доступом на 5100 - да, оно работает, но... 4 коннекта и всё.
В этом смысле, вас спасёт только отказ от "сокетов" вообще.
Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Arduino Mega Server

Сообщение Xseon » Вт янв 12, 2016 5:46 pm

alex946 писал(а):Alex, это проблема выбранной архитектуры приложения.
Допустим, к "сокетам" подцепится два-три "интерфейса" - что будет? А если пять?
Я развлекался с telnet доступом на 5100 - да, оно работает, но... 4 коннекта и всё.
В этом смысле, вас спасёт только отказ от "сокетов" вообще.
Если использовать АМС в роли (отвязанного) самостоятельного контроллера, то естественно 4-х да и 8-ми соединений мало! Как правило для управления я бы использовал любой подручный девайс (IPad, Iphone, iMac и тд), коих в доме может быть довольно много.
Если гнать все через МД, то на данный момент я проблем не испытываю. Данные передаются на сервер стабильно, с сервера команды отправляются и обрабатываются АМС тоже без нареканий.
Конечно с момента аптайма прошло около суток и много чего еще может вылезти, но по сравнению с 0.13 просто космос!

to Alex
Если уклон больше делается на "самостоятельность" контроллера, то я бы на Вашем месте начал дополнять его "разумом", а еще лучше программируемым "разумом".
Я года два назад реализовывал 2-х стороннюю связь между Мегой и МД, то есть гарантированную доставку команд как из МД к Меге, так и обратно, Работало без сбоев.
Если кому нужно будет, смогу поделиться кодом для Меги.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт янв 12, 2016 7:38 pm

Она более экономичная по ресурсам и более надежная так как все на одном контроллере
Да нет же, не на одном контроллере, моё представление — М + десяток АМС. А то, что мы видим в дистрибутиве — это универсальная заготовка для пользователей, из которой каждый может выкинуть то, что ему не нужно и добавить то, что конкретно ему нужно. АМС это шаблон.
Alex, это проблема выбранной архитектуры приложения.
Допустим, к "сокетам" подцепится два-три "интерфейса" - что будет? А если пять?
Я развлекался с telnet доступом на 5100 - да, оно работает, но... 4 коннекта и всё.
В этом смысле, вас спасёт только отказ от "сокетов" вообще.
Ну, я не знаю, программа минимум выполнена, теперь ждём титаника мысли, который наведёт порядок с библиотекой и сетевой работой.
to Alex
Если уклон больше делается на "самостоятельность" контроллера, то я бы на Вашем месте начал дополнять его "разумом", а еще лучше программируемым "разумом".
Всё ещё даже не начиналось. Мы стоим в лагере у подножья горы Эверест. И от того, что ещё можно реализовать просто дух захватывает. Просто на всё нужно время. Мне лично интересно организовать распределённую логику и «интеллект» на многих контроллерах в сети и много чего ещё. Например, перепрошивку контроллеров на лету и реконфигурацию умного дома на железном уровне тоже в реальном времени и т. д.

Кстати, никакого уклона на "самостоятельность" не делается, см. первый ответ. "Самостоятельные" это совсем другая песня и другой класс устройств на основе АМС, тоже очень интересные.
tto4ka
Сообщения: 5
Зарегистрирован: Пн янв 11, 2016 3:32 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение tto4ka » Ср янв 13, 2016 12:55 am

Да нет же, не на одном контроллере, моё представление — М + десяток АМС. А то, что мы видим в дистрибутиве — это универсальная заготовка для пользователей, из которой каждый может выкинуть то, что ему не нужно и добавить то, что конкретно ему нужно. АМС это шаблон.
М в роли кластер менеджера? Или АМС сами будут общаться по сети? Просто имхо сеть не самый легкий в плане ресурсов вид связи, я кстати решил проблему связи между своми модулями, почему то считал что CAN будет дорог, но присмотревшись понял что простой CAN конвертор стоит 160р, а в дуо CAN вообще есть только пока по API не реализован, и все плюшки RS485 есть и всех минусов RS485 нет :) и скорость обмена до 125кб/с на конверторе за 160р чего вообще за глаза, и опрашивать никого не нужно, и кому когда слать сами разбираются, в общем заказываю себе данные щиты, буду ковырять CAN
Ответить