Страница 4 из 91

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 01 фев 2014, 15:55
Dron
Andrey_B писал(а):В текущий момент максимальный размер поля Action - 11 байт, но, думаю, его можно немного увеличить.
ИМХО, с введением пауз это стало насущной необходимостью
Andrey_B писал(а):Наиболее ценный ресурс МК в данной конфигурации - оперативная память ... С другой стороны, команды отправляет умное устройство, которое и само может выдерживать паузы и выдавать команды порциями.
опять же ИМХО тогда ну её нафиг. действительно, сервер легко проследит когда и что включать.
Andrey_B писал(а):Команду отмены выполнения сценария можно предусмотреть.
было бы классно...

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 02 фев 2014, 13:34
x13dev
Andrey_B писал(а): А что если во время выполнения команды поступит вторая, а потом третья? Ведь все этим команды могут работать с разными портами. Сохранять все команды в памяти невозможно - ее для этих целей просто нет. Прерывать выполнение запущенной? Это может привести к очень нехорошим результатам, например, "подвисание" звука дверного звонка.
В одном проекте использовал следующий способ:
есть очередь команд
если приходит команда, она пишется как SET <куда> <значение> перед первым встретившимся WAIT
если приходит пауза, она пишется перед WAIT позже как WAIT <текущее время + пауза>
последующая команда пишется следом.

на команду хватит 2-3 байт.

пример:
было:

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

SET 3, 1
WAIT 910
SET 3, 0
добавляем 7:1;p10;7:0
текущее время 850

стало:

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

SET 3, 1
SET 7, 1
WAIT 860
SET 7, 0
WAIT 910
SET 3, 0
Соответственно 1я команда выполняется и удаляется из очереди.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 06 фев 2014, 11:13
Andrey_B
http://ab-log.ru/files/File/ip_manager3 ... _beta3.zip
http://ab-log.ru/files/File/ip_manager3 ... a3_hex.zip

Нельзя просто так взять и увеличить поле Action...
Так вот. Поле NetAction оптимизировано. IP-адрес записывается в энергонезависимую память отдельно и занимает 4 байта, остальная часть отдельно - 12 байт. Этот ход позволил высвободить целых 304 байта EEPROM. Строго говоря, длина URL уменьшена на 7 байт. Но фактически мало что изменилось, так как в реальности все упирается в размер буфера для парсинга GET-запроса (ведь всякие "/", ":" и прочие радости в GET-запросе занимают 3 байта... Размер буфера пришлось увеличить на 6 байт) Это все легко исправить, когда у нас будет немного больше памяти.

Поле Action увеличено до 23 байт.
Это позволяет записать в него команду типа
7:1;p50;7:0;8:1;p50;8:0
аж с двумя паузами (в примере по 5 секунд)

Да, поскольку структура данных в EEPROM меняется, если прошивать устройство через megad-cfg.php, то необходимо добавить ключ --ee (это стирание EEPROM).
Естественно, все настройки необходимо будет внести заново.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 06 фев 2014, 14:13
vtec
Andrey_B, пропиши в megad-cfg.php тэг <?php

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 07 фев 2014, 12:01
Dron
Andrey_B писал(а):Так вот. Поле NetAction оптимизировано.
...
Поле Action увеличено до 23 байт.
Очередная благодарность!

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 07 фев 2014, 15:04
Sergey
А ключ --ee точно работает? А то у меня длительное нажатие перестало работать, думаю что дело в неочищенном еепроме. Пока откатился на Б1

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 07 фев 2014, 16:57
Andrey_B
Sergey, да, только нужно скачать последнюю версию megad-cfg с сайта.
http://ab-log.ru/files/File/megad-cfg/megad-cfg.zip

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 07 фев 2014, 20:38
Sergey
Спасибо, так все заработало!
Есть вариант перед программирование считывать конфигурацию, а перед рестартом записать....
У меня, как писал выше, сеть 172.16.... После записи с ключем --ее, прибор потерялся .....

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 09:16
vtec
Подскажите, что делать.
Сборка состоит из arduino uno и enc. Программатор LPT порт.
Обновился на последнюю прошивку 3.14 beta. Все работало.
Решил сделать загрузчик.
Установил фьюзы как написал Андрей: sudo avrdude -v -c stk200 -p m328p -P /dev/parport0 -U lfuse:w:0x60:m -U hfuse:w:0xD8:m
Загрузил bootloader: sudo avrdude -v -c stk200 -p m328p -P /dev/parport0 -U flash:w:/tmp/megad-boot.hex
Решил попробовать обновить через сеть, а устройство не отвечает.
Ну думаю ладно попробую обновить прошивку вручную до beta2.
А фиг вам, устройство не отвечает даже через программатор.

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

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
Решил, что может быть последовательность нарушена была.
Была у меня еще одна atmega. Теперь в ней не было прошивки только по умолчанию все от ардуино.
Прошил фьюзы, бут и все снова не могу достучаться.
Подскажите, можно что либо сделать? Или может надо полноценный программатор заказывать? Хорошо что в dip корпусе, можно будет заменить atmeg'у

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 10:26
Andrey_B
vtec, мои рекомендации по части fuse-bits относились к референс-дизайну устройства или к готовым модулям MegaD.
Arduino Uno имеет настройку lfuse по умолчанию 'FF'. Ее не надо было трогать. Вам нужно было изменить только hfuse.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 16:10
vtec
А с этими atmega'ми, что нибудь сделать можно?

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 19:55
Urbas81
Andrey_B писал(а):http://ab-log.ru/files/File/ip_manager3 ... _beta3.zip
http://ab-log.ru/files/File/ip_manager3 ... a3_hex.zip

