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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Проекты (http://pccar.ru/forumdisplay.php?f=21)
-   -   TOYOTA Prius 11S CarPC (http://pccar.ru/showthread.php?t=5003)

ashu 17.04.2008 00:18

TOYOTA Prius 11S CarPC
 
Компьютер стал очередным этапом модернизации машинки и очередной статьёй уничтожения семейного бюджета ;)

Начало модернизаций машинки: http://priusforum.ru/forums/index.php?showtopic=594 (после установки компьютера тв-тюнер и cd/mp3-чейнджер уже стали не нужны и были удалены из авто).

Начало мыслей о возможности внедрения компа: http://priusforum.ru/forums/index.php?showtopic=673 .


Далее - рассказ о моем имплантировании персонального компьютера в тело нестарого еще прюсика :)

ashu 17.04.2008 00:19

Рассказ неполный и урывочный - писал частями, написал только то, что вспомнил на момент написания ;) . На картинки можно кликать для просмотра их увеличенных версий (осторожно, трафик!).
Букв много, картинок мало. Уж извиняйте. :)


Предисловие

Начало тут: http://priusforum.ru/forums/index.ph...673&#entry9142

Так как чёткого представления о конечной реализации идеи компа с самого начала не было, то составные части и комплектующие покупались не всегда "в соответствии с четким планом". Поэтому текущая конфигурация далека от идеальной и совсем не отличается детальной продуманностью и оптимальным расходом денежных средств на её создание. :)

В декабре 2007 года были куплены комп Tracer V1500 (из-за низкого потребления, малого размера - чтобы можно было его смонтировать под водительским сиденьем - и наличия видео-выхода), трекбол Logitech Marble Mouse (отличная замена мышки - Logitech TrackMan Wheel использую и дома, и на работе - собирался как-то присобачить трекбол и в машинку) и 7" тач-монитор DA-400 (китайский под маркой cartft.com - куплен по принципу "авось найду куда его установить").
GPS-приемник bu-353 был куплен намного раньше - использовал его для навигации со своим кпк acer n311.

Пока медитации по поводу установки доп.монитора ни к чему приемлемому не приводили, занялся настройкой и оптимизацией компа. По результатам была куплена новая планка памяти в 1 гиг (на 512 мегабайтах добиться нормальной производительности не удалось).

Попробовал обратиться в несколько "тюнингателье" - что б они придумали куда поставить монитор и поставили его... Результаты, мягко говоря, ошеломили - большинство "тюнингателье" ничем, кроме тонировки, ну, и, может быть, ещё обтяжки салона, не занимаются. Те, кто брались сделать подиум, называли цены от 30т.р.! Что б я так зарабатывал... В конце было найдено "тюнингателье" в Колпино, где взялись за это всего за 3т.р. и за 2 дня монитор был установлен... Выглядело это так, как будто я ограбил какой-то старый жигуль, вырвал из него какую-то его часть, похожую на квадратную коробку, и приклеил себе на торпеду. "Что это?" - "А что, очень даже хорошо выглядит" - "Это никуда не годится. Надо переделать" - "Да, надо"... Взялись переделать за еще 1т.р. Делали неделю. Получился огромный наболдашник на торпеду, уже не квадратный, а округлый, но закрывающий наполовину панель приборов (спидометр), окрашенный глянцевой краской и жутко воняющий то ли краской, то ли еще какой-то дрянью... Был демонтирован в тот же январский вечер. В последствие я пытался из него сделать подиум - как-то переделать в более приличный вид... Не получилось. Когда в марте выкидывал остатки этого безобразия, они продолжали вонять! :)

Считаю, что эти 4т.р потрачены на науку - всё надо делать самому, если хочется добиться хорошего результата.


Имплантирование

Начать решил с самого простого для меня - настройки компа и установки трекбола и dvd-привода.

Настраивать комп - занятие хоть и не интересное, но съедающее кучу времени. Настраивал вечерами на кухне.

Более интересным оказалось вмонтировать трекбол. Лучшее место для него - крышка подлокотника, что стоит между передними сиденьями. Подлокотник целиком был демонтирован и перенесён домой на кухню, где с ним уже производились дальнейшие операции (к "безграничной радости" жены ;) )

От разобранного трекбола использовал только платку с датчиками (лишнюю пластмассу по краям обрезал), usb-шнурок и шарик. Всё это очень не торопясь (с монитором всё равно пока неопределённо) вклеил в крышку. Был отдельный вопрос - на трекболе 4 кнопки, а сколько нужно для удобной работы с компом в авто? Почему-то решил, что достаточно одной (видимо, лень проголосовала большинством голосов :D - чем меньше кнопок, тем меньше работы по их установке). Хотя, всё ж с двумя кнопками было бы удобнее разбираться с настройками ПО.

http://svspb.org/ashu/carpc/mini/trackball.1.jpg

Зеленое колечко вокруг шарика трекбола съемное - в нормальных условиях удерживает шарик в рабочем положении, но при необходимости позволяет вынуть шарик для прочистки трекбола изнутри. Если кто догадался, подтверждаю - колечко взято от бутылки из-под кефира. :)

На внутренней поверхности крышки помимо несъемной коробочки, закрывающей электронику трекбола, видна еще одна коробочка - микроволновой датчик объема от сигнализации - давно собирался его туда установить, а тут такой повод! ;)

http://svspb.org/ashu/carpc/mini/trackball.2.jpg

Провода при закрывании крышки не сгибаются, а уходят в отверстия. Для защиты от истирания на провода в месте их выхода "наружу" надеты защитные черные трубочки.

http://svspb.org/ashu/carpc/mini/trackball.3.jpg

В подлокотник смонтировал также привод DVD+RW, два 4х-портовых usb-хаба - для внутренней и внешней периферии, 2 преобразователя питания 12В-5В по 3А - один для хабов, второй для DVD, и дешевый адаптер usb-bluetooth X-Micro (иногда при выходе из спящего режима не находится системой, поэтому в ближайших планах - разориться и купить нормальный). Туда же установил блочек с релюшкой - активатор преобразователей 12В-5В - чтобы они включались как только на шине USB появлялось напряжение 5В, и отключались при его пропадании. В приводе DVD перерезал дорожку питания от usb - чтобы он даже не пытался сажать 5ти-вольтовую шину usb, а целиком работал от внешнего питания.

http://svspb.org/ashu/carpc/mini/lapsha.jpg http://svspb.org/ashu/carpc/mini/dvd.jpg http://svspb.org/ashu/carpc/mini/usbhub.jpg

Приёмник GPS засунул под торпеду - далеко не самое лучшее место с точки зрения хорошего приёма, особенно для городских условий. Когда будет готов более правильный автомобильный GPS-приёмник с одометром и гироскопом, то его внешнюю антенну собираюсь поставить на крышу.
Под торпеду в районе бардачка положил еще один 4х-портовый usb-хаб без доп.питания - так, на всякий случай, под будущие usb-расширения. :)

Upd@15.04.2004:
Правильный gps-приёмник с одометром и гироскопом установлен и подключен к внешней gps+gsm+am/fm антенне на крыше. Сейчас разбираюсь с настройками - работает отлично, в том числе в туннелях, но полторы-две минуты после включения компьютера двигаться нельзя - иначе начинает жутко врать. Пытаюсь выяснить как побороть столь долгий старт.

ashu 17.04.2008 00:20

Системный блок смонтировал под водительским сиденьем - прикрепил к нему снизу на монтажных лентах-липучках. Если не засовывать голову под сиденье, то ничего не заметно.

[IMG]http://svspb.org/ashu/carpc/mini/****.jpg[/IMG]

Для настройки софта использую гибкую силиконовую клавиатуру - легко потом убирать её в бардачок или ящик подлокотника - скатал в рулончик и все дела.

http://svspb.org/ashu/carpc/mini/klava.1.jpg http://svspb.org/ashu/carpc/mini/klava.2.jpg

Первоначально идея была VGA-выход компа вывести на доп.монитор, а второй монитор сделать из штатного, путём подачи картинки с video-выхода компа на video-вход тв-тюнера. Через тв-тюнер же завести и звук.
Собственно, в таком виде некоторое время и ездил... И думал как бы это переделать ;)

