Страница 67 из 326
Re: Arduino Mega Server
Добавлено: Пт окт 02, 2015 8:21 pm
pastry777
uni писал(а):Если посмотреть на мои исходники, то явно видно, что это не просто. Там реализовано преобразование из unix- формата в winapi-формат и обратно.
чтобы мы правильно друг друга поняли,привожу пример,как я высчитываю аптайм из millis() в своем проекте,аналогично, по такому принципу я предложил и здесь,только из UNIXa...исходя из задачи,под которую необходимо высчитывать разницу,можно еще оптимизировать код немного...
Код: Выделить всё
// расчет тeкущего времени работы программы(uptime)
static unsigned long time = millis();
d = (time / 86400000); // дни
h = (time % 86400000) / 3600000; // часы
m = (time % 3600000) / 60000; // минуты
s = (time % 60000) / 1000; // секунды
Re: Arduino Mega Server
Добавлено: Пт окт 02, 2015 8:45 pm
uni
LONG UNIX для меня это time_t, значение которого отсчитывается от эпохи unix. Если у вас есть значение в этом формате, то как вы приведёте его в "человеческий вид"? Как показать по этому значению какой это год, месяц, день и т.д. Я понял вопрос в таком ключе.
Исходники эти сделаны для реализации софтового RTC на мк, который железным не оборудован. Если нужно узнать текущую дату из софтового RTC, то я использовал указанный набор функций.
С относительными вычислениями тоже не всё просто. Например, узнать разницу в календарных днях между двумя значениями в unix-формате: одно число - минута до полуночи, второе - минута после. Если считать в миллисекундах, то разница будет нулевая в днях. Если сначала привести к датам, то будет 1 день. Тут от задач зависит.
Re: Arduino Mega Server
Добавлено: Пт окт 02, 2015 9:27 pm
pastry777
uni писал(а):LONG UNIX для меня это time_t, значение которого отсчитывается от эпохи unix. Если у вас есть значение в этом формате, то как вы приведёте его в "человеческий вид"? Как показать по этому значению какой это год, месяц, день и т.д. Я понял вопрос в таком ключе.
Исходники эти сделаны для реализации софтового RTC на мк, который железным не оборудован. Если нужно узнать текущую дату из софтового RTC, то я использовал указанный набор функций.
С относительными вычислениями тоже не всё просто. Например, узнать разницу в календарных днях между двумя значениями в unix-формате: одно число - минута до полуночи, второе - минута после. Если считать в миллисекундах, то разница будет нулевая в днях. Если сначала привести к датам, то будет 1 день. Тут от задач зависит.
да,вы правы,если требуется из софтового UNIX получить год,месяц,день да еще и в текстовом читабельном варианте(вторник сегодня или суббота?

),то нужно очень заморочиться
а для высчитывания неких промежутков событий думаю можно обойтись парой операций:
Код: Выделить всё
now_number_day = timeUnix / 86400L;//получаем порядковый номер текущего дня с начала отсчета UNIX
now_day_seconds = timeUnix % 86400L; // высчитываем количество секунд с начала текущих суток
[/size]
секунды далее можно перевести в минуты и часы,само-собой....
это все для высчитывания,для внутреннего алгоритма работы MK..
из этих моих строк конечно не написать "насос включился в четверг пятого февраля",но можно вывести "насос включился три дня и пять часов назад" даже после сброса питания,предварительно сохранив время включения насоса в EEPROM,ведь для этого это все и делается...
Re: Arduino Mega Server
Добавлено: Пт окт 02, 2015 10:05 pm
pastry777
поковыряв библиотеку о которой я упоминал выше,нашел там интересные готовые расчеты год,месяц,день из UNIX... можно использовать конкретные блоки оттуда,слегка адаптировав,это как раз по силам Alex

Re: Arduino Mega Server
Добавлено: Вс окт 04, 2015 12:48 pm
Oleg24
Здравствуйте,
Китайская мега, карта 16 гиг, закинул все файлы из sd на карту, в скетче в Ethernet поменял ip, залил но страница не открывается. В хроме в заголовке окна появляется надпись mega1, но страница не загружается. Нужно что-то ещё подправить?
Re: Arduino Mega Server
Добавлено: Вс окт 04, 2015 2:12 pm
Oleg24
Всё разобрался, в моей сети проблема.
Re: Arduino Mega Server
Добавлено: Вт окт 06, 2015 10:47 am
AVK74
Подскажите алгоритм получения дня недели из года месяца и числа.
Re: Arduino Mega Server
Добавлено: Чт окт 08, 2015 8:09 am
uni
Вот
ссылка на архив с функциями для работы с датой в uClinux.
Re: Arduino Mega Server
Добавлено: Сб окт 10, 2015 11:49 am
nick7zmail
Добрый день всем.
Очень интересная тема, очень много инфы. Половину где то прочитал)) больше не осилил.
Подскажите новичку в этих краях, как я понял можно поднять полноценный сервер с MajorDomo на базе ардуино мега? Появились несколько вопросов по интеграции.
1) Как быть с внешними девайсами? (например тот же контроллер ноолайт подключается через usb. есть библиотеки? или там операционка на базе линукса, например?)
2) Как там дела с голосом? На винде установлен движок Infovox Alyona. На ардуине хотя бы гугловским голосом умеет говорить?
3) Какой базовый набор брать, если надумаю?)) Ардуино мега+Ethernet sheld или как он там, достаточно будет?
Re: Arduino Mega Server
Добавлено: Сб окт 10, 2015 7:45 pm
Alex
Подскажите новичку в этих краях, как я понял можно поднять полноценный сервер с MajorDomo на базе ардуино мега?
Да вы что? Нет, конечно. АМС это отдельная система и на 8 КБ ОЗУ невозможно сделать то, что делается на мегабайтах и мощных прцессорах. Но фишка в том, что АМС со своими 8-ю килобайтами во многих случаях может заменить М.
Появились несколько вопросов по интеграции.
1) Как быть с внешними девайсами? (например тот же контроллер ноолайт подключается через usb. есть библиотеки? или там операционка на базе линукса, например?)
АМС это Ардуино и всё, что может интегрироваться с Ардуино, может интегрироваться и с АМС.
2) Как там дела с голосом? На винде установлен движок Infovox Alyona. На ардуине хотя бы гугловским голосом умеет говорить?
Никак. А вот может ли Ардуина отослать речь и получить распознанный ответ — вопрос интересный.
3) Какой базовый набор брать, если надумаю?)) Ардуино мега+Ethernet sheld или как он там, достаточно будет?
Да, базовый набор — Мега 2560 + Ethernet Shield W5100 + microSD карта памяти. А вот брать или не брать — по большому счёту выбора нет. А то проживёте жизнь, а восьмое чудо света не увидите.