# MpaySoftUpdater change log

## [0.1.20] - 2018-03-12 13:10
### Fixed
  * Не работала миграция данных КЯ при измененном пароле сис. админа.
    Теперь в процессе импорта данных в КЯ пароль подхватывается из этих данных (таблица 2, ряд 30, поле 1).
  * [Minor] В режиме инициализации исправлен заголовок на начальном окне ожидания инциализационного пакета. 
    Вместо заголовка "Инициализация устройства", выводилось "TextLabel" и подзаголовок "TextLabel".

## [0.1.19a] - 2018-02-12 18:00
### Fixed
  * Не работала миграция данных КЯ. Исправлено: добавлен ещё один путь для поиска данных: /root/SoftUpdate/cashcore/CashcoreMigration.txt

## [0.1.18a] - 2017-11-23 16:45
### Fixed
  * Исправлено падение при инициализации устройства, если нет бумаги.

## [0.1.17] - 2017-11-22 20:15
  * Добавлен рестарт dhcp при: ожидании пакета инициализации, тестировании wifi.
  Тесты:
  * Теперь тесты связи используют пинг для определения наличия реальной связи.
  * Если при старте апдейтер входил в режим тестрования и файл /root/DeviceInit.ini отсутствовал, то приложение падало.
    Теперь не падает, а просто запускает КЯ и МиниКассир, записав предупреждение в лог.
  * Скрипты, поднимающие wi-fi, запускаются в режиме тестирования теперь только если не были запущены из init.d
    Раньше в режиме тестирования запускались всегда, что могло приводить к нерабочему wifi.

## [0.1.16] - 2017-09-27 17:00
### Fixed
  * Если при обновлении КЯ файл миграции был не найден, то обновление считалось не успешным и оставляло систему в неполностью
    обновленном состоянии (в режиме тех. обнуления). Теперь, если /root/cashcore/CashcoreMigration.txt не найден, то миграции КЯ 
    не происходит, однако само КЯ обновляется и далее следует обновление остальных компонентов. Эта ситуация должна проявляться 
    только при отладке, а в боевых условиях CashcoreMigration.txt всегда создается MiniKassir'ом при обновлении.
  * Возвращено удаление папки с обновлением после обновления из updater'a. В 14 и 16 версиях подразумевалось, 
    что это делает скрипт, но не было учтено, что если он не выполнится, то папка не удалится и 
    обновление будет запускаться каждый раз. Поэтому сейчас удаление происходит и из скрипта и из приложения.
   
## [0.1.15] - 2017-09-27 15:10
### Fixed
  * Обновление КЯ искалось в корне архива /root/SoftUpdate. Теперь ищется в /root/SoftUpdate/cashcore.

## [0.1.14] - 2017-09-26 20:20
### Added
  * Обновление файловой системы вынесено в отдельный скрипт 
    (должен содержаться в папке с обновлением и называться MpaySoftUpdate.sh).
    Это изменение не коснулось КЯ, т.к. ему требуется сложная логика обновления.

## [0.1.13] - 2017-07-21 20:20
### Added
  * Добавлено обновление init.d 
    Для этого нужно создать в архиве папку init.d с необходимыми скриптами.
    После копирования файлов из обновления, всем файлам, находящимся в init.d, выставляется exe-атрибут.

## [0.1.12] - 2017-07-10 19:20
### Added
  * Добавлено обновление wi-fi.

## [0.1.11] - 2017-07-07 20:00
### Added
  * Добавлено обновление gprs-демона.

## [0.1.10] - 2017-05-17 17:10
### Added
  * Добавлена опция, позволяющая при окончании тестирования и наличии неуспешных тестов
    отказаться от дальнейшего запуска тестов при старте устройства.
### Changed
  * [!] Теперь используется новая библиотека доступа к КЯ.
  