Теоретически, заведение звука в штатную систему оказалось очень даже несложным делом. Вариантов заведения масса - от сложного паяльного метода до фм-модулятора, подключаемого в разрыв штатной антенны.

Но вот с видео решение как-то не нравилось. Во-первых, при этом остаётся проблема снятия блокировки, а именно - при работающем видео-входе штатного монитора теряются данные по расходу, во-вторых, не замиксуешь видео и звук, например, звук от штатного приёмника, а картинка от компа, и наоборот. Ну, и в-третьих, мучил вопрос "Неужели никак нельзя использовать тачевые свойства штатного монитора?"...

Вообще, для тойот уже некоторое время существовал адаптер, позволяющий получать координаты нажатий на штатном мониторе по usb. Но мало того, что он стоил более 8т.р., так еще и продавался как "только для миркома" ("мирком" - это такой безмониторный, бездисковый КПК с весьма ограниченными возможностями, продающийся по цене полноценного настольного компьютера).

И тут случайно нашел сообщение о скором выходе украинского адаптера, позволяющего и активировать rgb-вход штатного монитора (эмуляция функций штатной навигации), и по-нормальному завести звук, и получить по usb нажатия на штатном мониторе. Списался с автором этого чудо-адаптера и с его представителем в РФ... Ну, и как только AVC-Lan адаптер появился, сразу его купил. :)

С активатором rgb-входа немного прояснилось, но откуда взять эти RGB+Sync? Со встроенной в материнку видяхи эти сигналы, конечно можно было бы получить, но во-первых, встроенная видяха не поддерживает нужного разрешения (800х480), а во-вторых, как подключать доп.монитор, если VGA-выход (D-SUB) уже будет занят?
Оставалось два варианта - либо искать PCI-видяху и пытаться как-то втиснуть её в корпус Tracer'а, либо как-то завести картинку с видео-выхода... Был, конечно, еще один вариант - поменять материнку и/или комп - чтобы материнка поддерживала разрешение 800х480 и на ней было два VGA-выхода d-sub... Но по этому (более правильному) пути почему-то не пошёл. Решил завести видео не через rgb-вход, а через видео-вход штатного монитора - как заверил разработчик адаптера AVC-Lan, адаптер сможет сэмулировать и тв-тюнер - для активации штатного видеовхода (правда, проблема блокировки останется).

В Инете нашел на две похожие по функционалу и цене разработки - новосибирскую и украинскую - преобразователя композитного видео-сигнала в набор сигналов RGB+Sync. Купил новосибирскую... На деле это оказалось полуфабрикатом китайского качества - глючная девайсина с тяпляпскими разъемами. Но уж деньги потрачены, надо как-то этим пользоваться. Разъемы перепаял, для борьбы с глюками (потеря синхронизации и искажение цветов) поставил тумблер на провод питания - после выключения/включения глюки обычно проходили. Главная задача решена - видеокартинка показывается на штатном мониторе без необходимости снятия блокировки, т.е. работа расходомера не прерывается.

Для ввода звука требовался преобразователь линейного сигнала в балансный. Для этой цели был куплен адаптер AZ-FM. По сути - тоже полуфабрикат, потому как для нормальной работы требует переделки (перепайки нескольких резисторов на плате). Можно перепаять самому, а можно купить у Chip'а уже переделанный вариант.

Воот... Но установил всё это далеко не сразу... Просто катастрофически не хватало времени.


С подиумом под монитор решил: раз всё равно торпеда испорчена (исцарапана и продырявлена) "чудо-мастерами" из "тюнингателье", то её надо восстановить. Либо купить неиспорченную и заменить.

Сначала думал просто купить верхнюю часть у Фермера. Но посмотрев на её разобранный вид, понял, что "малой кровью" не отделаешься и по-любому придётся разбирать всю торпеду. А раз так, то какой смысл покупать другую торпеду, когда можно попробовать восстановить эту и заодно встроить в неё монитор.

Почему встроить, а не просто "поставить на ножке" или "подвесить"? Чтобы разного рода наркам и пионерам эта конструкция не казалась с первого взгляда легкосъемной. Я ж не собирался выходя из машины каждый раз демонтировать монитор.

Стал читать форумы и смотреть фотки - кто и как это делает, из каких подручных средств и какими инструментами... В итоге выбрал наиболее симпатичный мне способ. Точнее способ, который вызывал наименьшее количество страха, что у меня обязательно не получится ;) . Хотя... Да, опыта в подобных делах не было, но руки-то у меня растут откуда надо, следовательно уж всяко сделаю лучше, чем те "спецы" из Колпино (хуже них уж некуда). Решил слепить из эпоксидного пластилина. Но так как товар это оказался достаточно редкий, пришлось просить московских знакомых оказать помочь в его покупке и переправке в Питер... Правда, сейчас его можно купить и дешевле, и с доставкой в регионы. Например, здесь.
Купил (думал что) с запасом - 2кг. На подиум ушло 1.5кг. 0.5кг просто застыло у меня в руках. Так что хватило только-только.

На снятие торпеды мне было долго не решиться... Вопрос частично упирался в неопределённость что я буду делать с ошпатлеванной торпедой и нагороженным на ней подиумом под монитор. Надо ж наносить какое-то покрытие...
Вариант с окраской я отверг сразу - и поверхность я задолбаюсь под краску готовить, и смотреться будет не ахти, и скорее всего будет отсвечивать в стекле и бликовать, особенно верхняя грань подиума.
Обтяжка кож.замом, кожей иль алькантой... Ну, блин, дорого! И опять-таки, что делать с бликами верхней грани подиума?

Полез читать Интернет что еще можно сделать с поверхностью торпеды...

Очень интересным показался результат нанесения на поверхность (любую) синтетического бархата - флока, т.е. флокирование. Стал копать дальше... Оказалось, что флокированием занимаются где угодно, но только не в Питере. В нашем городе некоторые конторы раньше занимались флокированием, но потом решили, что эта технология им не подходит - стоит дешево, делать сложно и грязно, - ну, и перешли на более экономически выгодные с точки зрения производителя технологии - кожа и альканта.

Время шло, решения по покрытию не было...

И тут вдруг совершенно случайно (ну, не случайно, конечно, гуглил по теме :)) натолкнулся на древний сайт, не обновляемый кучу времени, фирмы, занимающейся флокированием в Питере. Позвонил. Телефон оказался "живым"! :)
Съезил, посмотрел образцы, оговорил цену, цвета и пр... Нужного мне цвета в наличие не оказалось. Заказали.

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

ashu 17.04.2008 00:21

Со 2-го марта стал пешеходом... Разбирал торпеду почти 2 дня. Даже пришлось звонить Фермеру и консультироваться - страшно ж сразу применять силу, вдруг там что-то еще не заметил, что надо открутить :)
Наконец, торпеда разобрана и помещена в комнате - долго пришлось уговаривать маму с просьбой временно устроить гараж в её квартире - жена б мне такого точно не простила ;) .

http://svspb.org/ashu/carpc/mini/avto.bez.torpedy.1.jpg http://svspb.org/ashu/carpc/mini/avto.bez.torpedy.2.jpg http://svspb.org/ashu/carpc/mini/garazh.jpg

Место установки подиума я нарисовал на торпеде еще когда она была не разобрана - чуть правее оси руля, чтобы проще было в движении доставать до монитора правой рукой. Там и прорезал прямоугольную щель - для вклейки туда коробки, в которую будет вставляться сам монитор. Вообще, сейчас уже думаю, что не надо было бояться, надо было раздербанить монитор и сделать подиум только для матрицы, корпус монитора выкинуть, а всю электронную начинку запихнуть под торпеду, благо, там места много - можно было либо сделать подиум меньше, либо поставить матрицу больше... Но уж что сделал, то сделал. Хорошая мысля приходит опосля. Ладно, это мой ж первый опыт подобного рода. :)

Ну, вот. Вклеил коробку, дождался пока всё надёжно схватится... По периметру предполагаемого подиума насверлил в торпеде дырок - для лучшего сцепления.

