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

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

Страниц: 1 [2] 3 4 ... 6   Вниз
  Печать  
Автор Тема: Система сбора и отображения данных  (Прочитано 40222 раз)
Bepec
Гость
« Ответ #15 : Март 06, 2014, 12:59 »

А, ну всё правильно меня поправил OKTA. Тут гораздо проще. На 1 компе сервер и датчики. На втором клиент с оператором. Вот и всё. И как раз fortune server подойдёт на 100% Веселый Оператор в задании то один.
Записан
8Observer8
Гость
« Ответ #16 : Март 06, 2014, 13:09 »

Да, кстати, скорее всего, вы правы, сервер, ну ,к примеру, через USB-порты считывает данные от датчиков на одной машине.

Оператор в задании то один.
В задании сказано, что один. А на практике, возможно, нужно будет предусмотреть возможность запуска нескольких, ведь ледокол то большой Улыбающийся
« Последнее редактирование: Март 06, 2014, 13:11 от 8Observer8 » Записан
Bepec
Гость
« Ответ #17 : Март 06, 2014, 13:18 »

А ещё возможно система будет общаться с ядерным реактором и в зависимости от потребления мощностей на ледоколе будет регулироваться процесс распада в ядре.

PS идите от задачи, а не от "может быть". Показает язык
Записан
OKTA
Гость
« Ответ #18 : Март 06, 2014, 13:23 »

Соответственно еще вопрос  - каким методом будешь "читать данные из датчика"?
Записан
8Observer8
Гость
« Ответ #19 : Март 07, 2014, 11:18 »

Соответственно еще вопрос  - каким методом будешь "читать данные из датчика"?

Хороший вопрос и он на данный момент самый трудный.

Сейчас продумываю такую идею. В классе IcebreakerServer будут методы, которые возвращают текущее значение с датчика (сделаю случайное число из разных диапазонов для каждого датчика, чтобы их различать по данным)

Код
C++ (Qt)
class IcebreakerServer
{
   // ...
private:
 
   int sensor_01();
   int sensor_02();
   int sensor_03();
   int sensor_04();
   int sensor_05();
}

В бессконечном цикле с задержкой по времени, буду вызывать эти функции.
« Последнее редактирование: Март 07, 2014, 11:36 от 8Observer8 » Записан
OKTA
Гость
« Ответ #20 : Март 07, 2014, 11:22 »

Так датчики тоже надо отдельно реализовать, разве нет?
Лучше не бесконечный цикл, а QTimer использовать я думаю и по таймауту вызывать соответствующие слоты)
Записан
popper
Гость
« Ответ #21 : Март 07, 2014, 11:24 »

для обработки информации с каждого датчика запущен свой процесс или тред (в дальнейшем - "Драйвер Датчика").
Мне тоже кажется, что исходя из этой записи в ТЗ, функционал опроса датчика нужно вынести как минимум в отдельный класс.
Записан
8Observer8
Гость
« Ответ #22 : Март 07, 2014, 11:35 »

Так датчики тоже надо отдельно реализовать, разве нет?

Как это? Я представляю, что у нас есть комьютер с кучей USB-портов. К каждому порту подсоединён свой датчик. У сервера есть такие функции, которые возвращают данные из портов:
Код
C++ (Qt)
   int sensor_01();
   int sensor_02();
   int sensor_03();
   int sensor_04();
   int sensor_05();
 

Лучше не бесконечный цикл, а QTimer использовать я думаю и по таймауту вызывать соответствующие слоты)

Хорошо, сделаю через QTimer.

Я сейчас создал два проекта:
- консольный. Назвал его: IcebreakerServer
- оконный (QMainWindow). Назвал его: IcebreakerViewer

Сейчас хочу наладить взаимодействие между IcebreakerViewer и IcebreakerServer на основе примеров: "Fortune Server" и "Fortune Client"

для обработки информации с каждого датчика запущен свой процесс или тред (в дальнейшем - "Драйвер Датчика").
Мне тоже кажется, что исходя из этой записи в ТЗ, функционал опроса датчика нужно вынести как минимум в отдельный класс.

Да, Вы правы, но для меня это пока сложно. Я для начала сделаю через функции, а потом подумаю, что дальше делать.
Записан
Bepec
Гость
« Ответ #23 : Март 07, 2014, 11:44 »

А вот тут уже переход к ООП нужен, а не функциональное программирование Веселый
Классы:
Менеджер Датчиков - Сервер - Клиент.
Опрос, хранение, выдача - Запрос, получение, хранение, отдача клиенту - Получение, отображение.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #24 : Март 07, 2014, 11:49 »

Как это? Я представляю, что у нас есть комьютер с кучей USB-портов. К каждому порту подсоединён свой датчик. У сервера есть такие функции, которые возвращают данные из портов:
Вы серьезно? Вас не возьмут на работу. Улыбающийся
Вы хотите захардкодить все датчики в одном классе? А если нужно будет в процессе работы программы добавлять/удалять датчики?
Они могут выходить из строя....

Почитайте уже книгу.  Строит глазки
Записан
OKTA
Гость
« Ответ #25 : Март 07, 2014, 11:52 »

Ну, видимо самый просто вариант - это когда у каждого датчика свой временный файл и сервер читает эти файлы.
А вариант посложнее, это использовать именованные каналы, а соответственно для Qt - QLocalServer и QLocalSocket.
Записан
8Observer8
Гость
« Ответ #26 : Март 07, 2014, 11:54 »

Вы хотите захардкодить все датчики в одном классе? А если нужно будет в процессе работы программы добавлять/удалять датчики?
Они могут выходить из строя....
А что мешает разработчику открыть код с классом и чуть-чуть его подкорректировать?

Почитайте уже книгу.  Строит глазки
Пока я полностью прочитаю эти книги... Мне нужно сочитать это с практикой. Я и в книги заглядываю, и пытаюсь на практике, что-то делать.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #27 : Март 07, 2014, 12:00 »

А что мешает разработчику открыть код с классом и чуть-чуть его подкорректировать?
Для этого разработчик должен находится на ледоколе. Улыбающийся
К тому же сделать это без остановки программы вряд ли получиться.

Пока я полностью прочитаю эти книги... Мне нужно сочитать это с практикой. Я и в книги заглядываю, и пытаюсь на практике, что-то делать.
Прочитайте одну главу, где разбирается пример с метеостанцией.
Записан
Bepec
Гость
« Ответ #28 : Март 07, 2014, 12:02 »

Чую вся та тема с ООП не дала ничего полезного Веселый
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #29 : Март 07, 2014, 12:03 »

Чую вся та тема с ООП не дала ничего полезного Веселый
В той теме от ООП было только название.
Записан
Страниц: 1 [2] 3 4 ... 6   Вверх
  Печать  
 
Перейти в:  


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