Нельзя просто так взять и увеличить поле Action...
Так вот. Поле NetAction оптимизировано. IP-адрес записывается в энергонезависимую память отдельно и занимает 4 байта, остальная часть отдельно - 12 байт. Этот ход позволил высвободить целых 304 байта EEPROM. Строго говоря, длина URL уменьшена на 7 байт. Но фактически мало что изменилось, так как в реальности все упирается в размер буфера для парсинга GET-запроса (ведь всякие "/", ":" и прочие радости в GET-запросе занимают 3 байта... Размер буфера пришлось увеличить на 6 байт) Это все легко исправить, когда у нас будет немного больше памяти.

Поле Action увеличено до 23 байт.
Это позволяет записать в него команду типа
7:1;p50;7:0;8:1;p50;8:0
аж с двумя паузами (в примере по 5 секунд)

Да, поскольку структура данных в EEPROM меняется, если прошивать устройство через megad-cfg.php, то необходимо добавить ключ --ee (это стирание EEPROM).
Естественно, все настройки необходимо будет внести заново.
Залил прошивку, и в свойствах входа при прописывании netaction появляются цифры 0.0.255.255/ вместо имени скрипта

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 22:08
Andrey_B
Urbas81, укажите пожалуйста точно. Что именно вы вносите в поле NetAction

vtec, контроллеры абсолютно исправны, просто для вашей схемы неправильно выставлено тактирование. Если я правильно понимаю вашу ситуацию, перепрограммировать фьюзы можно: в другом устройстве, переделав ваше, с помощью параллельного программатора.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 22:31
Urbas81
Andrey_B писал(а):Urbas81, укажите пожалуйста точно. Что именно вы вносите в поле NetAction

vtec, контроллеры абсолютно исправны, просто для вашей схемы неправильно выставлено тактирование. Если я правильно понимаю вашу ситуацию, перепрограммировать фьюзы можно: в другом устройстве, переделав ваше, с помощью параллельного программатора.
вносил megad.php

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 22:37
Andrey_B
Urbas81, адрес сервера указывается в основных настройках "net conf" в соответствующих полях (отдельно ip-адрес, отдельно имя скрипта)
NetAction - поле, где вносится ПОЛНЫЙ URL вместе с IP-адресом. Например, 192.168.0.1/script.php
NetAction не предназначен для отправки сообщений на основной сервер. Подробнее читайте в статье описания, описывающей общую идеологию устройства.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 08 фев 2014, 22:51
Urbas81
Andrey_B писал(а):Urbas81, адрес сервера указывается в основных настройках "net conf" в соответствующих полях (отдельно ip-адрес, отдельно имя скрипта)
NetAction - поле, где вносится ПОЛНЫЙ URL вместе с IP-адресом. Например, 192.168.0.1/script.php
NetAction не предназначен для отправки сообщений на основной сервер. Подробнее читайте в статье описания, описывающей общую идеологию устройства.
Странно, у меня 2 вхда работают так, прописан megad.php, и на сервере уже идет обработка, правда на версии 3.08b1 или это не правильно и если в основных настройках прописан megad.php то все входа через него будут обрабатываться, а в netAction прописывается просто любой скрипт? Наверное я упустил этот момент, поэтому у меня и были странные сообщения на сервере, сейчас поправлю.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 09 фев 2014, 09:00
Andrey_B
Urbas81, в случае прописанного сервера в сетевых настройках сообщения отправляются при срабатывании любого входа. Ответ сервера в этом случае принимается и выполняется.
NetAction связан с конкретным входом, URL вызывается именно в том виде, в котором записан (то есть параметры не генерируются автоматически) после того, как было отправлено сообщение основному серверу (если указан). Ответ, который получен с указанного в поле NetAction URL не выполняется.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 09 фев 2014, 13:13
vtec
Andrey_B писал(а):NetAction - поле, где вносится ПОЛНЫЙ URL вместе с IP-адресом. Например, 192.168.0.1/script.php
В описании желательно прописать, что в поле NetAction указывать без http://, т.к. только методом тыка понял .

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 10 фев 2014, 11:23
Илья Карман
Добрый День, всем.
Поправьте меня если я не правильно понимаю алгоритм работы MegaD-328, т.е. при срабатывании какого либо входа Мега отправляет сообщение на сервер об выполнении указанного, в поле Script, скрипта.
И еще вопрос такого характера. Как можно определить с какой из Мег(если не одна) пришло сообщение об срабатывании какого либо входа. Как я понял через запрос GET можно узнать параметры pt, m, at, а мне вроде как надо eip.
Заранее благодарен за ответ.

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Добавлено: 10 фев 2014, 11:35
Urbas81
Илья Карман писал(а):Добрый День, всем.
Поправьте меня если я не правильно понимаю алгоритм работы MegaD-328, т.е. при срабатывании какого либо входа Мега отправляет сообщение на сервер об выполнении указанного, в поле Script, скрипта.
И еще вопрос такого характера. Как можно определить с какой из Мег(если не одна) пришло сообщение об срабатывании какого либо входа. Как я понял через запрос GET можно узнать параметры pt, m, at, а мне вроде как надо eip.
Заранее благодарен за ответ.
Так для другой меги укажите другой скрипт, и та обрабатывайте входа.