Представляет из себя приложения для анализа и отображения данных с датчиков приборов МФ МГТУ им. Н.Э. Баумана. Является консольным приложением.
itertools
- крейт для удобных функций итераторовchrono
- используется для чтения дат в файлах данныхencoding_rs
- используется для чтения файлов с кодировкой Windows-1251csv
- используется для парсинга CSV файлов данныхserde
иserde_json
- используются для парсинга JSON файлов данныхrusqlite
- используется для взаимодействия с БД SQLitecrossterm
иtui-rs
- используются для TUI интерфейса
Судя по проведённым мною тестам, приложение должно работать на всех популярных ОС, а именно Windows и Unix-like. Если у вас на микроволновке не запустилось, эта ваша проблема. Однако учитывайте, что создатель (т.е. я) создавал на ОС Linux, потому на других ОС вполне возможны баги.
Очевидно, необходим компилятор ЯП Rust
. Желательно установить последнюю Stable версию.
(Слава богу тут я не использовал Nightly фич компилятора).
Далее необходимо собрать бинарник: cargo build --release
.
И бинарник будет ждать вас по пути: ./target/release/practice
.
Приложение представляет из себя консольное приложение с вкладками, и в каждой вкладке, а также её режиме, вы можете наблюдать разное управление. Управление осуществляется посредством клавиатуры. Также учитывайте, что ниже представлены сочетания клавиш в особом регистре и нотации:
n
- без каких либо модификаторовN
илиS-n
- Shift+nC-n
- Ctrl+nC-N
илиC-S-n
- Ctrl+Shift+n
Управление во всех вкладках (обычный режим вкладок):
C-q
- выход из приложенияTab
- переход к следующей вкладкеS-Tab
- переход к предыдущей вкладкеN
- открытие новой вкладки "График"
Управление в обычном режиме:
q
- выход из приложенияUp
,Down
,Left
,Right
(стрелки) - навигация по дереву сенсоровSpace
илиEnter
- раскрытие/скрытие пункта дереваi
- открытие окна импорта файла/директории (в данной директории)
Управление в окне импорта файла/директории:
Esc
илиq
- закрытие окнаUp
,Down
- переключение между файлами вверх/внизLeft
- переход в родительскую директорию, если этого возможноRight
илиEnter
- открывает файл/переходит в директорию-потомкаI
- импортирует все файлы в данной директории (не выделенной, а данной)
Управление в обычном режиме:
q
- закрывает данную вкладкуe
- включает режим редактирования полей
Примечание: график отрисовывается только в обычном режиме.
Управление в режиме редактирования полей:
q
- выход из режима редактирования полейa
- добавляет новый графикd
- удаляет последний графикS-Tab
илиLeft
- переходит к предыдущему полюTab
илиRight
- переходит к следующему полюUp
,Down
- переходит на строчку вверх/внизEnter
- открывает редактирование выбранного поля
Примечание: при выходе из режима редактирования может быть небольшое зависание программы, т.к. обрабатываются данные для отображения на графике.
Примечание 2: если после редактирования появились ошибки в полях "ввода текста", ничего не обновится.
Управление в режиме редактирования поля "Ввод текста":
Esc
илиEnter
- сохраняет полеLeft
,Right
- перемещает курсор влево/вправоHome
,End
- перемещает курсор в начало/конец поля вводаBackspace
- стирает символ перед курсором- Любой символ подлежит вводу в поле
Управление в режиме редактирования поля "Меню":
Esc
илиq
- выходит из меню без сохранения выбораEnter
- выходит из меню с сохранением выбораUp
,Down
- переключается между пунктами меню вверх/вниз
Поля отсортированы по 4-ём категориям:
Поле данных
- параметр, который будет соответствовать осиСерийник
- параметр, который будет определять, с какого серийного номера прибора будут браться данныеМин.знач./Датчик
:Мин.знач.
- используется для установки нижней границы X. Может быть датой формата%Y-%m-%d %H:%M:%S
или числом.Датчик
- дополнительное поле данных для первого поля у Y, необходимое для полей данных:<Датчик>/Эфф.темп.
- датчик температуры
Макс.знач./Датчик
:Макс.знач.
- используется для установки верхней границы X. Может быть датой формата%Y-%m-%d %H:%M:%S
или числом.Датчик
- дополнительное поле данных для первого поля у Y, необходимое для полей данных:<Датчик>/Эфф.темп.
- датчик влажности
Примечание 1: при использовании поля данных X, не являющемуся date
, будет строиться три графика сразу,
у которых такая связь:
Y{}.1
- график минимумов значенийY{}.2
- график средних значенийY{}.3
- график максимальных значений
Примечание 2: не рекомендуется отображать больше 7 графиков, т.к. их цвета тогда будут повторяться.