Arduino Mega Server

Модератор: Alex

GaiverX
Сообщения: 62
Зарегистрирован: Ср авг 26, 2015 3:15 pm
Благодарил (а): 1 раз
Поблагодарили: 6 раз

Re: Arduino Mega Server

Сообщение GaiverX » Пн сен 28, 2015 2:50 pm

nicelight писал(а):
GaiverX писал(а):
GaiverX писал(а): В чем проблема самому посидеть и вдумчиво проштудировать систему? Это поможет вам в будущем настроить АМС под себя так, как вы этого хотите.

И да, стоит особо отметить, что Alex сразу указал, что для работы с системой нужны определенные знания.
Проблема в том, что я не могу найти куски кода, в которых реализовывается механизм и отображение кнопки "LED3 IS OFF".
Вот пытаюсь штудировать, для начала понять бы структуру файлов на флешке, кто за что отвечает и от кого зависим.
Настройки встречал в файлах SETTINGS.HTM и SETTINGS.JS

Более точно посмотреть нет возможности сейчас.

Рекомендую начать изучение с файла index.htm и scripts.js
В них есть большинство ссылок на остальные страницы.
В качестве редактора лучше использовать Notepad++. В нем можно открыть всей файлы проекта (даже файлы скетча) во вкладках.
И, что самое полезное, Notepad++ умеет вести поиск по всем вкладкам. То есть, если вы нашли функцию и объект, который вам не ясен, вы можете найти место, где он создан и описан его основной код.
За это сообщение автора GaiverX поблагодарили (всего 2):
mirsum (Пн сен 28, 2015 6:54 pm) • nicelight (Пт окт 02, 2015 8:31 pm)
Рейтинг: 2.33%
dimonkos
Сообщения: 39
Зарегистрирован: Сб сен 26, 2015 1:46 pm
Благодарил (а): 9 раз
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение dimonkos » Пн сен 28, 2015 3:57 pm

Была у меня такая же ошибка. Сейчас проверить не могу, интернет дома умер, но я решил ее тем, что удалил папку по пути, в вашем случае, C:\Users\admin\Documents\Arduino\libraries\ICMPPing

При этом скетч начинает работать с папкой ICMPPing, расположенной в самой Arduino IDE и ошибка устраняется.
Странно. не могу понять в чем дело. Теперь ошибки такие
СпойлерПоказать
Arduino: 1.6.2 (Windows 7), Плата"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp: In member function 'uint8_t ICMPPing::receiveEchoReply(byte*, uint8_t&, time_t&)':

C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:103:68: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'uint16_t {aka unsigned int}' [-fpermissive]

W5100.read_data(socket, (uint8_t *)buffer, header, sizeof(header));

^

In file included from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.h:12:0,

from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:10:

C:\Program Files (x86)\Arduino\libraries\Ethernet\src/utility/w5100.h:148:8: error: initializing argument 2 of 'void W5100Class::read_data(SOCKET, uint16_t, volatile uint8_t*, uint16_t)' [-fpermissive]

void read_data(SOCKET s, volatile uint16_t src, volatile uint8_t * dst, uint16_t len);

^

C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:109:76: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'uint16_t {aka unsigned int}' [-fpermissive]

W5100.read_data(socket, (uint8_t *)buffer, (uint8_t *)&echoReply, dataLen);

^

In file included from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.h:12:0,

from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:10:

C:\Program Files (x86)\Arduino\libraries\Ethernet\src/utility/w5100.h:148:8: error: initializing argument 2 of 'void W5100Class::read_data(SOCKET, uint16_t, volatile uint8_t*, uint16_t)' [-fpermissive]

void read_data(SOCKET s, volatile uint16_t src, volatile uint8_t * dst, uint16_t len);

^

Ошибка компиляции.
Armbian 5.38 на Orange Pi PC
GaiverX
Сообщения: 62
Зарегистрирован: Ср авг 26, 2015 3:15 pm
Благодарил (а): 1 раз
Поблагодарили: 6 раз

Re: Arduino Mega Server

Сообщение GaiverX » Пн сен 28, 2015 4:02 pm

Хм, а вы файлы из папки arduino_libs/arduino/libraries поместили в C:\Program Files (x86)\Arduino\libraries\ ? как было указано в инструкции по установке.
Alex писал(а):2. Настройка среды программирования Ардуино.

