
Сообщение от
Papazol
В приципе, GPSGate для работы не нужен, если только не используется логгинг. Я вот сейчас поставил эмулятор на нетбук и подключил приёмник. При простом подключении (у меня это COM5) эмулятор закапризничал и не стал грузиться (как и положено!) Пришлось создать пару портов с помощью vspd. Запарил COM5 и COM6. Последний указал в ключе эмулятора. И запустилось всё. Жаль, что в доме приёмник не видит спутники, попробую в другой комнате у окна.
Отпишись мне в аську, если есть возможность !
При включении эмулятора на ком-порте не должно быть никаких данных, поэтому у тебя и запустилось!!! (ты сам пишешь, что не ловил GPS)
Если неверишь - запусти гипертерминал на порту и посомтри. Если данных нету, или их мало, то эмуль стартует!
Я бы с удовольствием сделал фильт какой-либо, не посылающий каждую милисекунду данные в ком порт. эТО ненужно и ГЛупо!!!
Выкладываю скрпит . каждая команда имеет описание:
Код HTML:
#include <Constants.au3>
#include <GUIConstantsEx.au3>
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
$sLog = ''
$Config = @ScriptDir & "\config.ini" ; загружаем параметры из конфига
$ComConnectPatch = IniRead($Config, 'Emulator', 'ComConnectPatch','')
$GpsGatePatch = IniRead($Config, 'Emulator', 'GpsGatePatch','')
$EmulatorPatch = IniRead($Config, 'Emulator', 'EmulatorPatch','')
$ComConnectExe = IniRead($Config, 'Emulator', 'ComConnectExe','')
$GpsGateExe = IniRead($Config, 'Emulator', 'GpsGateExe','')
$EmulatorExe = IniRead($Config, 'Emulator', 'EmulatorExe','')
$Sleep1 = IniRead($Config, 'Emulator', 'Sleep1','500')
$Sleep2 = IniRead($Config, 'Emulator', 'Sleep2','400')
$Sleep3 = IniRead($Config, 'Emulator', 'Sleep3','100')
$Sleep4 = IniRead($Config, 'Emulator', 'Sleep4','100')
If ProcessExists('GpsGateXP.exe') Then
RunWait('taskkill /f /im GpsGateXP.exe') ; закрываем GpsGate
Sleep($Sleep1)
EndIf
If ProcessExists('emulator.exe') Then
RunWait('taskkill /f /im emulator.exe') ; закрываем эмулятор
EndIf
If Not ProcessExists('VSPEmulator.exe') Then
Run($ComConnectPatch)
Sleep($Sleep2) ; запускаем VSPE
EndIf
Sleep($Sleep3)
$hIPconfig = Run (@ComSpec & $EmulatorPatch, '' , @SW_HIDE , $STDOUT_CHILD)
Sleep($Sleep4)
WinWaitActive("[CLASS:#32770]","",3) ; ждём пока не появится окно
Send('{ENTER}') ; нажимаем ок
WinWaitActive("[CLASS:SDL_app]","",3) ; ждём появленяи эмулятора
While ProcessExists('emulator.exe')
$sLog = StdoutRead($hIPconfig)
Sleep(1000)
$array = StringRegExp ( $sLog, "Sucessfully mounted vfat filesystem" , 0 ) ; ждём загрузки эмулятора
If $array Then ExitLoop
WEnd
Sleep(100)
WinActivate("[CLASS:SDL_app]")
Send('{F2}')
Run($GpsGatePatch) ; запустить GpsGate
Exit
По поводу тормозов. Выключите нафиг 3д режим в нафителе. По мне так неудобно и безсмыслено. Сделайте меньше детализацию.
Если тормозит всеравно, то можете ставить меньше разрешение + выставить масштаб командой -scale 2 например, см в шапке описание и DPI -dpi-device 120