Стол, яркий свет, двое в белых халатах, один активно орудует скальпелем. Ассистент удивленно:
Установка, настройка фронт-энда.
Необходимый софт можно скачать здесь . Кроме собственно дистрибутива RR для работы фронт-энда понадобится установленный WinAmp версии 2.95 (возможно, сгодятся и более свежие, но эта - гарантированно рабочая применительно к данной задаче). Сразу важное замечание: очень многие антивирусы ругаются на все, что связано с RoadRunner`ом, начиная от его инсталлятора, заканчивая собственно фронт-эндом. Не вдаваясь в подробности, можно сказать одно - никаких зловредов в этом пакете нет. Смело распаковываем архив и запускаем инсталлятор. После установки на рабочем столе появятся две иконки: RoadRunner и RR Config. Особо нетерпеливые кликнут по первой. И увидят следующее сообщение : Причина этого в том, что сначала необходимо сконфигурировать софтину для корректной работы. Так что соглашаемся с тем, что погорячились, нажавши кнопочку "OK" и запускаем конфигуратор: Настройки закладки General пропустим - они достаточно прозрачные (а там, где недостаточно прозрачные - хорошее поле для экспериментальных исследований методом научного тыка ), обратимся сразу к настройке, вызвавший сбой запуска самого фронт-энда - закладке Skins. Как видно из приведенного скриншота, в комплекте с софтиной идет лишь один скин BMV2. Его и выбираем. Собственно, для дальнейших экспериментов, проделанного достаточно: уже можно потыкать на кнопки, посмотреть, что и как работает, поковыряться с настройками. Чтобы избавить от напрасно потраченного времени, скажу лишь, что практически все опции, представленные в списке настроек после раздела Music - излишни: радио, GPS, телефон, погода и т.п. если потребуют реализации, то в любом случае, делать это надо по другому. Как? Об этом чуть позже... Пока же, для облегчения задачи изучения работы RR, еще одна полезная ссылка - довольно толковый перевод команд, используемых в данной оболочке: Описание_команд_оболочек_Road_Runner.doс Для владеющих английским, как своим - в директории RR есть исходный файл Skin Commands.txt Внимательно покурив эти документы, можно очень многое понять о том, какие возможности предоставляет эта оболочка в плане ее функциональности и возможности тонкой ее настройки. Еще одно важное замечание - для того, чтобы избежать дальнейшей путаницы, сразу оговорим терминологию: понятие "Скин" (шкурка) в нашем случае будет многозначным. Дело в том, что для конкретного фронт-энда существует масса скинов (даже здесь вы уже столкнулись как минимум с двумя или тремя из них: BMV2, BMW-E36...). Все они отличаются графикой, функциональностью и т.п., но главное - каждый из них состоит в свою очередь из массы других скинов (или скринов, если применять терминологию того же Skin Editor). Сцены, экраны, скины - как их ни назови - суть та же: это графическое представление реализации той или иной функции оболочки (навигация, воспроизведение музыки, etc). Поэтому в дальнейшем будем применять две версии названия: либо "скрин", либо, если не оговорено особо - "скин", понимая, что в данном случае речь идет не о глобальном скине BMV2, а о его составляющих.
После того, как в конфиге прописан корректный путь к единственному пока скину BMV2, вполне можно запускать сам RR:
Установленная сборка RR дает возможность немного поиграться с тем, что есть, но для более глубокого понимания принципов работы этой оболочки необходимо рассмотреть конкретные примеры реализации тех или иных функций, чем мы сейчас и займемся. До сих пор единственная возможность, имевшаяся в вашем распоряжении - это переключение между сценами скина (ну, может быть, если вы осилили настройку конфига - была еще возможность воспроизведения музыки/видео). Покажем теперь, как прикрутить какое-нибудь приложение, и для примера воспользуемся растровым пакетом OziExplorer. Программа эта платная, но демоверсию можно скачать на оффсайте. Для корректного встраивания любого приложения, необходимо правильно задать имя его окна, чтобы RR мог его перехватить и вписать в соответствующий скрин. Задача на самом деле отнюдь не тривиальная: очень многие программы в этом смысле являются крепкими орешками, но на этот случай есть специательная софтинка с названием WinSpy (выложена здесь же ). Пример того, как воспользоваться ее услугами приведен ниже: Цепляем крестик прицела, переносим его на интересующее нас окно (при этом оно выделяется черной рамкой) и в графе Class смотрим на соответствующее название: TfmMainForm (кто бы мог подумать?!). Запоминаем эти буковки... Следующим шагом открываем в текстовом редакторе файл Menu.skin (он находится в папке \RoadRunner\Skin\BMV2\ ), выбираем там кнопку, на которую мы хотим повесить наше приложение (предположим, что это кнопка B05 с координатами 477, 233 по x, y и высотой/шириной 230,101) и записываем на нее такую конструкцию: B05,477,233,230,101,"LOAD;OZI.SKIN;OZI||RUNQ;C:\oziexplorer\OziExpTrial.exe|/mmstart;!TfmMainForm","" Первая часть команды (LOAD;OZI.SKIN;OZI) подразумевает, что вы вызываете соответствующий приложению скрин (который, разумеется, надо сначала изготовить). Потом, после ||, идет вторая часть команды, котрая запускает само приложение с ключом /mmstart (который нужен затем, чтобы уже при запуске активировать связь с GPS приемником), ну и наконец, указывается название перехватываемого окна приложения (TfmMainForm). В общем, все просто: LOAD; - загружаем соотвествующий скрин, RUN; (или RUNQ;) - запускаем требуемое приложение, указав путь к нему и название активного окна. Ньюансы в виде тех или иных ключей, особенности написания команд легко могут быть изучены с помощью того же Описание_команд_оболочек_Road_Runner.doc. Мы же, для завершенности картины, рассмотрим способы создания собственных скринов - это потребуется нам не cтолько для того, чтобы создать несуществующий пока OZI.SKIN, сколько для дальнейших наших экспериментов. Здесь нам в полный рост потребуется программа Skin Editor. Для начала можно просто поупражняться с имеющимся уже в вашем распоряжении скином, освоить незамысловатый интерфейс самого редактора, полазить по сценам, посмотреть на представление кнопок, индикаторов и т.п. Когда этот этап будет пройден - можно будет переходить собственно к творчеству, и начнется оно, скорее всего с перерисовки какой-нибудь конкретной сцены "под себя". Поскольку дело это едва ли не интимное, сей этап пропустим и предположим, что нечто вы уже нарисовали, и выглядит оно так:
Все бы замечательно, но даже не смотря на внешнюю похожесть на скрин, это еще не скрин, а всего лишь три jpg`ских рисунка... Чтобы они стали скрином, необходимо сформировать еще файл *.skin, и вот тут-то нам поможет SEd. Action - Create new screen, вводим имя нового скрина, в screen setting указываем пути к графическим файлам и получаем На данном скриншоте мы уже успели нажать кнопку добавления нового объекта, а поскольку таковым у нас планируется кнопка, выбираем Button. По умолчанию, она появляется в координатах 0, 0 с размерами 20х20 Случай явно не наш - экспериментируем, меняя размеры кнопки: Опять не попали... Подкорректируем стрельбу: Идеально! Ну, теперь дело за малым - прописать оставшиеся кнопки В результате получим следующее: Выделенные строки в результате проделанных нами действий не появятся: мы лишь обозначили положение кнопок на скрине, но и это уже что-то. После сохранения проделанной работы программа сформирует тот самый файл *.skin, в котором будет все необходимое (шапка, перечисление графических файлов скрина, положение и размеры кнопок и т.п.), за исключением собственно команд, присвоенных конкретным кнопкам. Но мы то уже знаем, как это делается руками?
Еще одним важным классом объектов RR являются всевозможные индикаторы - будь то названия воспроизводимых плеером треков или показания всевозможных датчиков. Их работу рассмотрим на примере системы TPMS - контроля давления/температуры в шинах. Сама система будет описана отдельно, пока же ограничимся только индикацией, воспользовавшись выложенным в свободный доступ проектом Robby с mp3.car.com. Собственно, приведенный здесь архив скрином не является - это лишь графическая заготовка, но какая! Поигравшись со слоями в Фотошопе, можно сформировать три jpg`ских файла (*_ON.jpg, *_OFF.jpg, *_DOWN.jpg), необходимых для создания скрина. Загружаем их в Skin Editor, и проделываем вышеописанную процедуру, добавляя кроме кнопок еще и индикаторы класса Indicator и Label. Первые должны охватывать область колес (в случае выхода измеряемых значений за пределы установки, соответствующее колесо на скрине будет выделено красным цветом), вторые - это области, где будет прописано численное значение измеряемых параметров). В виду достаточно сложной организации этого скрина (на самом деле он не так прост, как может показаться) - для иллюстрации наших задач необходимо привести и сам оригинальный скрин Robby (он находится здесь же). Поковыряв его в SEd, можно понять, как организована работа индикаторов и меток. Вообще, должен заметить, что препарируя пусть даже и незамысловатый единственный скин, можно довольно многому научиться. Просто внимательно присмотритесь к тому, каким образом там реализованы те или иные функции (это, как правило, довольно прозрачно) - в дальнейшем же вы уже сможете сначала что-то изменить в соответствии с собственными нуждами, а потом и вовсе написать все с нуля. Для иллюстрации применения еще одной полезной команды RR можно привести пример реализации справочника номеров регионов. (Особую благодарность за помощь в создании этого справочника хотелось бы выразить Z@GR`у с форума Pccar.ru) Сам текстовый файл залит все туда же , здесь приведем содержание файла Region.skin:
Содержательной для нас здесь является строка, касающаяся команды CLLOAD (синтаксис и смысловая нагрузка остальных должны быть вам уже понятны). Фактически, этой командой мы загружаем текстовый файл Regions.txt как некий клип (т.е содержание загружаемого не обязано быть именно текстом - это может быть и графика, и флеш - да что угодно!) в область, обозначенную предпоследней строчкой (SC,20,23,650,557,,,,,,,,,,,,20,"Arial Cyr:B"). Границы эти определяются геометрией конкретного скрина, а поскольку в моем случае он выглядит так,
то данная запись подразумевает размещение клипа именно в отведенной для этого области, т.е. в окне слева. (По секрету могу сказать, что все справочники в данной системе (штрафы, КоАП, RTFM...) реализованы именно таким методом ) И уж коль скоро речь зашла о справочной системе, имеет смысл наверное, сказать пару слов еще об одной форме отображения полезной информации. Дело в том, что "горячие телефоны", например - контент, что называется, текстовый, но представлять его в виде *.txt не сильно удобно (уж очень там убогое форматирование). С другой стороны, устанавливать Офис на CarPC только ради возможности посмотреть пару doc`ских документов тоже как-то не сильно умно. PDF в этом смысле куда более гуманное решение. Думаю, как преобразовать doc в pdf здесь расписывать нет смысла - предположим, что у вас их уже есть, как есть и установленный Acrobat Reader 7.05 (версия важна, об этом чуть ниже). Вешаем на кнопку вызова справки по штрафам, например, такую конструкцию: "LOAD;APP_BROWSER.skin||RUN;C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe|C:\Program Files\Road Runner\skins\Штрафы.pdf;Штрафы.pdf - Adobe Reader","" К сожалению, синтаксис этой строки будет напрямую зависеть от версии Ридера - с 7.05 работает это, что будет в случае других версий -скорее всего, что-то немножко иное... Еще один важный момент: в файле App_Browser.skin на кнопке выхода из скина должно висеть: "CLOSEWINDOW;Adobe Reader||EXIT","", в противном случае окно Ридера останется открытым, а если у вас таких справок будет не одна, а десяток (кто мешает и вам забить pdf`ное руководство на свой автомобиль?) - таких окон может наплодится немеряно...
Ну и несколько слов о вещах менее очевидных: до тех пор, пока вы играетесь с фронт-эндом на домашней/рабочей машине, некоторых ньюансов настроек его вы не прочувствуете. В "боевой" конфигурации у вас будет тачскри, и управлять всем этим хозяйством вы будете уже не мышью/клавиатурой, а пальцем. В настройках RR Config есть такая опция - Gestures Enabled. От того, отчеките вы эту опцию или не, зависит, будет ли прорисовываться на экране след за вашим пальцем, скользящим по поверхности тача. Кому-то это может быть и надо, но большинство, как правило, пребывают в недоумении - зачем оно и как это убрать?! Есть еще одна вещь, которую стоит сделать: поставить галочку в пункте "No Internationalization". Это избавит вас от проблем с отображением английского/русского текста во фронт-энде (последнее, кстати, не означает, что русских букв вы не увидите вообще, просто таким образом вы обойдете внутренние проблемы этой, изначально нерусской программы). Так же не помешает на рабочей системе поместить в папку автозагрузки ярлыки всех тех программ, которые вы хотели бы видеть запущенными при включении CarPC (если в их настройках нет специальной опции запускаться при старте системы). Дело в том, что даже при использовании спящего/ждущего режима иногда будут ситуации, когда система по тем или иным причинам подняться корректно из него не сможет. Драмы в этом нет никакой - просто загрузка в этом случае займет не 30-40 сек, а 1-1,5 мин, но все равно лучше, если в этом случае вам не придется запускать руками тот же фронт-энд, навигацию и т.п. На обкаточной системе (домашнем/рабочем компе) делать этого не стоит (зачем вам каждый раз при включении его все это хозяйство?), но вот на CarPC сделать это стоит непременно. Экспериментируйте! |