У вас должна быть уже установлена среда программирования Ардуино. Вам нужно распаковать библиотеки, находящиеся в файле arduino_lib.zip в папку с библиотеками среды Ардуино, обычно они находятся в каталоге

arduino\libraries
geor
Сообщения: 83
Зарегистрирован: Сб май 17, 2014 2:52 am
Откуда: Новосибирск
Благодарил (а): 10 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server

Сообщение geor » Пн сен 28, 2015 5:07 pm

geor писал(а):
Alex писал(а):Тут такой момент. Я столкнулся с тем, что народ борется с ошибками, а потом выясняется, что это не оригинальная версия. Надо понимать, что отвечать я могу только за то, что сделал сам и что сам протестировал. Поэтому просьба указывать, если у вас неоригинальная версия.

По поводу температуры. По идее при включении модуля таких ошибок не должно быть. Что это сходу сказать не могу, похоже на ошибку в определении. Но! В 0.13 версии полностью переработан модуль температуры и, возможно, вам стоит подождать его выхода.
Спасибо.
У меня оригинальная версия. При подключении модуля появлялась ошибка :
temp:15: error: variable 'idTempDat3' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
temp:16: error: variable 'idTempDat4' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
temp:17: error: variable 'idTempDat5' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
variable 'idTempDat1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
Температуру я все-же подключил, отредактировав строку PROGMEM byte idTempDat1[] = {40, 240, 72, 81, 3, 0, 0}; // STR [*] на PROGMEM const byte idTempDat1[] = {40, 240, 72, 81, 3, 0, 0}; // STR [*], так же заменил остальные три строки.
Температура заработала, но страницы стали очень долго обновляться, загрузка процессора стала 100%. Пришлось откатится назад.
Maks_K
Сообщения: 31
Зарегистрирован: Пт мар 13, 2015 5:10 pm
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение Maks_K » Пн сен 28, 2015 5:13 pm

Alex писал(а):Тут такой момент. Я столкнулся с тем, что народ борется с ошибками, а потом выясняется, что это не оригинальная версия. Надо понимать, что отвечать я могу только за то, что сделал сам и что сам протестировал. Поэтому просьба указывать, если у вас неоригинальная версия.
Такой вопросик в версии на которую идет ссылка с первой страницы вы исправили ограничение количества открытых сокетов, или сервер забирает все что есть? (все четыре)
Добро торжествует, зло действует
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Arduino Mega Server

Сообщение annakin » Пн сен 28, 2015 5:14 pm

dimonkos писал(а):
Была у меня такая же ошибка. Сейчас проверить не могу, интернет дома умер, но я решил ее тем, что удалил папку по пути, в вашем случае, C:\Users\admin\Documents\Arduino\libraries\ICMPPing

При этом скетч начинает работать с папкой ICMPPing, расположенной в самой Arduino IDE и ошибка устраняется.
Странно. не могу понять в чем дело. Теперь ошибки такие
СпойлерПоказать
Arduino: 1.6.2 (Windows 7), Плата"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp: In member function 'uint8_t ICMPPing::receiveEchoReply(byte*, uint8_t&, time_t&)':

C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:103:68: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'uint16_t {aka unsigned int}' [-fpermissive]

W5100.read_data(socket, (uint8_t *)buffer, header, sizeof(header));

^

In file included from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.h:12:0,

from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:10:

C:\Program Files (x86)\Arduino\libraries\Ethernet\src/utility/w5100.h:148:8: error: initializing argument 2 of 'void W5100Class::read_data(SOCKET, uint16_t, volatile uint8_t*, uint16_t)' [-fpermissive]

void read_data(SOCKET s, volatile uint16_t src, volatile uint8_t * dst, uint16_t len);

^

C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:109:76: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'uint16_t {aka unsigned int}' [-fpermissive]

W5100.read_data(socket, (uint8_t *)buffer, (uint8_t *)&echoReply, dataLen);

^

In file included from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.h:12:0,

from C:\Program Files (x86)\Arduino\libraries\ICMPPing\ICMPPing.cpp:10:

C:\Program Files (x86)\Arduino\libraries\Ethernet\src/utility/w5100.h:148:8: error: initializing argument 2 of 'void W5100Class::read_data(SOCKET, uint16_t, volatile uint8_t*, uint16_t)' [-fpermissive]

void read_data(SOCKET s, volatile uint16_t src, volatile uint8_t * dst, uint16_t len);

^

