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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
smorigo
Сообщения: 42
Зарегистрирован: 28 май 2014, 23:30
Откуда: Витебск

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

Сообщение smorigo » 23 окт 2015, 11:13

Andrey_B , почему иногда при обращении к megaD 192.168.0.14/sec выдаётся DONE ?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 23 окт 2015, 11:22

smorigo, никогда такого не наблюдал на своих устройствах.
Уточните.
Самосборное устройство или заводское? Если заводское, то какая аппаратная версия? Какая версия прошивки?
При каких обстоятельствах можно наблюдать проблему? Есть ли какие-то закономерности? Как можно воспроизвести ее.
На всякий случай, попробуйте другой браузер (в том смысле - нет ли проблемы с кешированием).

smorigo
Сообщения: 42
Зарегистрирован: 28 май 2014, 23:30
Откуда: Витебск

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

Сообщение smorigo » 23 окт 2015, 17:30

Устройство самосборное , использую как стенд для проверки : mega328 в DIPе + китайский модуль ENC28J60 . Браузер не имеет значения .
Как это воспроизвести , нужно подумать . Все другие мои megaDы на даче . (Не знаю есть ли проблема на них ).
У меня это происходит при обработке скрипта ( порт IN P&R) , который меняет значение ШИМа порта .
Если это происходит , то имеем :
192.168.0.14/ - выдаёт как и положено Unauthorized
192.168.0.14/sec - выдаётся Done
192.168.0.14/sec/?pt=12&cmd=get выдаёт страницу настройки порта , а не значение . (и так для любого порта .)
Естественно помогает reset

smorigo
Сообщения: 42
Зарегистрирован: 28 май 2014, 23:30
Откуда: Витебск

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

Сообщение smorigo » 23 окт 2015, 17:33

В догонку . Версия последняя 3.36b4. Win7 , Apache , PHP ...

Prokol
Сообщения: 197
Зарегистрирован: 25 янв 2015, 21:43

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

Сообщение Prokol » 27 окт 2015, 19:22

Andrey_B, недавно приобрел у Вас второе устройство. Но заметил на нем неприятный глюк, когда начал подключать кнопки. На функционал он не влияет, но на зрительное ощущение не очень приятно. При замыкании контактов, что на Р2, что на Р3 загораются одновременно два светодиода Р2 и Р3. Это можно как-то решить самому?

GandalvAB
Сообщения: 110
Зарегистрирован: 01 сен 2013, 13:36
Откуда: Тюмень
Контактная информация:

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

Сообщение GandalvAB » 27 окт 2015, 19:40

Prokol писал(а):Andrey_B, недавно приобрел у Вас второе устройство. Но заметил на нем неприятный глюк, когда начал подключать кнопки. На функционал он не влияет, но на зрительное ощущение не очень приятно. При замыкании контактов, что на Р2, что на Р3 загораются одновременно два светодиода Р2 и Р3. Это можно как-то решить самому?
Я не Андрей, но там скорее всего сопля между дорожками висит, нужно внимательно посмотреть и если есть то иголочкой аккуратно убрать, либо паяльником.
Все будет збс!

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 28 окт 2015, 18:17

Prokol, уточните, если коротким проводком, перемычкой замкнуть один из портов P2 или P3, то всегда загораются оба светодиода?
Но при этом срабатывает (отправляются данные на сервер или выполняется сценарий по умолчанию) только замкнутый порт или все же оба? Это важно, для понимания где именно лежит проблема.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 28 окт 2015, 18:20

GandalvAB писал(а):Давно тут не появлялся. А что за функционал нужен для проги прошивальщика? Я скоро буду для своих модулей на атмега 2560 писать могу и для 328х написать потренироваться. Если напишете какие пакеты и куда слать какие есть опции и т.д.
Функциональность нужна полностью аналогичная megad-cfg.php
Все опции и функции расписаны здесь.

GandalvAB
Сообщения: 110
Зарегистрирован: 01 сен 2013, 13:36
Откуда: Тюмень
Контактная информация:

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

Сообщение GandalvAB » 28 окт 2015, 21:19

Andrey_B писал(а): Функциональность нужна полностью аналогичная megad-cfg.php
Все опции и функции расписаны здесь.
Ну и вопрос в догонку, нужен гуи или консольное приложение?
Все будет збс!

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 28 окт 2015, 22:02

GandalvAB, безусловно нужен GUI.
megad-cfg.php в консоли можно запустить и в Windows, но для начинающих (да и не только) пользователей было бы, думаю, удобнее графическое приложение.
И ведь приложение такое было почти написано пользователем VladF, но он неожиданно пропал и его MDProg остался недоработанным, хотя базовые функции его программа выполняла.

Prokol
Сообщения: 197
Зарегистрирован: 25 янв 2015, 21:43

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

Сообщение Prokol » 29 окт 2015, 15:04

Andrey_B писал(а):Prokol, уточните, если коротким проводком, перемычкой замкнуть один из портов P2 или P3, то всегда загораются оба светодиода?
Но при этом срабатывает (отправляются данные на сервер или выполняется сценарий по умолчанию) только замкнутый порт или все же оба? Это важно, для понимания где именно лежит проблема.
Да при любом замыкании либо Р2, либо Р3 всегда загораются оба светодиода одновременно Р2 и Р3. Команды все выполняются как надо, т.е. отдельно на Р2 и Р3.

gofrom
Сообщения: 67
Зарегистрирован: 09 дек 2011, 00:58
Откуда: Ростов-на-Дону

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

Сообщение gofrom » 29 окт 2015, 18:44

Андрей, не хотите изменить результаты запросов к меге на что-то более удобное для использования в javascript-e, желательно в JSON-е?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 29 окт 2015, 19:23

gofrom, не совсем понял. Вы хотите, чтобы микроконтроллер парсил JSON?
Во-первых, это займет больше памяти, во-вторых, формирование таких запросов сложнее.
В данный же момент я могу отправить команду контроллеру не только через браузер, но и, например, написав скрипт и использовав wget или curl для отправки команды. А с JSON это будет сложно и неудобно.

gofrom
Сообщения: 67
Зарегистрирован: 09 дек 2011, 00:58
Откуда: Ростов-на-Дону

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

Сообщение gofrom » 29 окт 2015, 19:49

Andrey_B писал(а):gofrom, не совсем понял. Вы хотите, чтобы микроконтроллер парсил JSON?
Наоборот, я не хочу парсить HTML). Запросы оставить как есть, исправить только результаты запросов. Например ON или OFF заменить на что-то типа '{"status": 1}' или '{"status": 0}'
Все порты: '[{"port": 7, "status": 1},{"port": 8, "status": 0} ...]'

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

Также прошу добавить в прошивку запрос номера версии.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 29 окт 2015, 22:41

gofrom, я не вижу в этом ничего, кроме усложнения.
Вместо того, чтобы использовать в условии (даже в обычном консольном скрипте) ON или OFF, и это, кстати, не HTML, вы предлагаете включать в программу в большинстве случаев дополнительные функции/библиотеки для парсинга JSON.
Кроме всего прочего, реализация отдачи ответа в этом духе опять же займет дополнительно память микроконтроллера.
Но самое главное, написано масса кода именно под такой ответ устройства. Вы же понимаете, что такие вещи нельзя трогать без крайней на то необходимости.
XML, JSON - штуки, которые сегодня модные, а завтра нет. ON/OFF - вне времени.

Другими словами, ваше предложение не даст устройству никакой новой функциональности, но: а) израсходует память б) усложнит в большинстве случаев реализацию на сервере в) поставит в трудное положение существующее ПО, работающее с устройствами.

По поводу запроса номера версии.
Регулярные выражения сейчас есть почти во всех языках программирования. Запрос номера версии - это маленький кусочек кода, обрабатывающий первую страницу. Если в этом есть большая необходимость.
Это ничего не стоит серверу. Зато экономит ценные байты в микроконтроллере.

