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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 13 ноя 2014, 00:30

Спасибо. Буду разбираться. Пока что прошивку до кондиции доведу...

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 13 ноя 2014, 13:00

Подскажите, для чего функция analyse_get_url нужна?

alexsis_76

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

Сообщение alexsis_76 » 13 ноя 2014, 13:06

analyse_get_url название говорит само за себя - синтаксический анализатор запроса GET по буржуйски parser

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 13 ноя 2014, 13:15

Там парсер отдельно есть, а эта я не пойму что делает. Точнее пойму, но не пойму зачем. Такое ощущение что для чего то она раньше нужна была а щас не используется... Возращает значения от -3 до 2. А в прошивке один
cmd=analyse_get_url((char *)&(buf[dat_p+4]));

if (cmd==-1)
{
plen=fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 401 Unauthorized\r\nContent-Type: text/html\r\n\r\n<h1>401 Unauthorized</h1>"));
goto SENDTCP;
}
для нее есть... Может ее, это.. того...))))
Кстати прошивка щас занимает 28956 bytes ( 88,4 %) памяти программ.

alexsis_76

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

Сообщение alexsis_76 » 13 ноя 2014, 13:29

это проверка пароля видимо остальные возвращаемые значения использывались ранее
ну и выкиньте из analyse_get_url лишнее
например
if(*str==' ')
{
// end of url and no slash after password:
return(-2);
}
это видимо был пустой пароль
по этому значению можно было плюнуть что то типа " не введен пароль"

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 14 ноя 2014, 13:16

Выкинул полностью, она там не нужна была. Сделал просто чтоб Usage: http://host_or_ip/password вываливался если нет пароля, и 401 Unauthorized если не правильный. Еще минус 0,4% памяти))).
Сижу дальше код причесываю, функции некоторые объединил,что-то убрал что-то добавил. Много лишнего встретил...))) Заметил что ifelse экономнее чем switch ))). Ну и комментарии и еще раз комментарии))). Может кому пригодится оптимизированная прошивка))). Пытаюсь оставить его удобочитаемым.
Закончу выложу на оценку Андрею. Скоро UDP меня ждет.

P.S. А сколько понадобиться под 1_ware места?

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

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

Сообщение Andrey_B » 14 ноя 2014, 16:46

Я был бы только рад, если бы появилась альтернативная прошивка, которая была бы чем-то лучше.

Что касается "много лишнего". Хорошо, если вы тестируете функциональность вашего варианта. И хорошо, если при этом она не пострадает.
Оптимизацией и выкидыванием "лишнего" кода, кстати, весьма успешно занимается сам компилятор, если указать ему соответствующие опции.
В любом случае я надеюсь ваш вариант будет способствовать развитию проекта.

Оценку скорее должен делать не я, а пользователи.

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 14 ноя 2014, 18:49

Andrey_B, как программист уверяю что идеальных компиляторов нет. По этому случаю какой бы компилятор и язык высокого уровня не был (C), язык низкого уровня (Assambler) всегда выигрывает в объеме. А всему причина логика человека. Только на Assamblere писать долго.))))
Вариант тестирую. Абсолютно вся функциональность сохранена и будет сохранена далее.))) Работаю с прошивкой 3.25b1))) А про Вашу оценку я говорил потому, что скорее пытаюсь сделать платформу для новых опций, чем альтернативу. Сохранить функционал, сделать удобочитаемым и малым по объему.

P.S.За что отвечает переменная mode. Ни как не соображу :?

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 15 ноя 2014, 19:30

Не могу победить ни как 1-Ware. Все вроде что только можно подключил. Не хочет делать поиск устройств (((. Помогите плиз. Где я ошибся?
Есть проект в AtmelStudio и Proteus... Делал все по примеру http://kibermaster.net/rabota-s-shinoy- ... b20-k-avr/ . Помогите кто чем сможет....
Вложения
MegaD.rar
AtmelStudio 6.2 - проект.
(357 КБ) 268 скачиваний

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 16 ноя 2014, 00:39

Замучил я его ))))). Запустилось. Снова этот компилятор - редиска!
Добавил 1-Ware. Пока что только режим чтения.

asteroid
Сообщения: 42
Зарегистрирован: 13 апр 2013, 02:16

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

Сообщение asteroid » 16 ноя 2014, 03:11

GruNT писал(а):Замучил я его ))))). Запустилось. Снова этот компилятор - редиска!
А Вы к стати, пробовали компилировать в AVR Studio 4 ?
А то чего то Ваш .hex работает.
А скомпилированный мной, не хочет.
Оригинальные от Andrey_B компилируются.

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 16 ноя 2014, 03:47

asteroid писал(а):
GruNT писал(а):Замучил я его ))))). Запустилось. Снова этот компилятор - редиска!
А Вы к стати, пробовали компилировать в AVR Studio 4 ?
А то чего то Ваш .hex работает.
А скомпилированный мной, не хочет.
Оригинальные от Andrey_B компилируются.
К сожалению нет. У меня версия 6.2. Библиотеки кстати я тоже чуть поправил... и выставил частоту работы в самом проекте
Заработал наконец-то 1-Ware. Режим чтения до 10 устройств на канал. Осталось с портами разобраться, устранить задержки и все))) На данный момент занято 93,2% памяти.

dimik2000
Сообщения: 34
Зарегистрирован: 13 сен 2012, 12:51

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

Сообщение dimik2000 » 17 ноя 2014, 00:18

GruNT писал(а): ...
Заработал наконец-то 1-Ware. Режим чтения до 10 устройств на канал. Осталось с портами разобраться, устранить задержки и все))) На данный момент занято 93,2% памяти.
Голос из зала:
- а может диммер добавить? Чтобы был с привязкой к 0?

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

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

