|
|
|
|
|
ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты **ubl-settings-datetime**
|
|
|
|
|
|
1. **ОПИСАНИЕ:**
|
|
|
Графическое средство настройки даты и времени в ОС UBLinux
|
|
|
|
|
|
1. **ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:**
|
|
|
Общий срок работ по созданию приложения составляет N дней:
|
|
|
- N дня - макет и дизайн приложения и его утверждение
|
|
|
- N дней - разработка приложения
|
|
|
- N дня - тестирование приложения и исправление ошибок
|
|
|
|
|
|
Перечень этапов разработки приложения:
|
|
|
- Разработка макета и дизайна приложения, самостоятельно
|
|
|
- Утверждение и доработка макета, самостоятельно
|
|
|
- Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
|
|
|
- Проектирование алгоритма работы приложения, самостоятельно
|
|
|
- Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
|
|
|
- Тестирование и исправление ошибок, самостоятельно
|
|
|
- Публикация
|
|
|
|
|
|
1. **ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:**
|
|
|
1. Приложение разрабатывается под нужды операционной системы UBLinux
|
|
|
1. Использование фирменного логотипа компании
|
|
|
1. Название приложения, техническое: **ubl-settings-datetime**
|
|
|
1. Название приложения, публичное: **UBConfig - Дата и время**
|
|
|
1. Стек технологий:
|
|
|
- Язык программирования: Bash или C++
|
|
|
- Приложение для разработки графического интерфейса: Glade 3
|
|
|
- Графические библиотеки: GTK3
|
|
|
- Операционная система разработки: UBLinux DB
|
|
|
1. Структура:
|
|
|
- **/usr/bin/ubl-settings-datetime (скомпилированный бинарный файл)**
|
|
|
Bash/C: Весь функционал сосредоточен в графической части, вызовы и исполнение процедур написаны на языках Bash, C++
|
|
|
- Файл **glade** скомпилирован в бинарный файл
|
|
|
Графическая часть, фронт
|
|
|
- Файл **css** скомпилирован в бинарный файл
|
|
|
Стили виджетов GTK
|
|
|
- **/usr/share/ubl-settings-datetime/images/{\*.png,\*.svg}**
|
|
|
Элементы изображений
|
|
|
- **/usr/share/ubl-settings-datetime/locale -> /usr/share/locale**
|
|
|
Локализация En/Ru
|
|
|
|
|
|
1. **ТЕХНИЧЕСКОЕ ЗАДАНИЕ:**
|
|
|
1. Ярлык (desktop-файл):
|
|
|
1. Type: Application
|
|
|
1. Exec: ubl-settings-datetime
|
|
|
1. Categories: X-UBL-SettingsManager;X-UBL-SystemSettings
|
|
|
3. Главное окно:
|
|
|
1. Требования к внешнему виду:
|
|
|
- Адаптивный (резиновый) дизайн.
|
|
|
- Минимальный размер окна до прекращения масштабирования 800 на 600 пикселей.
|
|
|
- Шапка в стиле приложений GTK3.
|
|
|
- В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением.
|
|
|
- Рабочая область делится на два блока, которые обрамлены рамками с заголовками: «Локальная настройка», «Глобальная настройка».
|
|
|
1. Требования к «Рабочей области». Выводятся группы настроек запуска:
|
|
|
1. Локальная настройка
|
|
|
- лейбл "Время".
|
|
|
- счётчик от 00 до 23 (часы).
|
|
|
- лейбл «:» (разделитель).
|
|
|
- счётчик от 00 до 59 (минуты).
|
|
|
- лейбл «Дата».
|
|
|
- поле ввода. Ввод даты в формате ДД.ММ.ГГГГ
|
|
|
- кнопка с иконкой календаря. Вызов объекта датапикер (визуальное представление выбора даты).
|
|
|
- кнопка «Синхронизировать». Синхронизация выставленных даты и времени с часами и датой системы.
|
|
|
- кнопка «Синхронизировать аппаратное время». Синхронизация даты и времени с временем BIOS рабочей станции.
|
|
|
- вложенный блок с заголовком «Часовой пояс».
|
|
|
- лейбл «Регион:».
|
|
|
- комбобокс. Перечень регионов, локализация стандартными средствами.
|
|
|
- лейбл «Зона:».
|
|
|
- комбобокс. Перечень городов с поправкой на часовой пояс. Например, «(UTC +06) Омск». Перечень регионов, локализация стандартными средствами.
|
|
|
1. Глобальная настройка
|
|
|
- чекбокс "Синхронизоравать через NTP"
|
|
|
- комбобокс с вариантами выбора сервера: «По умолчанию, DHCP, Вручную». При выборе «По умолчанию», второе поле для ввода вручную становится заблокированным для манипуляций - текст введённого поля серый. Содержание поля - ответ полученный на запрос «ubconfig --source=default get NTPSERVERS\_DEFAULT». При выборе «По умолчанию» в конфиг файл передаются значения: «NTPSERVERS=default». Неактивно, если не включен чекбокс "Синхронизоравать через NTP".
|
|
|
- поле ввода для ручного указания серверов. Неактивно, если не включен чекбокс "Синхронизоравать через NTP", выбрана опция «По умолчанию» в комбобоксе с вариантами выбора сервера.
|
|
|
- вложенный блок с заголовком «Часовой пояс».
|
|
|
- лейбл «Регион:».
|
|
|
- комбобокс. Перечень регионов, локализация стандартными средствами.
|
|
|
- лейбл «Зона:».
|
|
|
- комбобокс. Перечень городов с поправкой на часовой пояс. Например, «(UTC +06) Омск». Перечень регионов, локализация стандартными средствами.
|
|
|
|
|
|
1. **КОМАНДЫ**
|
|
|
1. Задать время: `date +%T -s "h:m:sec"` (кнопка "Синхронизировать")
|
|
|
1. Задать дату: `date +%Y%m%d -s "2000:06:14"` (кнопка "Синхронизировать")
|
|
|
1. Синхронизировать аппаратное время: `hwclock --systohc` (кнопка "Синхронизировать аппаратное время")
|
|
|
1. Проверка запущенных процессов синхронизации, например, `pidof -q systemd-timesyncd ntpd chronyd`.
|
|
|
1. Остановка сервисов:
|
|
|
1. systemd-timesyncd `[[ systemctl --quiet is-active systemd-timesyncd &>/dev/null ]] && systemctl stop systemd-timesyncd`
|
|
|
1. ntp `[[ systemctl --quiet is-active ntpd &>/dev/null ]] && systemctl stop ntpd`
|
|
|
1. openntp `[[ systemctl --quiet is-active openntpd &>/dev/null ]] && systemctl stop openntpd`
|
|
|
1. linuxptp `[[ systemctl --quiet is-active ptp4l &>/dev/null ]] && systemctl stop ptp4l`
|
|
|
1. Установка часового пояса: `ln -s /usr/share/zoneinfo/ && ln -s /usr/share/zoneinfo/REGION/ZONE` (комбобокс "Регион", "Зона")
|
|
|
1. Команды записи в конфигурационный файл:
|
|
|
1. Получить статус синхронизации NTP: `/usr/bin/ubconfig get network NTPSERVERS`
|
|
|
1. Задать значение NTPSERVERS:
|
|
|
1. Если выбран по умолчанию: `/usr/bin/ubconfig set network NTPSERVERS=default`
|
|
|
1. Если выбран dhcp: `/usr/bin/ubconfig set network NTPSERVERS=dhcp`
|
|
|
1. Если выбран вручную: `/usr/bin/ubconfig set network NTPSERVERS=АДРЕСА ИЗ ПОЛЯ`
|
|
|
1. Получить текущую временную зону: `/usr/bin/ubconfig get clock ZONE`
|
|
|
1. Задать временную зону: `/usr/bin/ubconfig set clock ZONE=REGION/ZONE`
|
|
|
1. Отключить синхронизацию NTP: `/usr/bin/ubconfig remove network NTPSERVERS`
|
|
|
|
|
|
1. **ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.**
|
|
|
1. Главное окно
|
|
|

|
|
|
|