Тахограф v.1.0 правила ЕСТР!
Версия 2.0 с поддержкой АТС (контроль времени работы по правилам FMCSA) в разработке.

======================================================================================================

v1.0

Отладка контроля правил ЕСТР завершена. Исправлены баги при контроле компенсаций 
сокращенного еженедельного отдыха.

Исправлен баг некорректного отображения текущего времени отдыха при начале игры
с тахографом.

Исправлены баги при сохранении резервных копий при загрузке более ранних сейвов.

В ini-файл добавлен параметр "имя профиля". 
profile_name
Он используется при создании имен резервных копий ini-файла.

В ini-файл добавлен параметр
make_backup_on_startup
При значении 1 при старте игры будет создаваться резервная копия ini-файла. Она может
пригодиться, если вы ошибочно запустите профиль, не соответствующий ini-файлу.

Расширены возможности настройки информационной строки. Для вождения и для отдыха
можно задать до 5 отображаемых строк.
drive_mask0 - drive_mask4
rest_mask0 - rest_mask4

Параметр clear_minicon удален за ненадобностью, прокрутку миниконсоли можно задать
с помощью drive_mask, rest_mask со значением "_".
drive_mask, rest_mask для которых значения не заданы - на экран не выводятся.
Для того чтобы задать в этих параметрах "пробел" - используйте символ "_"

======================================================================================================

v0.9b

Добавлен анализ еженедельного отдыха и компенсаций за сокращенный еженедельный отдых, настройки частоты
вывода сообщений, пользовательский формат строки сообщений.

Стандартная информационная строка в версии 0.9:

При движении:
00:30:30.947 : TACHOGRAPH: (o):(01:53); tm:(th 05:10); st:(th 07:47); ps:(02:37); dl:(04:34), ex:(1); wk:(11:32)
(o):(01:53) - статус (вождение, символ руля), время непрерывного вождения
tm:(th 05:10) - текущее время
st:(th 07:47) - свремя следующей остановки
ps:(02:37) - оставшееся время вождения до 45-минутной паузы
dl:(04:34) - оставшееся время вождения до ежедневного отдыха
ex:(1) - количество оставшихся 10-часовых смен
wk:(11:32) - оставшееся время вождения до еженедельного отдыха

На отдыхе:
00:31:11.751 : TACHOGRAPH: (h):(00:01); tm:(th 05:12); ps:(02:35); dl:(04:32), ex:(1), rd:(1); wk:(11:30), rd:(1); wk1:(30:29), wk2:(78:30), wk1cmp:(00:00), wk2cmp:(00:00)
(h):(00:01) - статус (отдых, символ кровати), время текущего отдыха
tm:(th 05:12) - текущее время
ps:(02:35) - оставшееся время вождения до 45-минутной паузы
dl:(04:32) - оставшееся время вождения до ежедневного отдыха
ex:(1) - количество оставшихся 10-часовых смен
rd:(1) - количество оставшихся 9-часовых ежедневных отдыхов
wk:(11:30) - оставшееся время вождения до еженедельного отдыха
rd:(1) - количество оставшихся 24-часовых еженедельных отдыов
wk1:(30:29) - время вождения за последнюю неделю
wk2:(78:30) - время вождения за последние 2 недели
wk1cmp:(00:00) - время необходимой компенсации еженедельного отдыха предыдущей недели
wk2cmp:(00:00) - время необходимой компенсации еженедельного отдыха пред-предыдущей недели (нужно использовать на текущей неделе)

Информационная строка может быть изменена самостоятельно, на основании стандартной информационной строки.
Формат стандартной строки смотрите в telemetry_tac.log
Для изменения строки необходимо создать в ini-файле соответствующую секцию настроек:

