Погодный информер (Weather Informer)

Делись идеей, получай поддержку и критику!

Погодный информер (Weather Informer)

Postby IvanLis on 23 Oct 2013, 18:19

Проектом назвать это можно с натяжкой :wink:
Но вот что получилось, может куму-то и сгодиться.
А если с Вашей помощью еще и довести до презентабельного вида, то вполне сойдет для ежедневного использования.

До этого я дергал погоду с сайта GisMeteo.ru: http://www.gismeteo.ru/informers/
О том как разобрать полученную информацию я писал пару строк в уроке: ru/sovetyipravila/303--xml-labview-xml-parse
Но с недавнего времени там изменились условия предоставления информации, не буду грузить..., короче не удобно стало его использовать.

Нашел сайт: http://openweathermap.org
Дам достаточно удобный интерфейс API (http://openweathermap.org/API), позволяющий разработчикам получать различные данные о погоде. Что мне понравилось в этом сервисе, так это толерантность к запросам. Например, нас интересуют данные о погоде в Москве с интервалом в 3 часа. Сравните результат:
http://api.openweathermap.org/data/2.5/ ... u&mode=xml
http://api.openweathermap.org/data/2.5/ ... u&mode=xml

Это была увертюра, а теперь основная часть.

Что нам нужно...
1. Построить запрос и получить данные, результат удобнее, не знаю как Вам, а мне проще разбирать XML.
2. Проверить корректность (целостность) данных разобрать XML на составляющие.
3. Красиво все отобразить, с этим у меня основные проблемы, так как мой технический мозг не переносит дизайнерской работы.
4. Ну и соответственно, делать запросы нужно с какой-то периодичностью.

Начнем по порядку...
Не буду расписывать азы и тонкости реализации всех этапов, каждый может посмотреть исходники. Но если появятся вопросы, то постараюсь на них ответить.
1. Построить запрос и получаем данные используя HTTP Request (GET).vi
2. Встроенный парсер проверяет структуру документа и его целостность, по этому здесь нужно только проконтролировать. Данные парсим стандартными средствами LabVIEW. Многим покажется излишняя вложенность SubVI, но как сделал, так сделал. Зато все понятно и структурировано.
3. Этот этап самый сложный. Так что если есть готовые оказать помощь в оформлении интерфейса, готов посодействовать. Пока это выглядит следующим образом (выглядело в предварительной версии, в выложенной немного изменилось, но смысл тот же):
Data.png
Graph.png
Setup.png

4. Что касается периодичности, то я пошел кратчайшим путем. Цикл крутится раз в минуту. Если текущее время <= времени nextupdate (вкладка Setup), то запрашиваем данные с сервера. В случае удачного получения данных время nextupdate обновляется (его назначает сервер). Если данные не были получены или получены с ошибкой, то перезапрос выполняется через минуту, на следующей итерации цикла. Ну и при желании можно выполнить запрос вручную, нажав кнопку UpDate.

Данные о необходимом городе записаны в файле Data.txt. Если он отсутствует, то по умолчанию запрашивается погода г. Москва. Если ввести свой город в поле запроса, а потом остановить программу, нажав кнопку Stop, то Ваши данные будут сохранены в файл и при следующем запуске программы Москвы уже не будет.

--------------------------
Что касается критики и доработок...
Я вижу следующие проблемы (но как говориться "В чужом глазу соринку видит, а в своём бревна не замечает"):
1. Самое главное это интерфейс.
2. При запросе данных с сервера программа подвисает (не реагирует на нажатие кнопок панели управления). Все сделано в одном цикле, и разносить по разным не вижу смысла, т.к. это всего 1-3 секунды из 3-х часов. Да и работает программа полностью в автоматическом режиме.

---------------------------
Ну и сама программа (LV2010), если необходимо в более низкой версии, пишите:
WeatherInformer.zip
lv2010
(415.24 KiB) Downloaded 300 times

Код не отработан полностью и не соответствует рекомендациям, так что за это не пинайте.
Так же меня интересует работоспособность в Windows, т.к. все писалось и тестировалось в Linux, по этому некоторые решения могут показаться странными.

-------------------------
Жду отзывов и предложений. А самое главное, талантливого дизайнера, который поможет доработать и оживить интерфейс.
Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby IvanLis on 23 Oct 2013, 18:35

Для Linux-оидов выкладываю собранную программу:
Build-WeatherInformer.zip
for Linux
(300.1 KiB) Downloaded 138 times

Только не забудьте установить runtime: http://ftp.ni.com/support/softlib/labvi ... 1.i386.zip
Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby dadreamer on 23 Oct 2013, 18:54

User avatar
dadreamer
doctor
doctor
 
Posts: 2923
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet

Re: Погодный информер (Weather Informer)

Postby IvanLis on 23 Oct 2013, 19:05

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby dadreamer on 23 Oct 2013, 19:21

User avatar
dadreamer
doctor
doctor
 
Posts: 2923
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 711
I/O VIP vision internet

Re: Погодный информер (Weather Informer)

Postby IvanLis on 23 Oct 2013, 19:34

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby gasan_333 on 17 Apr 2015, 09:14

Добрый день IvanLis. Я скачал ваши исходники хочу доработать программу, голосовую оповещение хочу добавить. Че то она ошибки выдает Scan From String (arg 1) in Parse WeatherData-Meta.vi -> Parse WeatherData.vi -> WeatherGet.vi -> WeatherInformer.vi
User avatar
gasan_333
user
user
 
Posts: 98
Joined: 15 Feb 2014, 21:28
LabVIEW Version: 2012
Karma: 5

Re: Погодный информер (Weather Informer)

Postby IvanLis on 17 Apr 2015, 15:23

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby gasan_333 on 17 Apr 2015, 16:10

Я уже занимаюсь этим спасибо :super:
User avatar
gasan_333
user
user
 
Posts: 98
Joined: 15 Feb 2014, 21:28
LabVIEW Version: 2012
Karma: 5

Re: Погодный информер (Weather Informer)

Postby IvanLis on 17 Apr 2015, 17:30

Attachments
Parse WeatherData-Meta.vi
lv2010
(24.02 KiB) Downloaded 104 times
Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby gasan_333 on 21 Apr 2015, 11:59

Как то вот так
Attachments
WeatherInformer.zip
(417.24 KiB) Downloaded 120 times
User avatar
gasan_333
user
user
 
Posts: 98
Joined: 15 Feb 2014, 21:28
LabVIEW Version: 2012
Karma: 5

Re: Погодный информер (Weather Informer)

Postby gasan_333 on 17 Jul 2015, 13:47

А как можно получить информацию по осадкам ? По проценту облачности ?
User avatar
gasan_333
user
user
 
Posts: 98
Joined: 15 Feb 2014, 21:28
LabVIEW Version: 2012
Karma: 5

Re: Погодный информер (Weather Informer)

Postby IvanLis on 17 Jul 2015, 16:01

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Погодный информер (Weather Informer)

Postby gasan_333 on 21 Jul 2015, 14:59

User avatar
gasan_333
user
user
 
Posts: 98
Joined: 15 Feb 2014, 21:28
LabVIEW Version: 2012
Karma: 5


Return to Проекты

Who is online

Users browsing this forum: No registered users and 1 guest

cron