PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   iCarDS. Bug Tracker или Книга жалоб и предложений. (http://pccar.ru/showthread.php?t=15236)

Евген_21 14.09.2016 16:26

Вложений: 1
Вложение 44792Не работает микшер Икара (версия 1.7.0.60).
На ранних все работало без проблем. Кто знает как решить проблему.

Krysanov 14.09.2016 19:58

Резет в конфигурации икара (отдельный .exe-ник)... запускал?

Евген_21 14.09.2016 20:10

Вложений: 1
Цитата:

Сообщение от Krysanov (Сообщение 369352)
Резет в конфигурации икара (отдельный .exe-ник)... запускал?

что за exe-ник) не понял.
Это ресет.

Andy_ro 15.09.2016 15:58

Цитата:

Сообщение от Евген_21 (Сообщение 369358)
что за exe-ник) не понял.
Это ресет.

Да. Речь о нём.

Krysanov 15.09.2016 19:59

:yes2::yes2::yes2:

pierrotm777 30.09.2016 20:09

Вложений: 2
The original phone plugin return not unicode text when i use the language french on my pc .
Is it possible to have this text in my language when i select french please ?

Lexx09 26.01.2017 14:56

Вложений: 1
Словил ошибку "skin.ini error". Тыканье в экран и последующие перезапуски iCarDS не помогли. Это меня немного взбесило. Надо останавливаться, доставать клавиатуру и самому разбираться, что не так, потому что обработка этой ошибки сделана в iCarDS криво. После возникновения ошибки не нашел ни одной валидной копии skin.ini. В папке скина - три файла (skin.bak, skin.chs, skin.def) одинакового размера, забитые нулями, а сам skin.ini заполнен параметрами частично. Файлы во вложении.

Немного поковырялся, выяснил вот что:
  • iCarDS после запуска создает копию skin.ini в файле skin.bak.
  • Перед изменением какой-либо настройки скина - skin.ini копируется в bak-файл, после этого новая настройка сохраняется в skin.ini.
  • При закрытии iCarDS - skin.ini копируется в bak-файл.
  • Проверка валидного skin.ini происходит в команде "ONSKINSTART", которая в начале файла ExecTBL.ini:
    1. Если skin.ini в порядке, то срабатывает команда "_ONSKINSTART" и активируется окно "iCar DS".
    2. Если skin.ini поврежден, то он восстанавливается из файла skin.bak.
    3. Если skin.bak поврежден, то skin.ini восстанавливается из файла skin.chs.
    4. Если skin.chs поврежден, то skin.ini восстанавливается из файла skin.def.
    5. Если skin.def поврежден, то вываливается ошибка "skin.ini error", и дальше уже сам разбирайся.
На самом деле валидность skin.ini и других файлов определяется просто наличием в них переменной is_skin_ini со значением "ok".

Алгоритм работы команды "ONSKINSTART":

Код:

If ($is_skin_ini$ = "ok") Then
        _ONSKINSTART
        Activate;iCar DS
Else
        LoadVarsFromFile;$SKINPATH$skin.bak
        If ($is_skin_ini$ = "ok") Then
                Load;ErrorCopyFromBak.skin
                RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$SKINPATH$skin.bak" "$SKINPATH$skin.ini"
                ReloadSkin
        Else
                LoadVarsFromFile;$SKINPATH$skin.chs
                If ($is_skin_ini$ = "ok") Then
                        Load;ErrorCopyFromDef.skin
                        RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$SKINPATH$skin.chs" "$SKINPATH$skin.ini"
                        ReloadSkin
                Else
                        LoadVarsFromFile;$SKINPATH$skin.def
                        If ($is_skin_ini$ = "ok") Then
                                Load;ErrorCopyFromDef.skin
                                RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$SKINPATH$skin.def" "$SKINPATH$skin.ini"
                                ReloadSkin
                        Else
                                Load;ErrorSkinIni.skin
                        EndIf
                EndIf
        EndIf
EndIf

Решил исправить это безобразие. Для это немного подправил алгоритм, заменив вывод экрана ошибки:
Код:

Load;ErrorSkinIni.skin
на:
Код:

$mySkinBackup$ = "$SKINPATH$skin.bu"
LoadVarsFromFile;$mySkinBackup$
If ($is_skin_ini$ = "ok") Then
        RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$mySkinBackup$" "$SKINPATH$skin.ini"
        ReloadSkin
Else
        Load;ErrorSkinIni.skin
EndIf

Т.е. вместо появления экрана с ошибкой - skin.ini будет восстановлен из резервной копии skin.bu, путь к которой задается в переменной mySkinBackup. К этому резервному skin.bu не имеет доступ iCarDS. Сам резервный skin.bu создается один раз, просто вручную сделав копию. Если резервного skin.bu нет - вывалится привычная ошибка "skin.ini error".

В общем, обновленная команда ONSKINSTART у меня теперь выглядит так:
Код:

"ONSKINSTART","if;strcomp($is_skin_ini$;ok);{_ONSKINSTART||Activate;iCar DS};{LoadVarsFromFile;$SKINPATH$skin.bak||if;strcomp($is_skin_ini$;ok);{Load;ErrorCopyFromBak.skin||RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$SKINPATH$skin.bak" "$SKINPATH$skin.ini"||ReloadSkin};{LoadVarsFromFile;$SKINPATH$skin.chs||if;strcomp($is_skin_ini$;ok);{Load;ErrorCopyFromDef.skin||RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$SKINPATH$skin.chs" "$SKINPATH$skin.ini"||ReloadSkin};{LoadVarsFromFile;$SKINPATH$skin.def||if;strcomp($is_skin_ini$;ok);{Load;ErrorCopyFromDef.skin||RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$SKINPATH$skin.def" "$SKINPATH$skin.ini"||ReloadSkin};{SETVAR;mySkinBackup;$SKINPATH$skin.bu||LoadVarsFromFile;$mySkinBackup$||if;strcomp($is_skin_ini$;ok);{RUNW;$SKINPATH$SCRIPTS\cskin.exe|"$mySkinBackup$" "$SKINPATH$skin.ini"||ReloadSkin};{Load;ErrorSkinIni.skin}}}}}"
В резервном skin.bu будут устаревшие настройки, но хотя-бы iCarDS автоматически запустится, без вмешательства человека.

Альтернативный вариант - использование бекапера Backup_Tool. Но его надо запускать вручную. Хотя можно прописать его запуск в ONSKINSTART...

Lexx09 26.01.2017 16:56

Хотя нет, Backup_Tool в текущем варианте не подойдет. Если нет бекапа за текущий день, то надо вручную искать и прописывать папку с последними бэкапом.

Вот если ее немного переделать так, чтобы при наличии специального параметра запуска Backup_Tool сама восстанавливала последний бэкап, то тогда можно прописать в ONSKINSTART ее запуск с этим параметром.

seriousstas 27.01.2017 01:35

Lexx09
Что в итоге нужно сделать ?
1. добавить ONSKINSTART...
2. сделать копию через mySkinBackup .
или достаточно п.1 ?

Lexx09 27.01.2017 10:42

Поправил немного ONSKINSTART...
  1. Сделай копию файла skin.ini в папке скина под именем skin.bu.
  2. Замени свою команду ONSKINSTART на мою.


Часовой пояс GMT +4, время: 23:35.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot