26 November 2024, 20:20:14
⁣ ⁣
For the past 24 hours: 72 objects added, 103 objects edited, 15 objects removed.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - wdk

Pages: [1]
1
Сделал своё видение автоскачивания спидкамов. Состоит из трёх скриптов, запускающих друг друга в следующем порядке: sc_navi_auto -> sc_download_interface -> sc_download. Опишу их, начиная с самого нижнего уровня.

sc_download - занимается непосредственно скачиванием файла, практически аналогичен скрипту dload из шапки темы.

sc_download_interface - запускает скрипт sc_download, контролирует его работу, отображает сообщения об успешности/неуспешности скачивания, показывает прогресс скачивания (сколько уже скачалось), перезапускает скачивание в случае ошибки, копирует скачанный файл в папку навигационной программы. Скрипт sc_download вынесен в отдельный модуль дабы качать в отдельном потоке.

sc_navi_auto - проверяет наличие запущенной навигационной программы, в случае наличия выводит её на передний план. Если же не запущена, то проверяет дату создания файла спидкамов, в случае, если он старше заданного значения, то запускается sc_download_interface в специальном режиме (задержка 10 секунд перед запуском для возможности успеть отменить, если навигация нужна прямо сейчас, отсутствие необходимости нажимать ОК по завершении).

Всё это дело конфигурируется через файл sc.ini, перед использованием необходимо его поменять. Параметры следующие:
DownloadPath - путь для скачивания временного файла со спидкамами, лучше указать путь рядом со скриптами
NaviSpeedcamPath - путь к спидкамам в навигационной программе
FileUrl - прямая ссылка на спидкамы
AutoCloseDelay - задержка в секундах перед автоматическим закрытием окна скрипта sc_download_interface
DownloadAttemptCount - максимальное кол-во попыток скачивания
DownloadDelay - задержка в секундах между попытками скачивания
DownloadStartDelay - задержка в секундах перед началом работы
NaviPath - путь к навигационной программе
UpdateInterval - время в часах, после которого файл спидкамов считается устаревшим

Плюсы данного решения:
- Файл спидкамов не качается каждый раз при запуске устройства
- Есть интерфейс, в котором можно наблюдать процесс скачивания
- В случае обрыва соединения навигационная программа не получит кривой файл, поскольку скачивание идёт сначала во временную папку
- Если интернет появляется не сразу при запуске устройства, файл всё равно скачается, поскольку происход ит несколько попыток скачивания

Важно! Требуется версия мортскрипта 4.2, в архиве есть. 4.3 не подходит из-за глючности.
Ещё нюанс, писалось под свои реалии (разрешение 800х480 плюс слабое зрение), поэтому шрифт крупный, в экраны поменьше может не вписаться. Для исправления в файле sc_download_interface нужно поправить строку 34, изменив аргументы команды StatusListEntryFormat (35, 25) на меньшие значения. Либо можно вообще удалить эту строку.

Pages: [1]