## [0.1.9] - 2017-04-05 15:00
### Added
  * Добавлена версионность обновления КЯ.
    При обновлении КЯ сравниваются версии из файлов Version.txt 
    (2 файла: один в обновлении в папке cashcore, другой - на устройстве, в папке cashcore).
    Если один из файлов не найден, происходит обычное обновление.
    Формат Version.txt:
      1-я строка - номер сборки (int)
      2-я строка (необязательная) - условие обновления. Допустимые значения: < , <= , = , >= , >
        Слева от знака подразумевается версия обновления, справа - установленная версия.
        Если уловие не задано (2-я строка отсутствует), то обновление происходит, как будто задано >
        (т.е. для запуска процедуры обновления версия обновления должна быть больше версии установленного ПО).

## [0.1.8] - 2017-04-05 01:00
### Added
  * Теперь можно рядом с КЯ положить Version.txt, где указана текущая версия сборки КЯ.
    В след. версии updater'a этот файл будет учитываться при обновлении КЯ.
### Fixed
  * Исправлено зависание при обновлении КЯ.

## [0.1.7] - 2017-03-16 19:40
### Fixed
  * При тестировании дисплея не работает кнопка 'Прервать'. После нажатия на эту кнопку начинается тестирование.
    При этом, тестирование дисплея считается неуспешным.

## [0.1.6] - 2017-03-01 17:10
### Fixed
  * Bug. Updater падает после инициализации устройства при отсутствии бумаги. Этот же баг проявляется при обновлении.
    Ошибка возникает из-за попытки создать окно предупреждения об отсутствии бумаги в потоке, отличным от потока UI.
    Убраны отдельные потоки инициализации и обновления: теперь всё происходит в потоке UI.

## [0.1.5] - 2017-02-16 01:00
### Fixed
  * Если пакет инициализации не приходил за один read из сокета, то некорректно применялся пустой пакет.

## [0.1.4] - 2017-02-10 19:35
### Added
  * После успешного импорта таблиц добавлена перезагрузка КЯ.

## [0.1.3] - 2017-02-10 19:00
### Fixed
  * В режиме тестирования не распечатывался номер ФН, даже если он был установлен.

## [0.1.2] - 2017-02-10 18:40
### Added
  * В режиме тестирования добавлена печать текущей версии ПО, зав. номера и номера ФН.
  * Добавлены вызовы sync() при обновлении.

## [0.1.1] - 2017-02-10 02:30
### Fixed
  * Неверное задание текущего времени в КЯ после обновления (переполнение года, теперь год задается как 'currentYear - 2000').
  * Исправлена ошибка доступа к КЯ из потока обновления (см. setThreadAffinity() method in IRzKktSession).
  * Исправлено "слетание" exe-атрибутов запускаемых файлов cashcore (QDir::rename() не сохраняет эти атрибуты).
  * Исправлен неверный порядок действий при обновлении КЯ: сначала происходил импорт данных, затем тех. обнуление. Теперь сделано наоборот.

## [0.1.0] - 2017-02-09 18:20
### Changed
  * Уменьшено замусоривание лога от gprs-демона.
### Fixed
  * Если updater обнаруживал, что задач у него нет (StartState = Exit), то НЕ запускал КЯ. Исправлено. 

## [0.0.9] - 2017-02-08 23:00
### Added
  * Добавлен импорт таблиц КЯ.
  * Добавлено задание пароля консоли из пакета инициализации на устройтсве.

## [0.0.8] - 2017-02-06 15:55
### Added
  * Добавлен пароль от консоли в пакет инициализации.

## [0.0.7] - 2017-02-01 17:45
### Added
  * Теперь updater запускает загрузку wi-fi сам, не полагаясь на автозагрузку.
### Changed
  * Теперь сервер инициализации после отправки ответа всегда сразу же отключает клиента (раньше только при ошибке).

## [0.0.6] - 2017-01-31 12:00
### Added
  * Добавлен запуск MiniKassir'a при выходе из updater'a (убран из автозагрузки), чтобы продолжала работать консоль при запущеном updater'е.

## [0.0.5] - 2017-01-30 17:40
### Added
  * Добавлен запуск ядра из апдейтера.
  * Добавлен режим инициализации устройства.
  * Добавлен режим тестрования устройства.

## [0.0.1] - 2016-12-22 11:45
### Added
  * Initial release.