Еще дома, до снятия торпеды, я фантазировал над формой подиума, рисуя варианты и склеивая макеты из бумаги и картона... Настоящий подиум тоже решил делать тем же методом - из картона. Ну, да, смешно :) Но с этим материалом у меня не возникало проблем вроде "а каким инструментом это сделать?" ;)

http://svspb.org/ashu/carpc/mini/podium.1.jpg http://svspb.org/ashu/carpc/mini/podium.2.jpg

Из картона были сделаны ребра-лонжероны. Т.е. своего рода направляющие для лепки. Заднюю часть подиума для экономии пластилина и облегчения конструкции сделал полой.

http://svspb.org/ashu/carpc/mini/podium.3.jpg http://svspb.org/ashu/carpc/mini/podium.4.jpg

Лепил в несколько подходов - слепил, подождал пока затвердеет, слепил еще.

http://svspb.org/ashu/carpc/mini/podium.5.jpg http://svspb.org/ashu/carpc/mini/podium.6.jpg

Потом ошкурил шлифовальной машинкой. Остатками пластилина замазал неровности. Потом ошкуриванием придал нужную форму граням и углам. Идеально ровной поверхности всё равно не получилось, поэтому как финал - шпатлевка.

Заодно установил в торпеду под самое стекло твиттеры - не потому, что там им самое лучшее место с точки зрения хорошего звука, а просто потому, что мне так захотелось. :) Точнее, не установил, а запланировал к установке - прорезал отверстия.

А вот дальше пошли дни ожидания - почта доставляла посылку с флоком не неделю, а 3!

ashu 17.04.2008 00:21

Вместе с торпедой решил зафлокировать еще несколько элементов, в том числе и центральную консоль (вставку с кнопками и монитором) - те "чудо-мастера" из Колпино при её снятии умудрились её расколоть и чтобы я ничего не заметил просто склеили её абы как... Поэтому, флок тут как раз был очень нужен.

Наконец-то посылка пришла, все свои деталюшки отвёз на флокирование, через два дня забрал.

Очень приятная на ощупь получилась поверхность. :)

http://svspb.org/ashu/carpc/mini/flock.jpg

Даже скрыла часть огрехов не очень ровного подиума, - если не приглядываться, то можно даже посчитать, что эта хрень штатная. ;)

http://svspb.org/ashu/carpc/mini/sborka.torpedy.1.jpg http://svspb.org/ashu/carpc/mini/sborka.torpedy.2.jpg

Снимал торпеду с машины почти два дня, а установил очень быстро - за каких-то два часа! И, наконец, 3 апреля машинка снова поехала!

http://svspb.org/ashu/carpc/mini/ustanovka.torpedy.jpg

Потом еще пару дней колдовал с электрикой.

http://svspb.org/ashu/carpc/mini/electrika.1.jpg http://svspb.org/ashu/carpc/mini/electrika.2.jpg

Пробное подключение без окончательной установки:

http://svspb.org/ashu/carpc/mini/pro...dkluchenie.jpg

Всё это нагромождение доп.железок и проводов заработало! :) (предварительно спалив один раз предохранитель ACC - один из проводков коротнул на массу)

На панельку рядом с регулировкой зеркал вывел 4-е выключателя - включения/выключения компьютера, включения/выключения обоих мониторов, включения/выключения обгонной камеры и включения/выключения парковочной камеры.

http://svspb.org/ashu/carpc/mini/tumblery.jpg

В нормальных условиях комп и мониторы сами включаются при включении машинки и выключаются при её выключении, парковочная камера включается автоматически при включении заднего хода. Т.е. по сути нужен лишь один выключатель - обгонной камеры. Но остальные сделал для удобства - если вдруг понадобится. Например, на ходу выключить компьютер или включить парковочную камеру. :)

ashu 17.04.2008 00:22

Обычное меню информации/сервисов на "голой" 11S:

http://svspb.org/ashu/carpc/mini/oldmenu.jpg

Меню с подключенным адаптером AVC-Lan:

http://svspb.org/ashu/carpc/mini/newmenu.jpg

По левой иконке с календарём включается (активируется) RGB-вход на штатном мониторе. Штатной кнопкой DISC включается звук с компьютера.

Адаптер AVC-Lan не сразу заработал как надо - пришлось помучить автора с просьбой о новой прошивке... В прошивке 2.10b все ошибки были исправлены и действительно получилась конфигурация с двумя тачевыми мониторами! :)

http://svspb.org/ashu/carpc/mini/navi.jpg http://svspb.org/ashu/carpc/mini/music.jpg

На 11 кузове разрешение тачевой матрицы штатного монитора очень слабое - вроде как 25х25 точек. Т.е. в специальный программный интерфейс "под палец" попасть пальцем можно, а в мелкие кнопки/настройки - далеко не во все. Тут помогает трекбол - попасть туда, куда штатная матрица не позволяет. :)

Из основного софта WinXP Corp, заоптимизированная насколько смог, CentraFuse, CityGuide CarPC, SygicDRIVE, кодеки из сборника K-Lite с настройками ffdshow нормализации звука и исправления искажений мониторов (чтоб в фильмах круг был кругом, а не эллипсом). Все загрузочные и другие служебные картинки/заставки виндов заменены на собственные с надписью Toyota Prius - просто приятно. :)

http://svspb.org/ashu/carpc/mini/zagruzka.1.jpg http://svspb.org/ashu/carpc/mini/zagruzka.3.jpg http://svspb.org/ashu/carpc/mini/vyklychenie.jpg

Хотя, загрузочные картинки показываются редко - для ускорения пуска комп при выключении машинки не выключается, а уходит в спящий режим (hybernate), а картинку ухода компа в спящий режим только искусственно можно увидеть - в нормальных условиях комп засыпает уже после выключения зажигания и мониторов.

Соединение с Интернет - через мобилку (GPRS, через блютус-адаптер).

Так как адаптер AVC-Lan позволяет мапить любые клавиатурные комбинации на штатные кнопки машинки (на момент написания этого рассказа на 11 кузове можно было замапить только три кнопки), то я поставил для левой второй сверху двойной штатной клавиши функцию включение/выключение соединения с Интернет (левая половина - подключить, правая половина - отключить), а для правой стрелки двойной штатной клавиши внизу слева - сворачивание/разворачивание в полный экран окна задачи CentraFuse (удобно, если надо, например, в окне навигации быстро сменить песню на следующую или просто посмотреть состояние соединения с Интернетом и вернуть навигацию обратно) - срабатывает из любого режима отображения штатного монитора.

Теперь перчаточный ящик под "бородой" тоже флокирован - можно клать туда всё что угодно - не поцарапается и брякать не будет :)

http://svspb.org/ashu/carpc/mini/karman.jpg

ashu 17.04.2008 00:23

Осталось только наслаждаться сотворенной модернизацией машинки. :)

http://svspb.org/ashu/carpc/mini/inside.jpg http://svspb.org/ashu/carpc/mini/snaruzhi.1.jpg http://svspb.org/ashu/carpc/mini/snaruzhi.2.jpg http://svspb.org/ashu/carpc/mini/snaruzhi.3.jpg http://svspb.org/ashu/carpc/mini/snaruzhi.4.jpg


Но обнаружились и проблемы - недочеты расчетов:

1. Мощности компа хватает для работы с одним монитором - нормально работает навигация, музыка и фильмы, - но совсем не хватает при работе с двумя мониторами - навигация и музыка работают нормально, а вот фильмы уже идут с рывками. Попробую, конечно, еще пооптимизировать софт, но... Нужно думать об апгрейде компа.

2. Фантазируя на тему подиума, а думал, что обязательно нужен козырек, защищающий монитор от засветки солнцем. Я его и сделал - от солнца. Но совершенно не подумал об обратной проблеме - отсвечивании монитора в вечернее время в ветровом стекле:

http://svspb.org/ashu/carpc/mini/problem.jpg

Озадачился доработкой подиума - приделкой к нему козырька нужной длины. :)


В дальнейших планах - постоянная циклическая видеозапись с обгонной видеокамеры (возможно, и с парковочной) - для упрощения разборок с гайцами и по ДТП (это уже, по всей видимости, после апгрейда) - и инфракрасные прожекторы - чтобы ночью на трассе хорошо видеть дорогу и при этом никого не слепить.

Для видеозаписи уже куплен на ebay китайский видеограббер.

http://svspb.org/ashu/carpc/mini/videograbber.jpg


Так что проект будет двигаться дальше - развиваться. :)



P.S. Всё ж писать рассказ о том, что сделал, сложнее, чем просто сделать. ;)
P.P.S. Не судите строго - это всё ж не техническая документация, а простой рассказ. :D
А фотки... Ну, старенький фотик, не всё нам с ним удаётся сфоткать как надо...

archer 17.04.2008 00:55

Мда..... глобально.... Тока за объем зачет надо ставить....

Но есть косячки канечно.... Мониторный подиум полностью выбивается из дизайна! - и это главное! (ну дайте мне попридираться!)

Трасер насколько я помню - виа 10000 или что-то в этом роде на С7.
Такой граббер она не потянет - ей же видео цифровать придется - в граббере чипа-кодировщика нет! Так что апдейт железа тебе показан.

GOOSE 17.04.2008 01:21

Ну, землячок!!! Начало у тебя мощное, так что давай, без ложной скромности! :)
Я вот тоже гоняю железо и софт уже почти месяц... все никак время и силы не собрать, чтоб раскидать матрешку :)
Я задам несколько вопросов? :blush:
Провода тянул от акка в салон?
Моники запитал напрямую или от БП?
У меня моник CTF700, на физическом своем разрешении 800х480 работает хреново... А с 800х600 "тянет" картинки...
Такой проблемы не было?

ashu 17.04.2008 01:29

Цитата:

Сообщение от GOOSE (Сообщение 58999)
Провода тянул от акка в салон?
Моники запитал напрямую или от БП?
У меня моник CTF700, на физическом своем разрешении 800х480 работает хреново... А с 800х600 "тянет" картинки...
Такой проблемы не было?

Провода тянул от штатного блока предохранителей - туда подходит здоровенная жила.
Питание штатного монитора не трогал. Через выключатель (напрямую) запитал конвертор video->rgb и доп.монитор.
800х480 видяха не поддерживает. Поэтому и проблемы не было :)

AlexxxV 17.04.2008 12:29

Цитата:

Сообщение от ashu (Сообщение 58987)
2. Фантазируя на тему подиума, а думал, что обязательно нужен козырек, защищающий монитор от засветки солнцем. Я его и сделал - от солнца. Но совершенно не подумал об обратной проблеме - отсвечивании монитора в вечернее время в ветровом стекле:

http://svspb.org/ashu/carpc/mini/problem.jpg

Озадачился доработкой подиума - приделкой к нему козырька нужной длины. :)

а если глянуть на эту проблему собратной стороны?

развернуть подиум на 180 и пусть проецируется на лобовуху!!!

MiD_E34 17.04.2008 19:00

Цитата:

Сообщение от AlexxxV (Сообщение 59030)
а если глянуть на эту проблему собратной стороны?

развернуть подиум на 180 и пусть проецируется на лобовуху!!!

У меня тоже сразу же аналогичная идея возникла - тем более давно собирался спидометр цифровой сделать с отсветкой на лобовое

ashu 17.04.2008 19:10

IMHO, в ветровом стекле должна быть только дорога. Монитор всё ж пусть будет ниже :)
Конкретно по этой фотке - отражение мешало очень.

mcf1 18.04.2008 00:35

за проделанную работу и подробный отчёт мега зачетище!!!

а вот с компом ты действительно промахнулся, задачи тобой поставленные (video, navi, видеорегистратор, два монитора) ему ни когда не осилить.

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

ashu 23.04.2008 17:29

Цитата:

Сообщение от mcf1 (Сообщение 59126)
с компом ты действительно промахнулся, задачи тобой поставленные (video, navi, видеорегистратор, два монитора) ему ни когда не осилить.

Без сомнений.

Но всё ж удалось соптимизировать систему так, что без функции видеорегистратора остальные функции (CF с нави на доп.мониторе и dvd на штатном мониторе одновременно) работают без тормозов :)

stealth_202 23.04.2008 19:24

респект !!!! супер !!!!

ashu 25.04.2008 15:08

Цитата:

Сообщение от ashu
2. Фантазируя на тему подиума, а думал, что обязательно нужен козырек, защищающий монитор от засветки солнцем. Я его и сделал - от солнца. Но совершенно не подумал об обратной проблеме - отсвечивании монитора в вечернее время в ветровом стекле:

http://svspb.org/ashu/carpc/mini/problem.jpg

Вчера попробовал очки с поляроидными линзами - обалдеть! Никаких бликов и отражений в ветровом стекле! :D
Вот думаю, доделывать козырек или просто купить очки... ;):D

KapKan 17.06.2008 08:27

Здрасти всем.
т.к. сам я новичок прошу сильно не судить.
Сейчас я собираю в тазик 2112 позже выложу проект с фотками.
Дак вот там идея установки монитора состоит в том что является выдвижным (из горизонтального положения в вертикальное).
В горизонтальном положении, делаем отображение зеркальным и оно прекрастно проецируется на лобовом стекле. При солнце просто выдвигается в свое привычное вертикальное положение.
Вот такая идея.

Brian Ferry 18.06.2008 15:28

Ну очень классно! Очень аккуратно и эффектно, молодец! Заходи мой посмотреть Subaru Forester - Золотой;)

ashu 26.08.2008 17:28

Вложений: 1
Как последние изменения:

Centrafuse ушла в историю. На её месте прочно обосновался RoadRunner.
ПО навигации: CityGuide CarPC и iGO.
Для записи видео установлен usb'шный Pinnacle Dazzle, аппаратно закодированный в divx поток пишется на диск при помощи CamGrabber'а.
Для просмотра AVI-файлов и DVD-дисков используется KMPlayer - только он на моем слабеньком компе успешно работает на втором (штатном) мониторе быстро, плавно и без дергания картинки в параллель с RR и навигашкой, запущенными на первом (дополнительном) мониторе.

Была проблема с CityGuide - эта программа настолько тяжело написана, что на моем компе при перестроении маршрута и больших движениях карты (например, её поворот) музыка, которую winamp проигрывал через встроенную в MB звуковушку, иногда запиналась. Мне это очень не нравилось, но любая игра с настройками/приоритетами/драйверами не давала желаемого результата... Отказываться от CityGuide не хотелось, равно как не было достаточного количества денег и времени для апгрейда системника... Выход был найден - куплена и установлена usb'шная звуковуха Creative SB ConnectU - звук запинаться перестал, вопрос снялся.

Хотелось победить еще две задачи:
1. Вывод звука от навигашки только вперед к водителю (в идеале как на штатных системах - в колонку водительской двери).
2. Возможность независимой регулировки уровня звука для музыки и навигации.
Решил так: весь звук (музыка и видео) выводится с внешней звуковой карты через штатный усилитель на автомобильные колонки. А звук от навигашки через встроенную звуковушку выводится на встроенный в доп.монитор динамик. Звук получается, правда, как из рации... ;) Зато теперь поставил автоматическую нормализацию в винампе и можно слушать музыку иль смотреть фильмы, вывернув регулятор громкости на полную катушку, без страха потерять управление от оглушающего "выстрела" предупреждения о предстоящем маневре - теперь музыка идет через акустику автомобиля, а голосовые предупреждения о маневрах - через "пищалку" доп.монитора.


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

MiD_E34 27.08.2008 09:55

Привет. С интересом слежу за проектом... А почему от CF отказался? Я наоборот от RR в пользу CF отказался - слишком тяжелый показался для моей системы. Пользуюсь таким же СитиГадом, но тормозов от него не было ни разу. А вот от CG тормоза есть.

ashu 27.08.2008 11:47

Цитата:

Сообщение от MiD_E34 (Сообщение 70860)
почему от CF отказался?

Мне как-то проще было под РР рисовать скины для себя (точнее, переделывать существующие), чем разбираться с CF. К тому же, IMHO, RR гораздо лучше захватывает окна внешних приложений. Ну, и... Просто он мне больше нравится. С двумя мониторами тож у него хорошо получается... CF - всё ж продукт "сам в себе".

