Russian Qt Forum
Май 05, 2024, 21:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 ... 6   Вниз
  Печать  
Автор Тема: Система сбора и отображения данных  (Прочитано 37824 раз)
8Observer8
Гость
« : Март 06, 2014, 07:31 »

Привет! С работы, на которую я хочу устроиться, мне дали задание. От граммотного выполнения которого зависит моя судьба Улыбающийся

Задание на разработку системы сбора и отображения данных

Описание

В отсеке реактора атомного ледокола есть около 10 датчиков считывающих различную информацию о работе реактора. Датчики подключенны к компьютеру с Unix подобной ОС, для обработки информации с каждого датчика запущен свой процесс или тред (в дальнейшем - "Драйвер Датчика"). Сбор информации с драйверов датчиков осуществляет установленное на этом же компьютере приложение - "Сервер Данных". На удаленном компьютере установлено приложение, отображающее полученную с датчиков информацию - "Приложение Оператора"

Драйвер Датчика

В каждый момент времени хранит текущее значение измеряемого датчиком параметра.

Сервер Данных

- Опрашивает Драйвера Датчиков и получает текущие значения.
- Хранит все изменения значений датчиков.
- По запросу от Приложения Оператора предоставляет следующие данные о состоянии датчиков:
        - текущее состояние датчика
        - состояние датчика на определённый момент времени
        - история изменений состояния датчиков за указанный период времени
      
Приложение Оператора

Запрашивает с Сервера Данных информацию и отображает ее.

Задание

- Разработать Драйвер Датчика, Сервер Данных и обеспечить между ними обмен данными
- Обеспечить обмен данными между Сервером Данных и Приложением Оператора
- Если потребуется - разработать Приложение Оператора

Условия

- Драйвер Датчика и Сервер Данных должны быть разработаны на .NET-или (C++(Qt))
- Технология обмена данными с Приложением Оператора может быть любая.
- Приложение Оператора может быть разработанно на любой платформе и любой ОС, или может быть использованно готовое программное обеспечение.
- В Драйвере Датчика в качестве источника данных можно использовать случайные значения.
« Последнее редактирование: Февраль 19, 2015, 20:21 от 8Observer8 » Записан
8Observer8
Гость
« Ответ #1 : Март 06, 2014, 07:33 »

Я открыл примеры из Qt Creator'а. Ввёл в поиске Server. Там есть примеры: "Fortune Server Expample" и "Threaded Fortune Server"

Я так понимаю, что мне, во время написания приложения, нужно руководствоваться примером "Threaded Fortune Server"

Опишите, пожалуйста, как можно подробнее, как с точки зрения профи должно выглядить это приложение.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #2 : Март 06, 2014, 07:58 »

Опишите, пожалуйста, как можно подробнее, как с точки зрения профи должно выглядить это приложение.
Печально, что вы так и не открыли книгу Гради Буч. Грустный
Там у него один из примеров, как раз разработка системы сбора данных, правда метеорологических, но это в данном случае значения не имеет.
Записан
8Observer8
Гость
« Ответ #3 : Март 06, 2014, 08:54 »

Печально, что вы так и не открыли книгу Гради Буч. Грустный
Там у него один из примеров, как раз разработка системы сбора данных, правда метеорологических, но это в данном случае значения не имеет.

Это удивительно, но я нашёл такой же пример и в этой книге: "Быстрая разработка программ: принципы, примеры, практика" http://rutracker.org/forum/viewtopic.php?t=905917

Причём авторы этой книги делают ссылки на книгу и статьи Гради Буч Улыбающийся


« Последнее редактирование: Март 11, 2014, 17:44 от 8Observer8 » Записан
8Observer8
Гость
« Ответ #4 : Март 06, 2014, 08:55 »

Буду выполнять это задание, опираясь на эти три книги:

Быстрая разработка программ: принципы, примеры, практика (издание 2004, есть пример с метеостанцией, язык примеров - Java)
Скачать: http://rutracker.org/forum/viewtopic.php?t=905917