Ошибка компиляции.
Закоментируйте модуль Ping и будет вам счастье.
Server: Raspberry Pi 3 B+
OS: Rasbian
dimonkos
Сообщения: 39
Зарегистрирован: Сб сен 26, 2015 1:46 pm
Благодарил (а): 9 раз
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение dimonkos » Пн сен 28, 2015 5:56 pm

GaiverX писал(а):Хм, а вы файлы из папки arduino_libs/arduino/libraries поместили в C:\Program Files (x86)\Arduino\libraries\ ? как было указано в инструкции по установке.
Alex писал(а):2. Настройка среды программирования Ардуино.

У вас должна быть уже установлена среда программирования Ардуино. Вам нужно распаковать библиотеки, находящиеся в файле arduino_lib.zip в папку с библиотеками среды Ардуино, обычно они находятся в каталоге

arduino\libraries
Обязательно
Armbian 5.38 на Orange Pi PC
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн сен 28, 2015 6:36 pm

А то вы так красиво на хабре разрекламмировали свое детище, что мол можно его делать в девайс из коробки по типу достал и распаковал. Звучит заманчиво, но если устрашать тем, что надо разобраться в горах кода, и досконально выучить гору языков и методов создания web страниц, у кого будет желание пытаться довести до ума под свою конкретную нужду ваш чудо гибрид ардуины и браузера?)))
Тут не нужно путать мух с котлетами, а именно: разработку для себя и выпуск коммерческих продуктов на основе АМС (где всё из коробки). Конечно, если вы хотите что-то изменить под себя, то вам нужно для этого постараться.
Ко мне наконец пришли китайские аналоги Arduino Mega 2560 и W5100. Попробую для начала загрузку файлов на флешку сделать.
Я тут поимел квест с «китайскими аналогами», так что если не заведётся, то обращайтесь.
Проблема в том, что я не могу найти куски кода, в которых реализовывается механизм и отображение кнопки "LED3 IS OFF".
Вот пытаюсь штудировать, для начала понять бы структуру файлов на флешке, кто за что отвечает и от кого зависим.

Я не могу вам всё объяснить, но могу указать путь. Держитесь, мало не покажется.

Итак, смотрим на кнопку и задаём себе вопрос: что происходит, когда я её нажимаю? Находите вызов яваскрипт функции, находите яваскрипт файл, где она описана, смотрите что она меняет. Изучаете «это» и находите функцию, которая отсылает изменения. Далее ищите в скетче то место в сервере, которое принимает вызовы, смотрите как это парсится и какая функция далее вызывается и что она меняет, далее смотрите, что в результате отправляется обратно в яваскрипт. Далее ищите, где это ловится, как обрабатывается и что и как меняет на веб-страничке.

Добавление кнопки это чёткое представление работы всего этого «жизненного цикла» или «рефлекса системы».

Почему так сложно? Потому, что по-другому на 8-и битном контроллере организовать чудо невозможно.

Если более конкретно, то коде кнопки есть что-то вроде onclick и вызов функции. Сама функция — в одноимённом яваскрипт файле или в scripts.js.
За это сообщение автора Alex поблагодарил:
nicelight (Пт окт 02, 2015 8:35 pm)
Рейтинг: 1.16%
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн сен 28, 2015 6:45 pm

Такой вопросик в версии на которую идет ссылка с первой страницы вы исправили ограничение количества открытых сокетов, или сервер забирает все что есть? (все четыре)
Хороший вопрос. В дистрибутиве забирает все. В 0.13 планируется сделать «-1» потому, что лучшего решения не найдено.

Но дело постепенно смещается в сторону 5500 и возможно, что эта проблема скоро станет не такой актуальной.
Maks_K
Сообщения: 31
Зарегистрирован: Пт мар 13, 2015 5:10 pm
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение Maks_K » Вт сен 29, 2015 1:52 am

Alex писал(а):
Такой вопросик в версии на которую идет ссылка с первой страницы вы исправили ограничение количества открытых сокетов, или сервер забирает все что есть? (все четыре)
Хороший вопрос. В дистрибутиве забирает все. В 0.13 планируется сделать «-1» потому, что лучшего решения не найдено.

Но дело постепенно смещается в сторону 5500 и возможно, что эта проблема скоро станет не такой актуальной.
Для вас
но большинство (95%) тут присутствующих в теме AMS да и всего форума majordomo используют именно w5100 :shock:
так что главная просьба к Вам
по больше комментариев в коде :roll:
Добро торжествует, зло действует
Ответить