Цитата:

Сообщение от MiD_E34 (Сообщение 70860)
Пользуюсь таким же СитиГадом, но тормозов от него не было ни разу. А вот от CG тормоза есть.

СamGrabber - да - тормозит систему, но это зло, с которым просто надо смириться. В перспективе - либо апгрейд системника, либо вообще установка отдельного видеорегистратора.

MiD_E34 27.08.2008 18:45

а по быстродействию как у тебя эти две оболочки? Мне еще РР более глюкавым показался - т.е. были зависоны. С ЦФ такое - редкость.
Еще где-то читал, что РР можно оптимизировать и он будет быстрее работать. К сожалению не стал с ним тогда разбираться - может попробовать сейчас.... - думаю вот..

ashu 27.08.2008 19:28

Цитата:

Сообщение от MiD_E34 (Сообщение 70912)
а по быстродействию как у тебя эти две оболочки? Мне еще РР более глюкавым показался - т.е. были зависоны. С ЦФ такое - редкость.
Еще где-то читал, что РР можно оптимизировать и он будет быстрее работать. К сожалению не стал с ним тогда разбираться - может попробовать сейчас.... - думаю вот..

RR загружается быстрее, чем CF. Потом, на мой взгляд, скорость не отличается.
RR на моем компе ни разу не зависал, с CF было один раз, но, возможно, причина была не в CF.
Оптимизировать RR можно, но достаточно условно :) Т.е. проследовав рекомендациям существенного ускорения работы я не заметил.
Мне нравится, что можно изменить скин RR легко и непринужденно прямо в машине с помощью обычного notepad'а :)

MiD_E34 28.08.2008 09:56

ну что ж.. попробую повозиться. А то давно уже ничего не менял - неинтересно стало ездить :))))

ashu 28.08.2008 11:16

Цитата:

Сообщение от MiD_E34 (Сообщение 70938)
ну что ж.. попробую повозиться. А то давно уже ничего не менял - неинтересно стало ездить :))))

Попробуй :)
Мои мысли еще были тут: http://compcar.ru/forum/showthread.php?t=2580
тут: http://compcar.ru/forum/showthread.php?t=2760
и тут: http://compcar.ru/forum/showthread.php?t=2614
Возможно, тебе тож что-нить из этого пригодится :)

ashu 28.10.2008 13:02

Победа!

Короч, победил давно мучившую меня проблему с периодическим подвисанием компа при выходе из спящего режима, если я забывал перед выключением машинки закрыть СитиГид.

Решилось установкой скрипта, убивающего соединение с Интернетом перед уходом компа в спящий режим. Второй день - полёт нормальный!!! :smile1:

MiD_E34 28.10.2008 20:39

Цитата:

Сообщение от ashu (Сообщение 76271)
Победа!

Короч, победил давно мучившую меня проблему с периодическим подвисанием компа при выходе из спящего режима, если я забывал перед выключением машинки закрыть СитиГид.

Решилось установкой скрипта, убивающего соединение с Интернетом перед уходом компа в спящий режим. Второй день - полёт нормальный!!! :smile1:

ну да - давно обсуждалось - я почти год как такой скрипт привязал...:acute:

ashu 02.11.2008 14:13

Новости с поля боя...

Недавно я писал:
Цитата:

Сообщение от ashu
Короч, победил давно мучившую меня проблему с периодическим подвисанием компа при выходе из спящего режима, если я забывал перед выключением машинки закрыть СитиГид (автоубиение СитиГида перед засыпанием компа, сделанное ранее, не всегда спасало, поскольку СитиГид перед закрытием в ряде случаев пытался отправить на сервер последние данные о моём передвижении и в этом состоянии комп засыпал, а при пробуждении успешно вис).

Решилось установкой скрипта, принудительно убивающего соединение с Интернетом перед уходом компа в спящий режим. Второй день - полёт нормальный!!! :)

Обнаружилось, что я некоторых случаях гад СитиГид успевает всё-таки снова начать подключение к Интернету и в этом состоянии засыпает, что, логично, приводит опять-таки к зависанию компьютера при просыпании.

Решилось "контрольным в голову" - отключением при помощи утилиты USB Safely Remove usb-адаптера bluetooth сразу после отключения Интернета (ну, и, соответственно, включением usb-адаптера обратно при включении или выходе компьютера из спящего режима).

При засыпании компа RR теперь выполняет такую последовательность:
Код:

"RUNQ;rasdial|-d||RUNQW;$SkinPath$Scripts\usr" "stop" "-n" "Jabra - A320s"
При включении и выходе из спящего режима:
Код:

"RUNQW;$SkinPath$Scripts\usr" "return" "-n" "Jabra - A320s"
Заодно повесил на одну из кнопок RR команду отключения внешнего usb-накопителя (флешки) - люблю, когда работа устройства корректно останавливается :)
Код:

"RUNQW;$SkinPath$Scripts\usr" "stop" "-d" "F"

ashu 07.11.2008 17:37

Мой скрипт avc_control.ahk, запускаемый при старте системы
 
Мой скрипт avc_control.ahk, запускаемый при старте системы

Выполняемые скриптом задачи:

1. Иногда при выходе из спящего режима RR не запускает автоматически WinAmp на воспроизведение. Подозреваю, что это связано с задержками, вызванными моим решением проблемы долгой инициализации звуковой usb-карты - перезапуском WinAmp'а. Скрипт avc_control.ahk отслеживает перезапуск WinAmp'а и посылает ему команду на начало воспроизведения.

2. Как показало расследование, в моём компе есть некий глюк то ли программный - в дровах, то ли аппаратный - в материнке... Но так или иначе случаются проблемы с зависанием компа после выходы из спящего режима. Эти проблемы, как мне кажется, решены (описано чуть выше). Однако, редко, но после выхода из спящего режима случается проблема вылета по ошибке какой-то службы Windows. Причём, только тогда, когда запущен и работает СитиГид... Как выяснилось, вылетает служба Windows Audio. Забавно, но WinAmp при этом продолжает нормально работать. Скрипт avc_control.ahk обрабатывает эту ситуацию - скидывает окно сообщения об ошибке и перезапускает службу Windows Audio.

3. В случае не планируемой перезагрузки компа (например, по кнопке питания или через reset) PowerStrip выкидывает окно с вопросом о восстановлении. На нём надо всего лишь нажать "Да", с чем успешно справляется утилитка от kolychev'а, но зачем запускать кучу прог, когда всё можно сделать силами того же скрипта avc_control.ahk? ;)

4. Обработка клавиатурных комбинаций, приходящих при нажатии штатных кнопок на консоли от avc_usb.exe - управление WinAmp'ом, снятие скриншота и передача горячих клавиш в PowerStrip для управлением гаммой "день/ночь" и показом/скрытием мышки.

5. Имитация нажатия правой кнопки мышки

Чтобы RR не путал WinAmp и KMPlayer, WinAmp через настройки RR запускается с идентификатором класса RRWinamp.

Код:

#NoTrayIcon            ; не отображать значок скрипта в трее
#SingleInstance force  ; перезагрузить скрипт, если он уже запущен
DetectHiddenWindows, On ; искать в скрытых окнах
#NoEnv                  ; запрещаем имена переменных как у переменных окружения
SendMode Input          ; ускоренный ввод

WinAmpActive := 0 ; первоначально считаем, что WinAmp не запущен
day := 1 ; гамма в положении "день"

; Вечный цикл обработки ситуаций
Loop
{
        If WinAmpActive = 0
        {
                IfWinExist, ahk_class RRWinamp
                {
; WinAmp не был запущен, а сейчас найден в списке окон
                        Sleep 2000 ; подождать 2 секунды пока WinAmp запускается
                        PostMessage, 0x111, 40045,,, ahk_class RRWinamp ; включить воспроизведение
                        WinAmpActive := 1 ; считаем WinAmp запущенным
                }
        }
        Else
        {
                IfWinNotExist, ahk_class RRWinamp
                {
; Считали WinAmp запущенным, а сейчас не видим в списке окон
                        WinAmpActive := 0 ; считаем WinAmp не запущенным
                }
        }
        IfWinExist, Меры предосторожности
        {
; Найдено стартовое окно восстановления PowerStrip'а
                WinActivate
                Send, Д ; нажимаем кнопку "Да"
        }
        IfWinExist, svchost.exe - Ошибка приложения
        {
; Скидываем полученную ошибку приложения (вероятнее всего служба Windows Audio)
                WinActivate
                Send, {Esc} ; посылаем нажатие клавиши Escape - нажатие кнопки Cancel на форме
                Run, nircmd service restart AudioSrv,, Hide ; перезапускаем службу Windows Audio
        }
        Sleep 1000 ; спим 1 секунду и повторяем проверки
}