Принципы, паттерны и методики гибкой разработки (издание 2011, нет примера с метеостанцией, язык примеров - C#)
Скачать: http://rutracker.org/forum/viewtopic.php?t=4295746
Исходники: http://www.objectmentor.com/PPP/

Объектно-ориентированный анализ и проектирование с примерами приложений (3-е издание)
Перевод: http://rutracker.org/forum/viewtopic.php?t=3343958
Оригинал: http://kickass.to/object-oriented-analysis-and-design-with-applications-3rd-editio-t2753820.html

И на эти примеры из Qt:
- Fortune Server Example
- Threaded Fortune Server
- Fortune Client Expample
« Последнее редактирование: Март 11, 2014, 17:47 от 8Observer8 » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #5 : Март 06, 2014, 09:02 »

Причём автор этой книги делает ссылки на книгу и статьи Гради Буч Улыбающийся
Не удивительно, ребята небось просто переработали Буча для C#. Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Март 06, 2014, 10:33 »

Ну нифигасе задачка. Улыбающийся

Для таких случаев используют разные SCADA. Возьми готовую SCAD-у и забацай в ней то что нужно.

Например можешь эту OpenScada взять (она свободная и на Qt). В ней ты можешь и эмулировать сбор данных с датчиков и прочие няшки делать. Документация на русском, плюс там есть форум на котором ответят.

[нацпол]
 А может и не ответят, т.к. разработчики из Украины, и там не до датчиков сейчас. Улыбающийся 
[/нацпол]
« Последнее редактирование: Март 06, 2014, 10:36 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
OKTA
Гость
« Ответ #7 : Март 06, 2014, 10:36 »

Его тогда программистом на работу не возьмут, если он в OpenScada будет делать  Смеющийся
к тому же в OpenScada и программировать ничего не надо - только настраивать  Смеющийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #8 : Март 06, 2014, 10:37 »

Так у него ж в требованиях написано:

Цитировать
Приложение Оператора может быть разраоотанно на любой платформе и любой ОС, или может быть использованно готовое программное обеспечение.
Записан

ArchLinux x86_64 / Win10 64 bit
8Observer8
Гость
« Ответ #9 : Март 06, 2014, 10:51 »

Для таких случаев используют разные SCADA. Возьми готовую SCAD-у и забацай в ней то что нужно.
Спасибо! Уверен, мне в будущем это пригодится Улыбающийся

Ну нифигасе задачка. Улыбающийся
Тут нужно понимать, что никакого ледокола нет и это просто тестовое задание Улыбающийся

Так у него ж в требованиях написано:

Там написано, что на приложение оператора "можно забить" и использовать готовое решение. В вот Клиенты и Сервер должны быть написаны на .NET-или (C++(Qt))

Цитировать
- Драйвер Датчика и Сервер Данных должны быть разработаны на .NET-или (C++(Qt))

- Приложение Оператора может быть разработанно на любой платформе и любой ОС, или может быть использованно готовое программное обеспечение.
Записан
OKTA
Гость
« Ответ #10 : Март 06, 2014, 10:56 »

Пока в опенскаде этой что-либо настроишь человеческое, состаришься  Смеющийся
Записан
Bepec
Гость
« Ответ #11 : Март 06, 2014, 12:17 »

Задание простейшее на уровне 3 курса колледжа. Если убрать все красивости типо атомохода, то выливается - есть удалённый компьютер. С ним надо связаться. Нужно создать N клиентов и 1 сервер. Способ связи любой, http\сокеты\ftp. FortuneServer после переработки подойдёт на все 100%.

PS если такое не сделает парень, изучающий ООП уже ммм... ну месяца 2, то ничего он не изучал Показает язык
Записан
8Observer8
Гость
« Ответ #12 : Март 06, 2014, 12:28 »

Я так понимаю, что мне нужно будет в Qt создать несколько проектов:

1) Сервер. К нему подключаются клиенты (датчики). Сервер ждёт от датчиков показаний. Сохраняет показания (вместе с датой и временем) в бинарный (или текстовый файл)
3) Клиент [1, 2, 3, ..., и т.д.]. При запуске подключается к Серверу. Отправляет серверу показания (с периодом... правда, не знаю, кто задаёт период...).
2) Приложение Оператора. Соединяется с сервером. Отображает данные с датчиков, для этого делает запросы с периодом указанных секунд (можно менять период запросов). С Приложения Оператора можно сделать запрос прислать с сервера данные за определённый промежуток времени.

P.S. Пожалуйста, поправьте, если что-то не так.
« Последнее редактирование: Март 06, 2014, 12:30 от 8Observer8 » Записан
OKTA
Гость
« Ответ #13 : Март 06, 2014, 12:38 »

Сервер сам опрашивает датчики, судя из задания.
Сервер и датчики на одном компьютере типа, если что.

Я вот только не могу понять, зачем уточнение про Unix-подобную ОС..
« Последнее редактирование: Март 06, 2014, 12:42 от OKTA » Записан
8Observer8
Гость
« Ответ #14 : Март 06, 2014, 12:56 »

FortuneServer после переработки подойдёт на все 100%.
По-моему, FortuneServer может работать только с одним клиентом. Здесь нужен ThreadedFortuneServer

Сервер сам опрашивает датчики, судя из задания.
Да, точно! Спасибо! Улыбающийся

Сервер и датчики на одном компьютере типа, если что.
А мне кажется, что на разных.

Я вот только не могу понять, зачем уточнение про Unix-подобную ОС..
А это мне тоже непонятно, так как в задании написано можно применять фрейворк .Net, а он ведь только для Windows.
Записан
Страниц: [1] 2 3 ... 6   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.058 секунд. Запросов: 22.