GandalvAB
Сообщения: 110
Зарегистрирован: 01 сен 2013, 13:36
Откуда: Тюмень
Контактная информация:

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

Сообщение GandalvAB » 30 окт 2015, 10:54

Начало положено MegaFlasher

Пока умеет искать устройства в сети. Скиньте исходник загрузчика, а то разбираться в php-шном скрипте пипец неудобно с учетом того что php я не знаю.

И еще, какой запрос нужно отправить меге чтобы перезагрузить ее в режим загрузчика?
Смена IP не через хттп запрос а через UDP ? Формат пакета 0xAA 0 4 а дальше пароль старыйip новыйip ?
Последний раз редактировалось GandalvAB 30 окт 2015, 12:56, всего редактировалось 1 раз.
Все будет збс!

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 30 окт 2015, 11:08

Prokol,
К такому результату приведёт замыкание между:
- контактами 8 и 10 разъёма ХР1 на плате LED или печатными проводниками от них до светодиодов HL3, HL4;
- контактами 8 и 10 разъёма ХР2 на основной плате или проводниками от них к 1 ноге оптронов DA5 и DA6;
- между жилками 8 и 10 в ленточном кабеле и его разъёмах.

Вы можете осмотреть платы и шлейф на предмет описанных проблем. Если решить проблему не удастся, то придется выслать модуль мне для устранения проблемы или замены.

gofrom
Сообщения: 67
Зарегистрирован: 09 дек 2011, 00:58
Откуда: Ростов-на-Дону

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

Сообщение gofrom » 30 окт 2015, 13:50

Andrey_B писал(а):Вместо того, чтобы использовать в условии (даже в обычном консольном скрипте) ON или OFF, и это, кстати, не HTML, вы предлагаете включать в программу в большинстве случаев дополнительные функции/библиотеки для парсинга JSON.
Библиотека для парсинга не нужна! Наоборот использование памяти уменьшиться. Мега не будет рисовать html интерфейс.
Например этот код перестанет быть нужным:

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

const PROGMEM char html_form[] = "<form action=/";
const PROGMEM char html_submit[] = "<br><input type=submit value=Save></form>";
const PROGMEM char html_input_hidden[] = "<input type=hidden name=";
const PROGMEM char html_checked[] = " checked";
const PROGMEM char html_cl[] = ">";
const PROGMEM char html_checked_cl[] = " checked>";
const PROGMEM char html_ahref[] = "<a href=/";
const PROGMEM char html_br[] = "<br>";
const PROGMEM char html_cbr[] = "><br>";
const PROGMEM char html_scbr[] = "\"><br>";
Вместо этого добавятся константы спец символов = ", {, }, [, ] и набор ключевых слов типа: status, port и тд большинство которых и так присутствуют в коде.

Andrey_B писал(а):Кроме всего прочего, реализация отдачи ответа в этом духе опять же займет дополнительно память микроконтроллера.
Уверен будет если не меньше то не больше точно, так как построение строки будет полностью ссылаться на константы.
Andrey_B писал(а):Но самое главное, написано масса кода именно под такой ответ устройства. Вы же понимаете, что такие вещи нельзя трогать без крайней на то необходимости.
Ну мне тоже придется переписать модуль взаимодействующий с мегами. Также мне придется переделать приложение под android, хотя оно получилось достаточно сложным, так как можно его настраивать всем любителям Мегадевайса).
Снимок-4-1.png
Снимок-4-1.png (87.6 КБ) 6986 просмотров
Снимок-5-1.png
Снимок-5-1.png (93.85 КБ) 6986 просмотров
Снимок-6-1.png
Снимок-6-1.png (111.07 КБ) 6986 просмотров
Andrey_B писал(а):XML, JSON - штуки, которые сегодня модные, а завтра нет. ON/OFF - вне времени.
Вы недооцениваете значение JSON, скорее будет не актуальным Мегадевайс. JSON встроен в javascript, по умолчанию встроены функции в PHP