; Транслируем нажатие кнопки на консоли в горячую клавиатурную комбинацию
; для PowerStrip'а - включение/выключение режима скрытия указателя мышки
^!+c::^!5

^!+b::RButton          ; имитация правой кнопки мышки

^!+a::                  ; делаем screenshot всего экрана
RunWait, nircmd savescreenshot C:\PrScr.png,, Hide
FileGetTime, OutputVar, C:\PrScr.png, C
FileMove C:\PrScr.png, C:\Scrns\ss_%OutputVar%.png
return

^!+e::                  ; переключаемся на следующий трек
PostMessage, 0x111, 40048,,, ahk_class RRWinamp ; следующий трек
return

^!+f::                  ; переключаемся на предыдущий трек
PostMessage, 0x111, 40044,,, ahk_class RRWinamp ; предыдущий трек
return

^!+h::                  ; кнопка воспроизведение/пауза
SendMessage, 0x400,, 104,, ahk_class RRWinamp ; проверка воспроизведения
If ErrorLevel = 0 ; если не воспроизводится, то...
        PostMessage, 0x111, 40045,,, ahk_class RRWinamp ; включить воспроизведение
Else ; если воспроизводится, то...
        PostMessage, 0x111, 40046,,, ahk_class RRWinamp ; поставить на паузу
return

^!+i::                  ; переключение гаммы "день/ночь" - посылаем комбинации в PowerStrip
If(!day)
{
        Send, ^!1 ; посылаем в PowerStrip - "включить дневной профиль"
        day := 1
}
Else
{
        Send, ^!2 ; посылаем в PowerStrip - "включить ночной профиль"
        day := 0
}
return


ashu 20.11.2008 18:34

Ahk-скрипт переписал.

Скрипт к предыдущему функционалу получил теперь умения:
- поддерживать интернет-соединение
- показывать "возраст" файла пробок СитиГида
- СитиГид запускается сразу с включенным GPS
- нормальная обработка ошибок подключения к Интернету
- нормальная обработка ошибки WinAmp'а из-за долгой инициализации звуковой usb-карты

В скине РоадРаннера:
- переменная $OnlineStatus$ показывает статус подключения в Интернету (проверяется пингом);
- переменная $OnlineSwitch$ показывает состояние переключателя "поддерживать соединение с Интернетом или нет";
- переменная $MYJAMG$ показывает "возраст" пробочного файла СитиГида зеленым цветом;
- переменная $MYJAMR$ показывает "возраст" пробочного файла СитиГида красным цветом (предполагается, что координаты надписи будут такими же, как и у $MYJAMG$; пример см. ниже).

Для включения/отключения/переключения поддержателя соединения с Интернетом из RR надо дать команду (например, повесить это на отдельную кнопку):
SENDMSG;avc_control.ahk;online - поддерживать соединение
SENDMSG;avc_control.ahk;offline - не поддерживать соединение (при получении команды соединение разрывается)
SENDMSG;avc_control.ahk;switch - поменять состояние поддерживать/не поддерживать

avc_control.ahk:
Код:

#NoTrayIcon                ; не отображать значок скрипта в трее
#SingleInstance force        ; перезагрузить скрипт, если он уже запущен
DetectHiddenWindows, On        ; искать в скрытых окнах
#NoEnv                        ; запрещаем имена переменных как у переменных окружения
SendMode Input                ; ускорренный ввод
#Persistent                ; держать скрипт запущенным
SetTitleMatchMode 2        ; 2 - заголовок окна должен содержать значение, заданное в параметре

; ----------- редактируемые переменные - настройки ------------

winampid        := "RRWinamp"                                ; идентификатор класса окна винампа
cityguide        := "City Guide"                                ; название окна CityGuide
myconnection        := "BluetoothConnection"                ; название подключения к Инету
btadapter        := "Jabra - A320s"                        ; название адаптера bluetooth
pinghost1        := "www.relcom.ru"                        ; кого мучаем пингами в первую очередь (www.relcom.ru)
pinghost2        := "www.ru"                                ; кого мучаем пингами во вторую очередь (www.ru)
onlinestr        := "В сети"                                ; сообщение "Online" на экране (переменная RR OnlineStatus)
offlinestr        := "---"                                ; сообщение "Offline" на экране
chkonline        := "+                +"                ; сообщение "постоянное подключение" на экране
pstripwin        := "Меры предосторожности"                ; название стартового окна восстановления PowerStrip'а
svhostwin        := "svchost.exe - Ошибка приложения"        ; название окна ошибки службы (вероятнее всего служба Windows Audio)
winamperror        := "NullSoft DirectSound output"        ; название окна винампа с ошибкой звукового устройства
checkperiod        := 40                                        ; через сколько секунд (примерно) запускаем процедуру проверки сети и пробок СитиГида
myjamfile        := "C:\Program Files\City Guide\78SPb.jam" ; за каким файлом пробок следим (боевой)
;myjamfile        := "C:\CityGuide\City Guide 2.2\78SPb.jam" ; за каким файлом пробок следим (тестовый)
jamgreen        := 8                                        ; до скольки минут считать возраст пробок зеленым
jamred                := 40                                        ; до скольки минут считать возраст пробок красным
empty                := "нет"                                ; что пишем на экране, если пробочный файл очень старый

; -------- конец редактируемых переменных - настроек ----------


WinAmpActive := 0
CityGuideActive := 0
day := 1
online := 0
setoffline := 0
oncheckonline := 0
Lastcheck := 0
checkperiod := - checkperiod * 1000

; Создаем пустое окно и сразу его прячем. Окно необходимо для получения команд управления от RR
Gui, Show
WinHide, avc_control.ahk

; Устанавливаем обработчик для приёма команд через WM_COPYDATA от RR
OnMessage(0x4A, "OnCopyData")

SetTimer, CheckWarnings, -1000
SetTimer, CheckInternet, %checkperiod%, -1 ; периодическая проверка подключения к Интернету (с пониженным приоритетом)

StartWinAmp:
        SendMessage, 0x400,, 104,, ahk_class %winampid% ; проверка воспроизведения
        If ErrorLevel = 0 ; если не воспроизводится, то...
                PostMessage, 0x111, 40045,,, ahk_class %winampid% ; включить воспроизведение
; наверняка было выключение, поэтому проверяем подключение к Инету
; инициируем новый цикл проверки Интернета через 1 секунду
        If (oncheckonline <> 1)
                SetTimer, CheckInternet, -1000, -1
        return

CheckWarnings:
; Обработчик варнингов
        If WinAmpActive = 0
        {
                IfWinExist, ahk_class %winampid%
                {
; WinAmp не был запущен, а сейчас найден в списке окон
                        Gosub StartWinAmp
                        WinAmpActive := 1
                }
        }
        Else
        {
                IfWinNotExist, ahk_class %winampid%
                {
                        WinAmpActive := 0
                }
                Else
                {
                        If (Lastcheck + 30000 < A_TickCount)
                        {
                                ; WinAmp был запущен и существует до сих пор, но
                                ; давно не было проверок, возможно, работа останавливалась
                                SetTimer, StartWinAmp, -1000
                        }
                }
        }
        If CityGuideActive = 0
        {
                IfWinExist, %cityguide%
                {
; CityGuide не был запущен, а сейчас найден в списке окон
                        WinActivate
                        Send, 5 ; включить GPS
                        CityGuideActive := 1
                }
        }
        Else
        {
                IfWinNotExist, %cityguide%
                {
                        CityGuideActive := 0
                }
        }
        IfWinExist, %pstripwin%
        {
; Найдено стартовое окно восстановления PowerStrip'а
                WinActivate
                Send, Д
        }
        IfWinExist, %winamperror%
        {
; Найдено окно WinAmp'а с ошибкой звукового устройства
; Вероятнее всего звуковая usb-карта не успела проинициализироваться
; закрываем окно с ошибкой и через 5 секунд пытаемся запустить PLAY
                WinActivate
                Send, {Enter}
                SetTimer, StartWinAmp, -5000
        }
        IfWinExist, %svhostwin%
        {
; Скидываем полученную ошибку приложения (вероятнее всего служба Windows Audio)
                WinActivate
                Send, {Esc}
                SetTimer, RestartAudio, -1000
        }
        Lastcheck := A_TickCount
        SetTimer, CheckWarnings, On
        return