[settings]
drive_mask=TACHOGRAPH: (o):(#PAUSE_DRIVE#); tm:(#CURRENT_TIME#); st:(#NEXT_STOP_TIME#); ps:(#PAUSE_STOP#); dl:(#DAILY_STOP#), ex:(#DAILY_EXTENDED#); wk:(#WEEKLY_STOP#)
rest_mask=TACHOGRAPH: (h):(#CURRENT_REST_TIME#); tm:(#CURRENT_TIME#); ps:(#PAUSE_STOP#); dl:(#DAILY_STOP#), ex:(#DAILY_EXTENDED#), rd:(#DAILY_REDUCED#); wk:(#WEEKLY_STOP#), rd:(#WEEKLY_REDUCED#); wk1:(#1_WEEK_DRIVE#), wk2:(#2_WEEK_DRIVE#), wk1cmp:(#WEEK_1_COMPENSATION#), wk2cmp:(#WEEK_2_COMPENSATION#)

Доступные параметры (которые при выводе на экран заменяются рассчитанными значениями):
#CURRENT_TIME#
#CURRENT_REST_TIME#
#NEXT_STOP_TIME#
#PAUSE_STOP#
#PAUSE_DRIVE#
#DAILY_STOP#
#DAILY_DRIVE#
#DAILY_EXTENDED#
#DAILY_REDUCED#
#WEEKLY_STOP#
#1_WEEK_DRIVE#
#2_WEEK_DRIVE#
#WEEK_1_COMPENSATION#
#WEEK_2_COMPENSATION#
#WEEKLY_REDUCED#
весь остальной текст сообщения может быть любым (но наверное не стоит злоупотреблять служебными символами)

Добавлены параметры частоты вывода сообщений (для изменения дефолтных значений, просто включите их
в секцию [settings] ini-файла):
warning_rate=10
частота "белых" сообщений (дефолт - каждую минуту, кратную 10: :00, :10, и т.д.)
warning_rate1=5
частота "желтых" сообщений и первого предупредительного звукового сигнала (дефолт - каждую минуту, кратную 5: :00, :05, и т.д.)
warning_rate2=1
частота "красных" сообщений и первого предупредительного звукового сигнала (каждую минуту)

Добавлен параметр "очистки" миниконсоли - перед каждым сообщением тахографа, добавляет
4 пустых строки в лог. В результате при выводе сообщений тахографа остальные сообщения не видны 
и прокручиваются вверх, не засоряя видимую часть миниконсоли (по умолчанию - включено)
clear_minicon=1

Устранены различные ошибки в расчетных алгоритмах.

В архив добавлен просмотрщик ini-файлов AETRViewer.exe

======================================================================================================

v0.2a

Информационная строка в версии 0.2:

00:00:42.745 : TACHOGRAPH INFO (we 23:52): short rest stop in 04:30 / daily rest stop in 09:00 (+0 x 10:00 drive; +1 x 9:00 rest) / weekly rest stop in 18:02

(we 23:52) - текущий игровой день недели и время
+0 x 10:00 drive - количество оставшихся 10-часовых смен
+1 x 9:00 rest - количество оставшихся 9-часовых суточных отдыхов

Добавлен полный анализ и контроль суточного отдыха в соответствии с нормами ЕСТР.
Добавлен полный анализ контроль 10-часовых смен в соответствии с нормами ЕСТР.
Добавлен полный анализ контроль суммарных часов вождения за одну и две недели в 
соответствии с нормами ЕСТР.
В версии 0.2 отсутствует анализ и контроль еженедельных периодов отдыха
в соответствии с нормами ЕСТР.

Добавлено звуковое оповещение (короткий звук 1 раз в игровую минуту)
Файлы tac1.wav, tac2.wav - привязаны к цвету сообщений лога, один
проигрывается с желтыми сообщениями, второй с красными.

В ini файле можно задать время, при котором оповещения будут менять 
цвет и будет воспроизводиться звуковой сигнал:
[settings]
warning_time1=60
warning_time2=30
(это значения по умолчанию, если данной секции нет).

Обнаружена неустраненная пока ошибка.
После остановки, а затем короткого периода вождения (менее 1 игровых минуты),
если быстро перейти к длительному отдыху (enter в местах для отдыха, либо быстро
выполнить команду g_set_time), данный интервал зачтется как вождение.
Потому сразу после остановки на отдых, перед нажатием enter или вводом команды 
g_set_time рекомендуется подождать 1-2 игровых минут.

======================================================================================================

v0.1a

После долгих раздумий, воплотилась в жизнь стартовая версия тахографа по нормам ЕСТР.

Единственный способ общения плагинов с игроком - game.log.txt
Тахограф каждую игровую минуту закидывает туда строку с информацией сколько еще можно 
рулить до следующего перерыва или суточного/недельного отстоя.
Пример из моего лога:

00:58:01.403 : <WARNING> TACHOGRAPH INFO: short rest stop in 00:19 / daily rest stop in 01:50 / weekly rest stop in 00:00 

short rest - короткий перерыв 45 минут либо 15+30 минут.
daily rest - суточный отстой
weekly rest - еженедельный отстой

Соответственно чтобы получать эти данные в игре, нужно включить миниконсоль, для этого 
в конфиге (основном, а не который в профиле) ставим
uset g_developer "1"
uset g_minicon "1"
также нужно включить консоль
uset g_console "1"
открывается в игре по клавише "~", с помощью команды g_set_time <hh> <mm> мы будем в игре "отдыхать".

В игре отключаем усталость.

Временем движения считается (скорость > 0) или (работающий двигатель + отпущенный ручник). Т.е. 
заглохший двигатель в движении и работающий двигатель на отдыхе обрабатываются корректно.

Версия базовая, 0.1 альфа, реализован контроль коротких перерывов и контроль суточных перерывов 11 или 3+9.
Остальное пока в разработке (weekly rest stop in 00:00 - всегда ноль, можно пока не обращать внимания).

Плагин не показывает сколько надо отдыхать, он лишь показывает время, которое можно ехать, поэтому 
при отдыхе можно прогонять время по чуть-чуть, пока цифры rest stop не пересчитаются.

Плагин не анализирует профили (телеметрия не дает инфу о том, какой профиль сейчас загружен). Поэтому 
под каждый профиль надо сохранять telemetry_tac.ini и перед игрой подкладывать нужный. Более свежий 
профиль может "затереть" сохраненную инфу от более старого, если не подменить файлы.

Плагин вроде бы нормально переваривает загрузку недалеких сейвов. Теоретически конечно тут могут быть 
проблемы.

======================================================================================================

Установка:

Файл нужно положить в папку 
"..\Euro Truck Simulator 2\bin\win_x86\plugins\" для 32-битной версии игры
"..\Euro Truck Simulator 2\bin\win_x64\plugins\" для 64-битной версии игры
если папки Plugins нет - ее нужно создать (рядом с eurotrucks2.exe). Если файл размещен правильно - 
после запуска, в окне с профилями игра покажет сообщения что вы подключили плагин. 

Дополнительно требуется наличие установленного пакета пакета 
MS VC++ Redistributable 2012 (именно эта версия) x86/x64 соответственно.