Сообщение GruNT » 17 ноя 2014, 01:33

dimik2000 писал(а):
GruNT писал(а): ...
Заработал наконец-то 1-Ware. Режим чтения до 10 устройств на канал. Осталось с портами разобраться, устранить задержки и все))) На данный момент занято 93,2% памяти.
Голос из зала:
- а может диммер добавить? Чтобы был с привязкой к 0?
Посмотрим что из памяти в конце останется. Вообще хочется чтоб была полная поддержка 1-ware. Пока что работают DS18B20,DS18S20,DS1990 (Botton).
В последнее время возникает желание сделать внешний интерфейс как предлагали ранее (без php, чтоб сервера не требовало. Только HTML и Java). Места много полезного освободится. ;)
И запихнуть в какой нибудь архивчик доступный для скачивания. Но как из минусов - придется вести поддержу этого интерфейса параллельно с обновлением прошивки megaD.
Думаю время покажет. А 1-Ware на megaD лично для меня на много удобнее чем через DS9490R. Это меньше проводов (не надо тянуть все к серверу где стоит DS9490R) и быстродействие. Да, и цена намного дешевле...
А если еще и API от megaD прикрутить))) вообще красота получается...
Алгоритм такой:
На порте с 1-Ware - меню со списком доступных в системе устройств.
Для каждого выводится адрес и подменю доступных настроек.
Датчики опрашиваются раз в минуту, данные с адресом записываются в еепром (обновляются).
По запросу - чтение из еепром и вывод на сервер.
Исполнительные модули на 1-ware работают в режиме похожем на работу обычных портов в режиме Out.
Как думаете, жить будет?

P.S. Электроника не работает только в 2 случаях: либо нет контакта, либо есть - но лишний :D

zero
Сообщения: 57
Зарегистрирован: 28 фев 2013, 14:56

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

Сообщение zero » 17 ноя 2014, 16:00

Выложите кто-нибудь последнюю прошивку, скомпилированную под мегу в дип-корпусе, пожалуйста.

asteroid
Сообщения: 42
Зарегистрирован: 13 апр 2013, 02:16

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

Сообщение asteroid » 18 ноя 2014, 03:19

И еще один голос из зала.
Andrey_B а может все же обсуждение альтернативных, переделанных версий программ и прошивок в другой ветке ?
А тут только те, которые указаны в заголовке " Прошивка MegaD-328 (релизы, обсуждения, предложения)" ?

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

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

Сообщение Andrey_B » 18 ноя 2014, 10:44

Согласен с asteroid. Чтобы было больше порядка, GruNT, создайте пожалуйста новую тему для обсуждения альтернативного варианта.

zero
Сообщения: 57
Зарегистрирован: 28 фев 2013, 14:56

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

Сообщение zero » 21 ноя 2014, 04:35

Кто чем компилирует прошивку под вин? У меня винавр делает слишком большую прошивку (не лезет в чип). Atmel Studio 6 вообще вываливает кучу ошибок.

Также у меня скрипт по команде:

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

php megad-cfg.php --local-ip 192.168.0.2 --scan
где "192.168.0.2" - адрес сетевого интерфейса, куда подключены девайсы, не видит девайсы. Ничего не выводит. Пробывал на разных компах с разными вариантами подключения девайсов - результат тот же. В чем может быть дело?

ЗЫ: большая-пребольшая просьба, выложите все таки .hex последней прошивки под мегу в дип-корпусе кто-нибудь. Замучался уже с этими компиляторами. :( Спасибо.

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

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

Сообщение Andrey_B » 21 ноя 2014, 11:30

zero, скрипт megad-cfg.php отлично работает в Linux и Windows 7
Однако пользователи Windows XP отмечают, что в этой ОС скрипт не работает. Если у вас Windows XP, попробуйте Windows 7 или 8.

Вам просто убрать два доп. АЦП порта или сделать какие-нибудь другие изменения? Вы что-то говорили про последовательность портов. Она должна быть для релизов 1-3 ?

zero
Сообщения: 57
Зарегистрирован: 28 фев 2013, 14:56

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

Сообщение zero » 21 ноя 2014, 14:45

Andrey_B писал(а):zero, скрипт megad-cfg.php отлично работает в Linux и Windows 7
Однако пользователи Windows XP отмечают, что в этой ОС скрипт не работает. Если у вас Windows XP, попробуйте Windows 7 или 8.
У меня вин х64 и freebsd. На обеих результат тот же.
Andrey_B писал(а): Вам просто убрать два доп. АЦП порта или сделать какие-нибудь другие изменения? Вы что-то говорили про последовательность портов. Она должна быть для релизов 1-3 ?
В начале файла main.c Вы пишете:
* ВНИМАНИЕ! Перед загрузкой прошивки убедитесь,
* что последовательность портов, описанная в массиве "aio"
* соответствует вашей версии устройства.
ниже:

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

// Available IO
#define IO_SIZE 16
// MegaD-328-7I7O Ver 4-5 sequence
char *aio[IO_SIZE] = {"C5", "C4", "C3", "C2", "C1", "C0", "D7", "B1", "D0", "D1", "D3", "D4", "D5", "D6", "A6", "A7"};
// MegaD-328-7I7O Ver 1-3 sequence
//char *aio[IO_SIZE] = {"C5", "D0", "C4", "D1", "C3", "C2", "D3", "B1", "D7", "D6", "D5", "C0", "D4", "C1", "A6", "A7"};
я так понимаю перое нужно закоментировать, второе раскоментировать.

У меня девайсы собраны по схеме/плате ТНК. В данный момент никак не реагирует светодиод (висит на PB1). Из-за этого?
Извините за глупые вопросы, в С пока ничего понять не могу, но буду исправляться. :)

Ответить