RestartAudio:
        RunWait, net stop AudioSrv,, Hide
        RunWait, net start AudioSrv,, Hide
        return

CheckInternet:
; Обработчик интернет-проверок
        If(oncheckonline = 1)
                return
        Else
                oncheckonline := 1
        If (setoffline = 1)
                Gosub DoOffline
        Gosub DoOnline

; Получаем время файла пробок
        FileGetTime, OutputVar, %myjamfile%
        mhour := Substr(OutputVar, 9, 2)
        mmin := Substr(OutputVar, 11, 2)

; Собираем текущую отметку времени (в минутах)
        currconntimestamp := A_Min + A_Hour*60

        lastjamtimestamp := mmin + mhour*60

        If (currconntimestamp < lastjamtimestamp)
                currconntimestamp := currconntimestamp + 24*60

; Получаем возраст файла пробок
        jamtime := currconntimestamp - lastjamtimestamp

        jamexpired := 0
        If (currconntimestamp > lastjamtimestamp + jamgreen)
                jamexpired := 1
        If (currconntimestamp > lastjamtimestamp + jamred)
                jamtime := empty

; тут надо нарисовать цветом возраст пробочного файла
        If (jamexpired = 0)
        {
; Делаем зеленым
                SendToRR("SETVAR;MYJAMR||SETVAR;MYJAMG;" . jamtime)
        }
        Else
        {
; Делаем красным
                SendToRR("SETVAR;MYJAMG||SETVAR;MYJAMR;" . jamtime)
        }
        SetTimer, CheckInternet, %checkperiod%, -1
        oncheckonline := 0
        return ; конец процедуры CheckInternet

DoOffline:
        If (online = 1)
                SendToRR("SETVAR;OnlineSwitch;" . chkonline)
        Else
                SendToRR("SETVAR;OnlineSwitch")
        setoffline := 0

        RunWait, rasdial %myconnection% /DISCONNECT,, Hide
        SendToRR("SETVAR;OnlineStatus;" . offlinestr)

        return

DoOnline:
        If (online = 1)
                SendToRR("SETVAR;OnlineSwitch;" . chkonline)
        Else
                SendToRR("SETVAR;OnlineSwitch")
        Loop, 5 ; предпринимаем 5 попыток подключиться
        {
                RunWait, ping -n 3 -f -w 2000 %pinghost1%,, UseErrorLevel|Hide
                If (ErrorLevel = 0)
                {
                        SendToRR("SETVAR;OnlineStatus;" . onlinestr)
                        Break
                }
                Else
                {
                        If (online = 1)
                                Sleep, 5000
                        RunWait, ping -n 3 -f -w 2000 %pinghost2%,, UseErrorLevel|Hide
                        If (ErrorLevel = 0)
                        {
                                SendToRR("SETVAR;OnlineStatus;" . onlinestr)
                                Break
                        }
                        Else
                        {
                                SendToRR("SETVAR;OnlineStatus;" . offlinestr)
                        }
                }
                If (online = 1)
                {
                        Gosub DoOffline
                        Sleep, 2000
                        If (A_Index > 4)
                        {
; 4 попытки подключиться прошли напрасно - принимаем радикальные меры
; Отключаем и снова подключаем адаптер bluetooth
                                RunWait, C:\Tools\usr.exe stop -n "%btapapter%",, Hide
                                RunWait, C:\Tools\usr.exe return -n "%btadapter%",, Hide
                                Sleep, 5000 ; даём системе прийти в себя после такого надругательства
                        }
                        RunWait, rasdial %myconnection%,, Hide
                }
                Else
                {
                        Break
                }
        }
        return

OnCopyData(wparam, lparam)
{
; функция получения входящего сообщение WM_COPYDATA
; Сюда приходит вызов с полученным сообщением-командой от RR

        local pStr
        pStr := NumGet(lparam+8), len := NumGet(lparam+4)
        RecvMessage := SubStr(DllCall("MulDiv", "Int", pStr, "Int",1, "Int",1, "str"),1,len)

        If (RecvMessage = "switch") {
                If (online = 1)
                        online := 0
                Else
                        online := 1
        }
        Else
        {
                If (RecvMessage = "online")
                        online := 1
                Else
                        online := 0
        }
        If (online = 1)
        {
                setoffline := 0
                SendToRR("SETVAR;OnlineSwitch;" . chkonline)
        }
        Else
        {
                setoffline := 1
                SendToRR("SETVAR;OnlineSwitch")
        }

        If (oncheckonline <> 1)
                SetTimer, CheckInternet, -1000, -1 ; инициируем новый цикл проверки Интернета

        return 1 ; подтверждаем успешный приём сообщения
}

; Функция отправки команды в RoadRunner
SendToRR(msg="")
{
        len := StrLen(msg)
        port := 1 ; RR слушает команды, приходящие на порт 1
        VarSetCapacity(CopyDataStruct, 12, 0)
        NumPut(port, CopyDataStruct, 0)
        NumPut(len, CopyDataStruct, 4) ; тут именно len, а не len+1 как пишут в некоторых примерах
        NumPut(&msg, CopyDataStruct, 8)
        SendMessage, 0x4A,, &CopyDataStruct,, RoadRunner
}


; Далее - обычные реакции на хоткеи


^!+c::^!5                ; AutoHide для указателя мышки

^!+b::Click right        ; имитация правой кнопки мышки

^!+a::                        ; screenshot текущего экрана
        RunWait, nircmd savescreenshot C:\PrScr.png,, Hide
        FileGetTime, OutputVar, C:\PrScr.png, C
        FileMove C:\PrScr.png, C:\Scrns\ss_%OutputVar%.png
        return

^!+e::                        ; Команда NEXT для WinAmp'а
        PostMessage, 0x111, 40048,,, ahk_class RRWinamp ; следующий трек
        return

^!+f::                        ; Команда PREV для WinAmp'а
        PostMessage, 0x111, 40044,,, ahk_class RRWinamp ; предыдущий трек
        return

^!+h::                        ; Команда PLAY/PAUSE для WinAmp'а
        SendMessage, 0x400,, 104,, ahk_class RRWinamp ; проверка воспроизведения
        If ErrorLevel = 0 ; если не воспроизводится, то...
                PostMessage, 0x111, 40045,,, ahk_class RRWinamp ; включить воспроизведение
        Else ; если воспроизводится, то...
                PostMessage, 0x111, 40046,,, ahk_class RRWinamp ; поставить на паузу
        return

^!+i::                        ; Переключатель профилей PowerStrip'а день/ночь
        if(!day)
        {
                Send, ^!1
                day := 1
        }
        else
        {
                Send, ^!2
                day := 0
        }
        return

Пример показа СитиГида в скине DigitalFX 3.0 через External_GPS.skin:
Код:

RoadRunner Skin
RRScreen CityGuide
IGUIDANCE_OFF.png,IGUIDANCE_OFF.png,IGUIDANCE_ON.png,IGUIDANCE_OFF.png
INC,DFX_Font_Color.txt
 
