в тестовом режиме заработало со скрипта даже без его модификации, осталось победить автозапуск Новитела и сохранение состояния эмулятора. Уже можно перенести в авто и там побаловатся. Думаю сегодня получится, вечером отпешусь.
в тестовом режиме заработало со скрипта даже без его модификации, осталось победить автозапуск Новитела и сохранение состояния эмулятора. Уже можно перенести в авто и там побаловатся. Думаю сегодня получится, вечером отпешусь.
Я правильно понял,если эмуль не запущен, то другие проги не получают gps данные?
Nissan Almera N16 продана
Тоже попробовал готовую сборочку. На домашнем в тестовом режиме все завелось на ура, вынь 7 х64. Вечером пошел пробовать в машину. Но тут засада, физически ГПС у меня висит на сом3 и с этим я ни чего поделать не могу. Переименовать порт или повесить на другой сом девайс не вариант в силу некоторых особенностей. Как быть? Хотелось, чтобы девайс остался на своем порте, а в качестве виртуального использовать сом2. Что делал: в фаилике config порт менял на сом2, в gpsgate в input - com3, output - com2. Либо в vspe пытался создать новое устройство: device type - splitter, vertual serial port- com2, data source serial port - com3. Затем сохранял настройки конфига путем замены Вашего готового конфига vspe. В итоге при запуске android.exe ошибка и окно эмулятора закрывается.
Последний раз редактировалось eclipsemmc; 21.01.2011 в 17:24.
Project "Октаха. Халк-PC". Готово - 100%
у меня в машине тоже СОМ3 занят. GPS физически висит на СОМ4. Стоит Sheret port. Все проги которые хотят полчить данные конектятся именно к нему. В системе есть не используемый СОМ2. Чтобы не рушить все я сделал следующее:
1. в файле config.vspe нашел цифру 3 и заменил ее 2. Может не получится т.к. текстовые редакторы коверкать могут. Ну или загрузить эту конфигурацию в vspe и там отредактировать и сохранить (это правильнее просто мне лень было =)
2.Запустил vspe и gpsgate.
3. Настроил GPSGate intput СОМ4, output СОМ2. GPSGate закрыть/открыть чтобы гарантировать сохранность настроек.
4. в файле config.ini для скрипта android.exe - исправил СОМ3 на СОМ2.
5. запускаем android.exe. Все работает.
в виду того что сейчас зима и в машине у меня винда живет на флешке, запуск androidа происходит оооччччччееень долго, эмуль на винмобиле в разы быстрее запускается.
Пасиб, будем тестить.
ЗЫ: у меня ssd, посмотрим как долго будет подыматься эмулятор
Project "Октаха. Халк-PC". Готово - 100%
Протестировав предложенный скрипт, я тут сделал некоторые выводы.
1) Гораздо удобнее применять не VSPE, а vspd. Потому что vspd не требует запуска всякий раз, когда нам нужно получить порты. Однажды настроили - и всё. Это упрощает и скрипт тоже. К тому же не требуется отдельный файл конфигурации.
2) Обойтись без GPSGate никак не возможно, потому что нужно выполнить уже известные противоречивые требования: на момент запуска эмулятора порт, с которым эмулятор работает, должен существовать, но данных на нём быть не должно. Таким образом, нужно иметь в системе заранее сформированную пару виртуальных (но считающихся физическими) портов, один из которых задействован для соединения с эмулятором, второй является выходом GPSGate. Если при старте эмулятора GPSGate закрыт, то на второй порт ничего не передаётся, а первый порт существует, что и требуется.
3) Скрипт я немного модифицировал. Из ini-файла убрал параметры VSPE и задержки. Смысла через ini выставлять задержки я не вижу, хотя мне пришлось некоторые временнЫе параметры изменить, но они и не были записаны в ini. Добавил параметр "Горячая клавиша Навитела". Также я изменил способ закрытия процессов, не нужных в данный момент, так как предложенный метод у меня приводил к ошибкам.
4) В Андроиде есть фича: назначение на приложения клавиш быстрого доступа. Нажимать эти клавиши необходимо совместно с клавишей "Поиск", каковой в эмуляторе является клавиша F5. Если на Навител назначить клавишу, например, "n", то, нажав "F5+n", можно запустить программу. Остаётся только передать через скрипт это сочетание клавиш, и проблема автозапуска решена.Код:#include <Constants.au3> #include <GUIConstantsEx.au3> If WinExists(@ScriptName) Then Exit ; если окно скрипта с новым именем уже существует, выходим AutoItWinSetTitle(@ScriptName) ; в противном случае даём окну новое имя $sLog = '' ; лог обнуляем $Config = @ScriptDir & "\config.ini" ; загружаем параметры из конфига $EmulatorCommand = IniRead ( $Config, 'Emulator', 'EmulatorCommand','' ) ; командная строка эмулятора $NavitelHotKey = IniRead ( $Config, 'Emulator', 'NavitelHotKey', '' ) ; горячая клавиша Навитела $GPSGatePath = IniRead ( $Config, 'Emulator', 'GPSGatePath', '' ) ; путь к GPSGate If ProcessExists ( 'GpsGateXP.exe' ) Then ; если GPSGate уже запущен, то ProcessClose ( "GpsGateXP.exe" ) ; закрываем GpsGate Sleep ( 500 ) ; пауза EndIf If ProcessExists ( 'emulator.exe' ) Then ; если эмулятор уже запущен, то ProcessClose ( "emulator.exe" ) ; закрываем эмулятор Sleep ( 500 ) ; пауза EndIf $EmulatorStart = Run ( @ComSpec & $EmulatorCommand, '' , @SW_HIDE , $STDOUT_CHILD ) ; запускаем эмулятор WinWaitActive ( "[CLASS:#32770]","",5 ) ; ждём 5 сек появления окна свойств COM порта Send ( '{ENTER}' ) ; нажимаем OK WinWaitActive ( "[CLASS:SDL_app]","",5 ) ; ждём 5 сек появления окна эмулятора While ProcessExists ( 'emulator.exe' ) ; пока существует процесс эмулятора, $sLog = StdoutRead ( $EmulatorStart ) ; читаем из потока эмулятора Sleep ( 1000 ) ; каждую секунду $array = StringRegExp ( $sLog, "Sucessfully mounted vfat filesystem" , 0 ) ; если в поток вышло указанное сообщение, If $array Then ExitLoop ; выходим из цикла WEnd Sleep ( 100 ) ; пауза WinActivate ( "[CLASS:SDL_app]" ) ; переходим в окно эмулятора Send ( '{F2}' ) ; жмём F2, разблокируем экран Sleep ( 2000 ) ; ждём 2 сек WinActivate("[CLASS:SDL_app]") ; переходим в окно эмулятора Send ( "{F5 down}" ) ; жмём F5 Send ( "{"&$NavitelHotKey&"}" ) ; жмём горячую клавишу Send ( "{F5 up}" ) ; отпускаем F5 Run ( $GPSGatePath ) ; запускаем GpsGate Exit
Последний раз редактировалось Papazol; 22.01.2011 в 21:46.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)