Ура! Я выполнил задание! Всем огромное спасибо!
Вот так на рисунке выглядят программы: Server, Viewer, Менеджер датчиков:
Исходники
Server:
https://github.com/8Observer8/IcebreakerServer/tree/with_sensors_managerViewer:
https://github.com/8Observer8/IcebreakerViewer/tree/with_sensors_managerМенеджер датчиков:
https://github.com/8Observer8/SensorsКраткое описание проекта:
"Сервер Данных"
- пользователь запускает программу "Сервер Данных"
"Драйвер Датчика"
- пользователь запускает программу "Драйвер Датчика" (на том же компьютере, что и
"Сервер Данных" или удалённом компьютере)
- добавляет датчики в таблицу, нажимая в меню "Добавить". В открывшимся диалоге
указывает: имя датчика, номер COM-порта. В меню есть так же пункты: "Редактировать", "Удалить" запись из таблицы.
- вводит IP адрес (или имя компьютера) и порт "Сервера Данных"
- нажимает кнопку "Подсоединиться к серверу"
- пользователь может наблюдать текущие значения каждого датчика в приложении "Драйвер Датчика" в таблице
"Сервер Данных"
- после того, как пользователь нажал кнопку "Подсоединиться к серверу" в приложении
"Драйвер Датчика", то "Сервер Данных" начинает принимать данные
- "Сервер Данных" сохраняет данные от датчиков в базу данных в таком виде: имя датчика,
значение датчика, дата и время съёма
"Приложение Оператора"
- пользователь запускает "Приложение Оператора"
- вводит IP адрес (или имя компьютера) и порт сервера
- нажимает кнопку "Подсоединиться к серверу"
- "Приложение Оператора" начинает отправлять запросы приложению "Сервер Данных" каждую секунду
- в ответ приложение "Сервер Данных" присылает текущие значения датчиков
- "Приложение Оператора" отображает текущие значения датчиков
- пользователь вводит требуемый временной диапазон (дата-время) и получает от
приложения "Сервер Данных" значения датчиков за указанный период
- пользователь так же может узнать значение указанного датчика в указанный момент
времени, а так же значения указанного датчика в указанный период времени
Дополнительная функциональность (которую я не успел реализовать на Qwt). Пользователь может
наблюдать текущие значения датчиков на графике в "Приложении Оператора" (графики рисуются в
реальном времени). Как в примере из Qwt: