Автор |
Сообщение |
|
Дата: 24 Май 2010 13:23:06 · Поправил: ЧЕГЕТ_35 (24 Май 2010 13:25:56)
#
Прошу знатоков посоветовать, как решить задачку:
имеется некий датчик (пока условно), который соединён с компьютером.
Необходимо сделать базу данных (какую? на чём прощще?), которая собирает значения с датчика
раз в час и на основе этих данных строит график зависимости показания датчика от времени, для размещения этого графика на WEB странице, как , например , ЗДЕСЬ, см.
грвфики внизу страницы. |
|
Дата: 24 Май 2010 14:06:07
#
Никакой базы данных тут не надо. Надо, чтобы программа брала данные с датчика и писала их в файл вместе с метками времени. Тупо в формате:
<t[1]><TAB><value[1]><ВК>
<t[2]><TAB><value[2]><ВК>
...
...
<t[n]><TAB><value[n]><ВК>;
где t[] -- метка времени (целое число без знака -- unsigned int), value[] -- значение (к примеру float), которое надо выводить на график.
А параллельно этой программе работает скрипт, который этот файл, к примеру, раз в минуту скармливает gnuplot-у. А затем результат (картинку) по ftp отправляет на хостинг. Это легко средствами *nix делается, к примеру, в виде скрипта bash. Да и в виндах тоже ничего сложного -- скрипт тупой, один цикл и все, две программы по очереди запускаем.
|
Реклама Google |
|
|
Дата: 24 Май 2010 14:07:50
#
А в чём вопрос-то? Проще - на чём знаешь, можно скриптом на перле, яве, можно на любом языке (хоть на ассемблере), формируешь картинку в любом графическом формате (по ссылке - это .png), .jpg, .gif. .tiff и тэдэ, а на страничке линк на этот файл...
|
|
Дата: 24 Май 2010 14:51:42
#
График должен быть активным? т.е. самообновляемым на странице, без или с перегрузкой самой страницы?
|
|
Дата: 24 Май 2010 15:25:26
#
Спасибо всем, кто так быстро откликнулся.
Дело для меня новое и почти совсем незнакомое, поэтому иду с самых азов.
antony
График должен быть активным, самообновляемым с перезагрузкой страницы.
Ясь
А можно подробнее про "gnuplot"?
|
|
Дата: 24 Май 2010 15:28:43
#
Kostas
Вопрос-то в том, что я пока не представляю как сформировать график (картинку), в том-же PNG,
мне б самое начало, в какую сторону смотреть, что почитать?
|
|
Дата: 24 Май 2010 15:57:10
#
Вопрос-то в том, что я пока не представляю как сформировать график (картинку), в том-же PNG,
мне б самое начало, в какую сторону смотреть, что почитать?
У-у-у... :) Ну почитать надо про многое, судя по всему, например, про языки программирования хоть какие-нибудь и про стандарты графических файлов... Если серьёзно, когда будешь точно знать в каком формате у тебя будут на входе данные, тогда попроси хоть какого знакомого проггера, он такую программулю напишет за полчаса-час. А так здесь уже упоминали вроде гнуплот (http://fsweb.info/calculations/gnuplot.html) можно и его приспособить наверное.
|
|
Дата: 24 Май 2010 16:47:54
#
Kostas
попроси хоть какого знакомого проггера, он такую программулю напишет за полчаса-час.
Нет, это не мой метод, я могу проще - купить. Вот вопрос то в том, что САМ хочу НАУЧИТЬСЯ.
Я понимаю, что можно долго рассуждать про языки программирования хоть какие-нибудь и про стандарты графических файлов... , а можно просто кнкретно сказать - читать это, смотреть сюда и пр.
Просто хочется чётко, внятно и по существу.
Это не компроект, это просто идея. На которой хочется научиться тому, что ещё не умею.
|
|
Дата: 24 Май 2010 17:00:36
#
Kostas
А насчёт гнуплота - спасибо за ссылку - изучу.
|
|
Дата: 24 Май 2010 17:03:59
#
ЧЕГЕТ_35
А можно подробнее про "gnuplot"?
Вот здесь -- http://linux.unn.ru/debian/node/13 -- есть пример использования данной программы. Это довольно мощное средство построения графиков с собственным входным языком управления, позволяющее вывести построенный из файла с данными график в любой графический файл. Что нам собственно и надо. Знать, как устроен png-файл при этом не надо. |
|
Дата: 24 Май 2010 17:53:30
#
Просто хочется чётко, внятно и по существу.
Для того, чтобы было так, нужно правильно формулировать задачу. Известно, что грамотно сформулированный вопрос содержит 90% ответа. :)
1. Под какой ОС будет крутиться данная прога?
2. В каком формате будет передаваться инфа от датчика? Это будет файл с некими данными (в каком виде?) или надо будет снимать сырые данные с порта?
2а. Это должна быть одна прога или одна снимает, другая формирует файл с картинкой?
3. Эта(и) проги (и датчик, и сайт) физически на одной машине или на разных?
3а. Если на разных, каким способом должна осуществляться передача данных?
3б. На удалённой машине какая ОС?
4. С какой частотой должна формироваться картинка? С какой скоростью идут данные с датчика?
5. Какой желаете график - 3Д, гистограмму или чего ещё? Впрочем, это уже детали...
Ну и тэдэ. В любом случае я бы посоветовал что-нибудь из клонов языков С. Кроссплатформенное, быстрое, работает как под вынь так и под линухом. Учебников по нему море, библиотек тоже. Плюс описание желаемого графического формата на выходе - тоже не тайна.
|
|
Дата: 24 Май 2010 18:28:09
#
Kostas
1. Win
2. пока не знаю, скорее всего в hex
2a. пока это не принципиально (очень хорошо, что Вы обозначили этот вопрос - я-то - дилетант)
3. всё на одной машине.
3б. Unix наверное. У большинства хостеров так наверное (поправьте, если ошибся).
4. скорость обновления не чаше раза в час, данные с датчика можно снимать с такой же скоростью).
5. График обычный, двухмерный - по оси ординат - текущее значение, по оси абсцисс - время в часах.
А я уж было склонился к Яве именно по причине кроссплатформенности.
Ясь
Kostas
Спасибо вам большое!
Отставить лежание на диване!
Вот теперь я знаю , чем занять себя на ближайший месяц(ы)!
|
|
Дата: 24 Май 2010 18:44:19 · Поправил: De4m (24 Май 2010 18:45:37)
#
1. Win
2. пока не знаю, скорее всего в hex
2a. пока это не принципиально (очень хорошо, что Вы обозначили этот вопрос - я-то - дилетант)
3. всё на одной машине.
3б. Unix наверное. У большинства хостеров так наверное (поправьте, если ошибся).
4. скорость обновления не чаше раза в час, данные с датчика можно снимать с такой же скоростью).
5. График обычный, двухмерный - по оси ординат - текущее значение, по оси абсцисс - время в часах.
А я уж было склонился к Яве именно по причине кроссплатформенности.
На торантах есть программа (даже наверное среда разработки) XCelsius. На входе файл с данными (форматы понимает разные) на выходе флэшка с графиком (графики в некоторых пределах анимированные). Работает под виндой. Может работать a фоне. обновление можно запускать bat ником по времени или вывести на страничку кнопку "обновить". Умеет в некоторых пределах преобразовывать данные.
Программа предназначена именно для визуализации данных ( много всяких графиков и элементов управления).
P.s. Ставил данную программу для расширения кругозора. Анимированный флэш график получил минут через 10 ( интерфейс интуитивно понятен). Если нужна будет более подробная информация - могу поинтересоваться у коллег по работе, которые ее используют.
|
|
Дата: 24 Май 2010 22:10:56
#
De4m
Спасибо за информацию.
Обязательно посмотрю. Я вообщем то тоже занимаюсь этим для расширения кругозора.
В последнее время стал интересоваться программингом (хотя пока не написал ни единой
строчки программного кода, думаю это дело наживное)на асме и яве.
|
|
Дата: 25 Май 2010 21:35:33
#
Могу предложить посмотреть на mrtg. |
|
Дата: 26 Май 2010 11:47:56
#
ixoid
Спасибо!
Это уже из разряда для продвинутых. Перл для меня пока китайская грамота.
|
|
Дата: 26 Май 2010 14:38:54
#
|
|
Дата: 26 Май 2010 20:00:09
#
А мне интересно - график переодический или всё таки периодический?
|
|
Дата: 26 Май 2010 22:33:41
#
twister
А как?
Говорите помедленннее, я записываю (С).
|
|
Дата: 26 Май 2010 22:37:31
#
rrstara
Да мне б график построить, а с периодичностью потом разберёмся.
|
|
Дата: 27 Май 2010 14:57:46 · Поправил: twister (27 Май 2010 14:58:31)
#
Картинка по моей ссылке периодически меняется ... так понимаю что это просто сохраняют софтом её периодически в файл .png (картинка).
Чем и как конкретно сделано - х.з.
Графики можно попробовать построить тем же Exel или например MathCAD.
|
|
Дата: 27 Май 2010 17:01:16
#
|
|
Дата: 27 Май 2010 17:01:38
#
|
|
Дата: 27 Май 2010 20:32:44
#
Перл для меня пока китайская грамота
Да там вроде не обязательно перл ковырять, достаточно конфиг грамотно составить. Как данные-то с датчика снимаются?
А rrdtool - это продвинутая версия mrtg и есть.
Принцип-то в основном один у всех - сгенерировать картинку, а потом засунуть ее в html с параметром "обновлять каждые N секунд". Картинку, соответственно, строить - кому что проще. Я бы mrtg/rrdtool/gnuplot использовал. Это если дизайн не важен, иначе придется писать таки программу/скрипт, с разрисовыванием в нужном стиле.
|
|
Дата: 27 Май 2010 22:09:44
#
Newvo
С английским - запросто, спасибо.
|
|
Дата: 27 Май 2010 22:22:27
#
ixoid
Сигнал с датчика подаётся через согласователь уровней (max232) на COM-порт.
С формированием картинки вроде разобрались, с выводом в html - тоже. А вот как забрать данные с порта
и конвертануть их в формат, понятный гнуплоту - пока непонятно.
|
|
Дата: 28 Май 2010 10:11:46
#
А COM-порт в виндоусе или юниксе? Под виндоус надо писать программу, как ни крути. Я бы python использовал.
А в юниксе в простейшем случае поможет команда 'cat /dev/ttyS0'. Гнуплоту как исходные данные нужен файл с парами чисел время-значение.
Если хотите - давайте подробности, думаю в одну-две строчки "программа преобразования" уложится :)
Одно из направлений моего хобби - съем информации с датчиков :)
|
Реклама Google |
|