Andrey_B писал(а):Другими словами, ваше предложение не даст устройству никакой новой функциональности, но: а) израсходует память б) усложнит в большинстве случаев реализацию на сервере в) поставит в трудное положение существующее ПО, работающее с устройствами.
  1. это спорно
  2. в разы упростит http://php.net/manual/en/function.json-decode.php
  3. переделки будут не значительные, существующее ПО пострадает только после перепрошивки устройства
Добавиться функциональность как простота реализации клиентов к меге. Даже если вы в будущем замените микроконтроллер на 2560, гораздо проще сохранить работоспособность старого ПО и обеспечивать поддержку разных версий.
Будет сделан и выложен общественности отдельный файл html который будет использовать возможности HTML5, например база данных, которая позволит добавить поддержку нескольких мегадевайсов, внешний вид "странички" будет похож на программу за счет выполнения асинхронных запросов, легко можно будет сменить оформление.
Andrey_B писал(а):По поводу запроса номера версии.
Регулярные выражения сейчас есть почти во всех языках программирования. Запрос номера версии - это маленький кусочек кода, обрабатывающий первую страницу. Если в этом есть большая необходимость.
Это ничего не стоит серверу. Зато экономит ценные байты в микроконтроллере.
Ну вот например мне для поддержки старых версий прошивок и новых в андроидном приложении пришлось делать костыль в коде приложения. Я наивно думал, что код будет работать в новых версиях, но после перепрошивки "Done" сделал свое черное дело. В итоге думаю не поддерживать старые так как железки я покупал у вас и лишней нет, а постоянно перепрошиваться желания нет.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 30 окт 2015, 16:02

gofrom писал(а):Библиотека для парсинга не нужна! Наоборот использование памяти уменьшиться. Мега не будет рисовать html интерфейс.
"Мега" будет рисовать Web-интерфейс в любом случае. Это необходимо для пользователя. Такова философия проекта. Были попытки отказаться от использования Web-интерфейса. Чем они закончились я не знаю.
Библиотека для парсинга нужна там, где она не встроена, а это много где. Не все ограничивается Java или PHP. Да и в PHP она есть по умолчанию, начиная с версии 5.2. А есть ведь еще любители собирать "легкие" версии из исходников.
Andrey_B писал(а):XML, JSON - штуки, которые сегодня модные, а завтра нет. ON/OFF - вне времени.
Вы недооцениваете значение JSON, скорее будет не актуальным Мегадевайс. JSON встроен в javascript, по умолчанию встроены функции в PHP

Я использую JSON там, где это удобно и оправдано. Например, в Megad Panel он успешно используется для хранения настроек.
Лично я не вижу существенной необходимости переделывать код прошивки для формирования ответов устройства в виде JSON.
gofrom писал(а):Я наивно думал, что код будет работать в новых версиях, но после перепрошивки "Done" сделал свое черное дело.
Что-то я не совсем понял про Done. Что с ним не так?

gofrom
Сообщения: 67
Зарегистрирован: 09 дек 2011, 00:58
Откуда: Ростов-на-Дону

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

Сообщение gofrom » 30 окт 2015, 16:56

Andrey_B писал(а):"Мега" будет рисовать Web-интерфейс в любом случае. Это необходимо для пользователя. Такова философия проекта. Были попытки отказаться от использования Web-интерфейса. Чем они закончились я не знаю.
Пользователю необходимо настроить мегадевайс, но удобнее взять планшет настроить и пользоваться, видеть статусы нажимать кнопочки и тд.
Andrey_B писал(а):Я использую JSON там, где это удобно и оправдано. Например, в Megad Panel он успешно используется для хранения настроек.
Лично я не вижу существенной необходимости переделывать код прошивки для формирования ответов устройства в виде JSON.
В Megad Panel вы не используете JSON, так как его удобно использовать. Именно поэтому вы не сделали чтобы Megad Panel управляла локально устройством, что не очень удобно и совсем не секьюретно.

Ответить