/, L, x, y, w, h, color R;RGB, G, B, font size;FONT, font name, Code;LABELCODES, Tooltip;LABELALIGNMENT
L,2,94,71,41,#DFX1R#,#DFX1G#,#DFX1B#,24,"Arial","GPSALT","CENTER"
L,8,402,36,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=Sat:","RIGHT"
L,6,504,75,17,#DFX2R#,#DFX2G#,#DFX2B#,8,"Arial","=$OnLineSwitch$","LEFT"
L,0,503,75,17,#DFX1R#,#DFX1G#,#DFX1B#,10,"Arial","=$OnLineStatus$","CENTER"
L,45,402,33,26,#DFX1R#,#DFX1G#,#DFX1B#,16,"Arial","GPSSAT","LEFT"
L,0,468,75,26,#DFX1R#,#DFX1G#,#DFX1B#,24,"Arial:B","=$MYJAMG$","CENTER"
L,0,466,75,26,#DFX2R#,#DFX2G#,#DFX2B#,26,"Arial:B","=$MYJAMR$","CENTER"
L,0,549,75,26,#DFX1R#,#DFX1G#,#DFX1B#,17,"Arial","=MENU","CENTER"
L,0,266,75,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=ExtPos","CENTER"
L,0,193,75,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=CurPos","CENTER"
L,0,237,75,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=Mem","CENTER"
L,0,165,75,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=Mem","CENTER"
L,0,313,75,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=Toggle","CENTER"
L,0,339,75,26,#DFX1R#,#DFX1G#,#DFX1B#,15,"Arial","=Track","CENTER"
L,1,6,72,59,#DFX1R#,#DFX1G#,#DFX1B#,36,"Arial:B","GPSSPD","CENTER"
 
/, B, x, y, w, h, Command;COMMANDCODES, Tooltip
B,1,229,73,73,"LOCOSK",
B,0,302,73,73,"ACTIVATE;City Guide||SENDKEY;^t",
B,0,375,75,74,"SENDMSG;CamGrabber;SAVE",""
B,-1,451,75,74,"SENDMSG;avc_control.ahk;switch",""
B,1,523,75,74,"MAIN",""
B,0,150,75,75,"LOC",
 
/, A, x, y, w, h, color R;RGB, G, B
A,77,1,724,599,,,

END

Содержимое DFX_Font_Color.txt:
Код:

/DEFINE DFX1R 3
/DEFINE DFX1G 255
/DEFINE DFX1B 5
/DEFINE DFX2R 255
/DEFINE DFX2G 3
/DEFINE DFX2B 5


vad3 25.11.2008 07:39

Цитата:

Сообщение от ashu (Сообщение 76886)
Новости с поля боя...

Недавно я писал:
Обнаружилось, что я некоторых случаях гад СитиГид успевает всё-таки снова начать подключение к Интернету и в этом состоянии засыпает, что, логично, приводит опять-таки к зависанию компьютера при просыпании.

Решилось "контрольным в голову" - отключением при помощи утилиты USB Safely Remove usb-адаптера bluetooth сразу после отключения Интернета (ну, и, соответственно, включением usb-адаптера обратно при включении или выходе компьютера из спящего режима).

При засыпании компа RR теперь выполняет такую последовательность:
Код:

"RUNQ;rasdial|-d||RUNQW;$SkinPath$Scripts\usr" "stop" "-n" "Jabra - A320s"
При включении и выходе из спящего режима:
Код:

"RUNQW;$SkinPath$Scripts\usr" "return" "-n" "Jabra - A320s"
Заодно повесил на одну из кнопок RR команду отключения внешнего usb-накопителя (флешки) - люблю, когда работа устройства корректно останавливается :)
Код:

"RUNQW;$SkinPath$Scripts\usr" "stop" "-d" "F"

Подскажи, где и как прописыал эти команды?

ashu 25.11.2008 09:18

Цитата:

Сообщение от vad3 (Сообщение 79157)
Подскажи, где и как прописыал эти команды?

В ExecTBL.ini в каталоге скина RoadRunner'а.

ashu 26.11.2008 15:05

Как очередное продолжение ;)

Глюки, ошибки и зависоны на данный момент решены обслуживающим ahk-скриптом. Упреждающие действия с выключением/включением bluetooth-адаптера и остановом/запуском WinAmp'а и СитиГида удалены из ExecTBL.ini (оставлены только останов/запуск для avc_usb.exe и camgrabber.exe), так как возникающие иногда ошибки теперь устраняются тем же обслуживающим скриптом. Это позволило сократить время от момента включения компа до полной готовности системы.

ashu 23.05.2009 01:02

Чем кончилась борьба с подключением к Интернету через bluetooth...

Usb-bluetooth адаптер Jabra с родными widcomm'овскими дровами.
После выхода из сна иногда (далеко не всегда) возникала ситуация, что всё работает, но rasdial не может подключиться к Интернету. Помогает либо ручная операция физически вынуть-вставить сам донгл в комп, либо перезагрузка компа.
Ни то, ни другое меня не устраивало (донгл вообще глубоко закопан в подлокотник), хотелось полного автоматизма и без каких-либо перезагрузок компа (из сна комп просыпается намного быстрее обычной загрузки).

Пробовал отключать/включать устройство при помощи devcon'а, идущего в комплекте RR, - не помогло. Пытался отключать/включать устройство при помощи SafelyRemove, - вроде б иногда помогало, но не всегда. Игры с rasdial'ом вообще мимо кассы, - максимум, что добивался, так это исчезновения ярлыка bluetooth-подключения вообще (до перезагрузки).

Когда в очередной раз после выхода из сна rasdial отказался подключаться к Интернету, я стал искать какими манипуляциями всё ж можно добиться восстановления работы rasdial'а... И нашел, что если кликнуть правой кнопкой в трее по иконке bttray.exe (значек блютуса) и в появившемся меню выбрать самый нижний пункт - отключение блютуса, а потом через несколько секунд провести все те же действия и через нижний пункт меню включить блютус, то rasdial снова начинает весело подключаться к Интернету!
Осталось дело за малым - автоматизировать этот процесс ;)

Подключением и отключением от Интернета у меня занимается мой обслуживающий ahk-скрипт, поэтому и решение искать я стал в рамках autohotkey'я. Подробно метод выяснения какую команду надо послать в окно (в том числе и скрытое) описан здесь.
В случае с жаброй всё свелось к двум командам с паузами (в случае нескольких неудачных попыток подключиться к Интернету):

PostMessage, 0x111, 7049,,, ahk_class AfxWnd42 ; bluetooth off
Sleep, 4000 ; ждем примерно 4 секунды
PostMessage, 0x111, 7048,,, ahk_class AfxWnd42 ; bluetooth on
Sleep, 8000 ; ждём примерно 8 секунд

Всё! Тырнет уже месяц есть всегда без перезагрузки! :)


P.S. Скрипт еще немного доработал - теперь показывается не только возраст пробочного файла в минутах, но и название карты, для которого этот пробочный файл скачан.

http://img22.imageshack.us/img22/642...1492230.th.png

ashu 28.07.2009 13:09

Вот нигде гайцы не шакалят на дороге, кроме РФ и Украины...

Видеорегистратор - очень полезная вещь. Очень почему-то хотелось установить его до путешествия в Болгарию... И не зря - сэкономил мне кучу нервов и права на полгода ;)

В Ленобласти меня попытались раскрутить на обгон через сплошную и лишение прав на полгода... Показал гайцу видеозапись - гаец вернул права с улыбкой: "Хорошая у Вас штука установлена" ;)

http://img269.imageshack.us/img269/7013/obgon1.th.png

Похожая история была и на Украине, но там до просмотра видео дело не дошло. :)

MiD_E34 28.07.2009 15:40

а разве у тебя КамГраббер не стоял? Почему им не стал пользоваться?

ashu 28.07.2009 18:44

Цитата:

Сообщение от MiD_E34 (Сообщение 105345)
а разве у тебя КамГраббер не стоял? Почему им не стал пользоваться?

Стоял, но... Во-первых, мой слабенький комп с трудом тянул запись одной камеры, а хотелось больше... А во-вторых, требовалась надёжность, т.е. гарантированность записи, чем камграббер пока похвастаться не может.

(vS) 28.07.2009 23:37

а чем это ты пишешь?

ashu 28.07.2009 23:52

Цитата:

Сообщение от (vS) (Сообщение 105437)
а чем это ты пишешь?

Да, всё тем же корейским регистратором, о котором писал тут: http://forum.pccar.ru/showthread.php?t=8935


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

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