Skip to content

fenok/qr-scanner

Repository files navigation

QR Scanner

Информация о сканере

Код вводится с помощью QR-сканера. Предполагается, что сканер ведет себя, как клавиатура, симулируя ввод буквенно-цифровых символов (a-z, A-Z, 0-9). Ввод кода завершается нажатием на Enter.

Установка и запуск

Необходимо запустить установщик. В процессе установки на рабочем столе появится ярлык. Далее необходимо запускать приложение через этот ярлык.

Настройки приложения

После первого запуска в директории с исполняемым файлом появится файл settings.json с дефолтными настройками:

{
  "idFieldName": "id", // Название столбца таблицы, в котором лежат коды, сравниваемые с кодом от сканера
  "scannedFieldName": "scanned", // Название столбца таблицы, в котором лежат флаги просканированности
  "scannedFieldValue": "1", // Значение просканированности, означающее "просканировано"
  "scannedDateTimeName": "scannedDateTime", // Название столбца таблицы, в котором лежат времена первого сканирования (ISO 8601)
  "waitingMessageText": "⌛ Ожидание сканирования", // Сообщение ожидания
  "successMessageText": "✔️ Регистрация {{name}} проведена успешно", // Собщение успеха
  "errorMessageText": "💩 Запись не найдена\n{{id}}", // Сообщение ошибки
  "duplicateMessageText": "🤨 Регистрация {{name}} уже выполнена", // Сообщение дубликата (такой код уже просканирован)
  "messageTimeoutSeconds": 3, // Время, через которое произойдет переход к сообщению ожидания
  "backgroundImagePath": "", // Путь до картинки на фоне
  "successImagePath": "", // Путь до картинки в сообщении успеха
  "errorImagePath": "", // Путь до картинки в сообщении ошибки
  "duplicateImagePath": "" // Путь до картинки в сообщении дубликата
}

Сообщения

В сообщениях можно использовать значения из любых полей таблицы с помощью следующего синтаксиса: {{fieldName}}, где fieldName - название столбца таблицы. Если такого поля в таблице нет, значение {{fieldName}} останется в итоговом тексте без изменений.

В сообщениях успеха и дубликата доступны все поля. В сообщении ошибки доступно только поле settings.idFieldName (по умолчанию id). В сообщении ожидания не доступно ни одно поле.

Также в сообщениях можно делать принудительный перенос строки с помощью символа \n.

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

Пути до файлов

Пути могут быть абсолютными или относительными (относительно исполняемого файла приложения).

Важно: в json символ \ является экранирующим. Чтобы указать путь, нужно заменить \ на \\ или /.

Все картинки являются опциональными. Пустая строка означает отсутствие картинки.

Картинки в сообщении сделаны по ТЗ, но сообщение с картинкой выглядит странно. Рекомендуется использовать эмодзи в тексте сообщений.

БД

Переход к действиям с БД осуществляется с помощью нажатия на Esc на основном экране.

Импорт БД

БД импортируется из CSV-файла. Файл должен полностью помещаться в оперативную память. В качестве разделителя используется запятая (,).

Первая строка - заголовки. Коды (settings.idFieldName) должны быть уникальными. В остальном структура таблицы остается на усмотрение пользователя. Важно изменить настройки так, чтобы приложение знало, как с ней работать.

При импорте существующие данные полностью заменяются новыми.

Дополнение БД

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

Экспорт БД

Есть возможность экспортировать БД в CSV-файл.

Полноэкранный режим

Полноэкранный режим переключается нажатием на F11.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published