-
Вложений: 1
DeviceLink_http бетатест (вывод приборов на отдельный экран )
DeviceLink_http beta 2.3 продолжение.
Начало где-то здесь http://www.sukhoi.ru/forum/showthrea...t=71903&page=2
вкратце: Программа позволяет вывести на дополнительный монитор или компьютер\нетбук\планшетник в локальной сети панель приборов самолета.
В общем вот, выспаться не удалось.
Выкладываю бету на тестирование.
В комплекте пока только один, упрощенный скин ULTRA LIGHT со схематичными приборами, проверим как поведут себя гаджеты :). Фотореалистичный выложу позднее.
Программа работает пока только с одиночными миссиями, со стартом в воздухе.
Необходимо распаковать полученный архив, внутри будут находится файлы:
Bomber Intercept - Ships.cs
Free Hunt.cs
London Attack.cs
Stuka Intercept - Chain Home.cs
Stuka Intercept - Ships.cs
по названию миссий, их надо скопировать в папочку по маршруту:
<Ваш системный диск>:\Users\<Имя пользователя>\Documents\1C SoftClub\il-2 sturmovik cliffs of dover\missions\Single
а распакованную папочку
...DeviceLink_http скопировать в папку стима -> ...\Steam\SteamApps\common\IL-2 Sturmovik Cliffs of Dover (там где Launcher.exe)
Для запуска DeviceLink необходимо в меню игры выбрать - Одиночная игра - Отдельные задания - Выбрать любую из пяти миссий -
Нажать «От винта!» - переити в бриф.
Теперь необходимо запустить браузер (можно это сделать и раньше) в адресной строке набрать:
1. При запуске на дополнительном мониторе набрать http://localhost:20002
2. При запуске на компьютере/ноутбуке/нетбуке/планшетнике в локальной сети укажите IP адрес вашего компьютера с запущенным IL2 Cliff of Dovers и через двоеточие 20002 (это порт сервера)
вид примерно будет такой http://192.168.0.2:20002 или похоже.
В окне браузера запустится панель ULTRA LIGHT beta 2.3
теперь в окне игры можно нажать «От винта!» и вперед. :)
Предупреждение! С браузером Internet Explorer часто происходит вылет Лаунчера!
Рекомендуется Chrome или FireFox (на других не проверял).
Примечание: Запустить можно в нескольких окошках браузера и на разных компьютерах локальной сети. (Тестировал на трех одновременно).
Баги и пожелания прошу писать в эту тему.
Скачать: Вложение 162079
Просьба, тем кто подключает по сети, если есть возможность, оцените объем траффика, pls
-
Re: DeviceLink_http бетатестирование
Респект, LePage!!!
У меня на моем смарте под управлением Android, в браузере Opera Mobile-- работает.
-
Вложений: 1
Re: DeviceLink_http бетатестирование
кстати,будет работать в любой миссии,надо только файлик переименовать по названию миссии и закинуть в папку с этой миссией.Вот так в сушке Вложение 162085
миссия Abudabi Rece.
-
Re: DeviceLink_http бетатестирование
Запустил "перехват бомберов" на втором мониторе (в Хроме). Приборы есть, но не работают и картинка подтормаживает.
Что не так сделал?
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
steam_
Запустил "перехват бомберов" на втором мониторе (в Хроме). Приборы есть, но не работают и картинка подтормаживает.
Что не так сделал?
С другими миссиями тоже? Антивирус отрубил? Другой браузер пробовал? Обновление AdobeFlashPlayer? Второй монитор подключен на той же видеокарте, что и Боб?
Пока только это в голову приходит.
з/ы/ Может архив был битый?
Кстати, что за миссия «перехват бомберов»? Можно по-английски название файла миссии? И какой крафт используется?
--- Добавлено ---
Цитата:
Сообщение от
pavlih
кстати,будет работать в любой миссии,надо только файлик переименовать по названию миссии и закинуть в папку с этой миссией.Вот так в сушке
Вложение 162085
миссия Abudabi Rece.
Будет работать, но если СТАРТ в ВОЗДУХЕ, т.е. если игрок сразу в самолете и предварительно его не выбирает. Иначе -нет, сервер стартует не имея данных о самолете игрока. Ищу решение для этого бага.
Кстати, на Сушке обороты в процентах? Не знал... (тоже будем думать).
-
Re: DeviceLink_http бетатестирование
-
Re: DeviceLink_http бетатестирование
-
Re: DeviceLink_http бетатестирование
-
Re: DeviceLink_http бетатестирование
LePage - глянь личку, плз.
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
COMAR
Эммм железо или софт?))
И то и то. Локально или по сети?
-
Re: DeviceLink_http бетатестирование
Процессор intel core 2duo E4600@2.40GHz, Память 4 гб, видео radeon 6970 2Gb, Win 7 64, локально. Проверял в опере и хроме.
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
Zed4ever
LePage - глянь личку, плз.
Ответил в личку.
-
Re: DeviceLink_http бетатестирование
LePage, на работу DeviceLink в онлайне можно расчитывать в будущем? Или стим не разрешит?)
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
COMAR
Процессор intel core 2duo E4600@2.40GHz, Память 4 гб, видео radeon 6970 2Gb, Win 7 64, локально. Проверял в опере и хроме.
Спасибо, оперу я как раз и не проверял - уже легче :)
--- Добавлено ---
Цитата:
Сообщение от
COMAR
LePage, на работу DeviceLink в онлайне можно расчитывать в будущем? Или стим не разрешит?)
это вторым этапом, сразу как решу проблему со стартом сервера и передачи ему самолета игрока в произвольное время. без этого онлайн не получится.
-
Вложений: 2
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
LePage
С другими миссиями тоже? Антивирус отрубил? Другой браузер пробовал? Обновление AdobeFlashPlayer? Второй монитор подключен на той же видеокарте, что и Боб?
Пока только это в голову приходит.
з/ы/ Может архив был битый?
С другими миссиями - тоже не пашет
KIS2013(лиц) - отрубал
AdobeFlashPlayer - говорит, что последняя версия
Монитор на той же карте (железо в подписи) мониторы: PHILIPS 27" ASUS 19"
При розархивировании архиватор не матерился
Цитата:
Сообщение от
LePage
Кстати, что за миссия «перехват бомберов»? Можно по-английски название файла миссии? И какой крафт используется?
смотри скрин, обвел красным
-
Re: DeviceLink_http бетатестирование
Спидометр и альтиметр дают не точные показания. Спидометр ровно на 30 км/ч отстает от игрового, альтиметр на ~70м показывает меньшую высоту чем игоровой. Проверял в устоявшемся режиме. Частота опроса 6 раз в сек.
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
steam_
С другими миссиями - тоже не пашет
KIS2013(лиц) - отрубал
AdobeFlashPlayer - говорит, что последняя версия
Монитор на той же карте (железо в подписи) мониторы: PHILIPS 27" ASUS 19"
При розархивировании архиватор не матерился
смотри скрин, обвел красным
Интересно! У меня были проблемы с этой миссией, связано с тем, что сначала разрабатывал на двухмоторниках. Но раз дергается на всех миссиях, значит здесь что-то другое.
Начнем:
В папочке DeviceLink_http (той, что в стиме ...\Steam\SteamApps\common\IL-2 Sturmovik Cliffs of Dove) лежит файл index.html - открой его для редактирования блокнотом или чем еще.
Внутри есть код вида:
Код HTML:
<body bgcolor="#000000" onLoad="">
<script language="Javascript">
setInterval("servRequest('Altitude=Get&AH=Get&Velocity=Get&Variometer=Get&Tahometer=Get&Kompass=Get', 80)",80) // здесь устанавливается интервал опроса, 80 - 12 раз в секунду
// 40 - 25 раз в секунду, 160 - 6 раз в секунду - чем меньше интервал тем больше нагрузка - увеличьте интервал, если приборы "лагают"
</script>
строчка 'Altitude=Get&AH=Get&Velocity=Get&Variometer=Get&Tahometer=Get&Kompass=Get' набор ключ/значение, по принципу прибор=команда&прибор=команда&прибор=команда&прибор=команда
попробуй запустить не все приборы, а по-одному, сократив строчку до одного набора ключ/значение.
Например setInterval("servRequest('AH=Get', 80)",80) - будет только авиагоризонт. И следи за кавычками и апострофами, должныбыть именно так.
Если без дерганья значит прибор работает.
По очереди:
setInterval("servRequest('Altitude=Get', 80)",80)
setInterval("servRequest('AH=Get', 80)",80)
setInterval("servRequest('Velocity=Get', 80)",80)
setInterval("servRequest('Variometer=Get', 80)",80)
setInterval("servRequest('Tahometer=Get', 80)",80)
setInterval("servRequest('Kompass=Get', 80)",80)
в общем перебери эти варианты. Вычислим прибор, будем смотреть дальше.
Кстати, модов нет? Другой браузер не пробовал? И какая версия Хрома?
--- Добавлено ---
Цитата:
Сообщение от
COMAR
Спидометр и альтиметр дают не точные показания. Спидометр ровно на 30 км/ч отстает от игрового, альтиметр на ~70м показывает меньшую высоту чем игоровой. Проверял в устоявшемся режиме. Частота опроса 6 раз в сек.
Известная проблема. Связана со сжатыми сроками разработки. Дело в том, что объект самолет отдает значения в тех единицах измерения и только тем приборам которые на нем установлены. Это накладывает ограничения на скин панели, она уже не может быть универсальной (проблема футов/метров/миль/километров). Нужно делать несколько - под каждый тип самолета свою, процесс довольно долгий. Цель же тестирования отбкатать принцип взаимодействия, обозначить круг устройств, найти узкие места браузерной технологии. Это на первом этапе. Дальше, конечно это просто так не оставлю. Есть два пути - либо делать универсальную самонастраивающуюся, либо индивидуальную. Но можно и так и так :). Скины же можно будет выбирать. Это только вопрос времени.
-
Re: DeviceLink_http бетатестирование
Не совсем понял правильно ли я описал мою проблему.
Проблема была:
Приборы не работали совсем, БОБ - переодически подтормаживал
Поменял только значение интервала опроса с ... 80)",80) // ... на два по 160.
Стало:
Приборы заработали, но впечатление, что опрос не 6 раз в секунду, а от двух раз в секунду до одного раза в три секунды (слайдшоу на приборах), а сам БОБ заработал плавно.
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
steam_
Не совсем понял правильно ли я описал мою проблему.
Проблема была:
Приборы не работали совсем, БОБ - переодически подтормаживал
Поменял только значение интервала опроса с ... 80)",80) // ... на два по 160.
Стало:
Приборы заработали, но впечатление, что опрос не 6 раз в секунду, а от двух раз в секунду до одного раза в три секунды (слайдшоу на приборах), а сам БОБ заработал плавно.
Похоже, что проблема на браузерной стороне. Нагрузка на процессор какая? сколько процессорного времени отнимает Хром (в процессах диспетчера задач)? Попробуй FireFox, там вроде есть плагин для ускорения флэшек для NVidia.
з/ы/ вот совет, может поможет http://osmaster.org.ua/?p=3676
з/з/ы на всякий случай спрошу, порт 20002 больше ничем не занят?
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
LePage
Дело в том, что объект самолет отдает значения в тех единицах измерения и только тем приборам которые на нем установлены. Это накладывает ограничения на скин панели, она уже не может быть универсальной (проблема футов/метров/миль/километров).
Хмм, не много не понял, а почему тогда авиагоризонт на бф109 работает? Он же не установлен на самолете. Бф109 отдает значения в метрической системе, в которой работают и приборы DeviceLink, так почему же разница?
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
COMAR
Хмм, не много не понял, а почему тогда авиагоризонт на бф109 работает? Он же не установлен на самолете. Бф109 отдает значения в метрической системе, в которой работают и приборы DeviceLink, так почему же разница?
Пришлось обойти вышеперечисленные ограничения (для универсальности) взяв значения не из кабины, т.е. не из раздела Instrumentation, а из раздела Parameters, т.е. где сама игра считает, а не где показывает :), так-что эта панель точнее...:)
Кусочек кода - в комментах все видно
Код HTML:
{
case "Altitude": //double i_IAlt = curPlaner.getParameter(part.ParameterTypes.I_Altitude, -1); // не на всех типах работает и тоже футы/метры (будем думать)
double i_IAlt = curPlaner.getParameter(part.ParameterTypes.Z_AltitudeMSL, -1);
Indicators["Altitude"] = i_IAlt;
break;
case "Velocity": //double i_IAS = curPlaner.getParameter(part.ParameterTypes.I_VelocityIAS, -1); // выдает в завистмости от типа километры/мили (будем думать)
double i_IAS = curPlaner.getParameter(part.ParameterTypes.Z_VelocityIAS, 0)*3.2;
Indicators["Velocity"] = i_IAS;
break;
case "AH": double i_Roll = curPlaner.getParameter(part.ParameterTypes.Z_Orientation, 2); //на самолетах имеющих АГ часто врет и не все имеют АГ
double i_Pitch = curPlaner.getParameter(part.ParameterTypes.Z_Orientation, 1);
Indicators["AH"] = i_Roll.ToString() + "_" + i_Pitch.ToString();
break;
case "Tahometer": double i_RPM = curPlaner.getParameter(part.ParameterTypes.I_EngineRPM, 0); // только для первого двигателя (пока)
Indicators["Tahometer"] = i_RPM;
break;
case "Variometer": //double i_Climb = curPlaner.getParameter(part.ParameterTypes.I_Variometer,-1); // тоже от типа зависит футы/метры
double i_Climb = curPlaner.getParameter(part.ParameterTypes.Z_VelocityTAS, 2);
Indicators["Variometer"] = i_Climb;
break;
case "Kompass": double i_kurs_accept = curPlaner.getParameter(part.ParameterTypes.I_Peilzeiger,-1);
//double i_kurs_real = curPlaner.getParameter(part.ParameterTypes.I_MagneticCompass, -1);
double i_kurs_real = curPlaner.getParameter(part.ParameterTypes.Z_Orientation, 0); // Компасы тож разные бывают
i_kurs_real = -1 * i_kurs_real +90 ;
Indicators["Kompass"] = i_kurs_accept.ToString() + "_" + i_kurs_real.ToString();
break;
default: break;
-
Re: DeviceLink_http бетатестирование
LePage, подскажи, возможно использование DeviceLink для создания MFD? Чтоб можно было, например на планшете по сети в браузере реализовать панель с переключателями, и т.д.?
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
LePage
Будет работать, но если СТАРТ в ВОЗДУХЕ, т.е. если игрок сразу в самолете и предварительно его не выбирает. Иначе -нет, сервер стартует не имея данных о самолете игрока. Ищу решение для этого бага.
Кстати, на Сушке обороты в процентах? Не знал... (тоже будем думать).
Это сделать довольно легко используя событие "Игрок сел в самолет". К сожалению не взял флешку сегодня с файлами, поэтому примерное решение. Суть в том, что как только игрок "садится" в новый самолет - переменная принимает его значение.
Код:
using maddox.game;
using maddox.game.world;
public class Mission : AMission
{
// В этой переменной будем хранить самолет игрока(только для оффлайна, для онлайна нужно будет создавать список таких переменных на каждого игрока)
AiAircraft PlayerPlane;
public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceEnter(player, actor, placeIndex);
if (actor != null)
{
if (actor is AiAircraft)
{
PlayerPlane = (AiAircraft)actor;
}
}
}
// В дальнейшем используем PlayerPlane(аналогично curPlane) для снятия параметров.
}
Еще код посмотрел , в методе OnTickGame() идет постоянное и вредное сканирование/определение самолета игрока. Если сделать как выше - будет только снятие и отправка параметров. Ну и какой-то режим паузы нужно предусмотреть, т.е. если игрок не в самолете или он разбился останавливать передачу данных.
Для сети будет словарь с игроками и самолетами вида Dictonary<Player, AiAircraft> . Серверу отправляем конкретные данные(объект самолет) подключившегося игрока.
Цитата:
Сообщение от
FH_Lord_Lexus
LePage, подскажи, возможно использование DeviceLink для создания MFD? Чтоб можно было, например на планшете по сети в браузере реализовать панель с переключателями, и т.д.?
Вот тут сделано управление(вроде) для IPad - http://www.sukhoi.ru/forum/showthrea...=1#post1889018
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
podvoxx
Пасиб, глянул, там есть ссылка на вот что:
https://play.google.com/store/apps/d...WFsc2NyZWVuIl0.
предлагают через нее организовать... надо будет глянуть. Это, типа, дополнительного дисплея в системе. Короче, надо поковырять...
-
Re: DeviceLink_http бетатестирование
Цитата:
Сообщение от
podvoxx
Это сделать довольно легко используя событие "Игрок сел в самолет". К сожалению не взял флешку сегодня с файлами, поэтому примерное решение. Суть в том, что как только игрок "садится" в новый самолет - переменная принимает его значение.
Код:
using maddox.game;
using maddox.game.world;
public class Mission : AMission
{
// В этой переменной будем хранить самолет игрока(только для оффлайна, для онлайна нужно будет создавать список таких переменных на каждого игрока)
AiAircraft PlayerPlane;
public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceEnter(player, actor, placeIndex);
if (actor != null)
{
if (actor is AiAircraft)
{
PlayerPlane = (AiAircraft)actor;
}
}
}
// В дальнейшем используем PlayerPlane(аналогично curPlane) для снятия параметров.
}
Еще код посмотрел , в методе
OnTickGame() идет постоянное и вредное сканирование/определение самолета игрока. Если сделать как выше - будет только снятие и отправка параметров. Ну и какой-то режим паузы нужно предусмотреть, т.е. если игрок не в самолете или он разбился останавливать передачу данных.
Для сети будет словарь с игроками и самолетами вида
Dictonary<Player, AiAircraft> . Серверу отправляем конкретные данные(объект самолет) подключившегося игрока.
...
Спасибо! Буду пробовать. Сервер придется немного переписать, он у меня стартует уже с полученным готовым объектом, надо будет сделать, чтоб стартовал, а потом получал игрока или самолет игрока, проверял запрос на валидность (в условиях локальной сети будет немного лишнего кода, придется проверять Боб сервер он или нет). Изначально делал неправильно :).
Не подскажете ли где можно найти подробное описание объетов (классов) Боба? OnPlaceEnter - трактовка для меня неоднозначная, английский плохо знаю...
--- Добавлено ---
Цитата:
Сообщение от
FH_Lord_Lexus
LePage, подскажи, возможно использование DeviceLink для создания MFD? Чтоб можно было, например на планшете по сети в браузере реализовать панель с переключателями, и т.д.?
Пока не знаю, но тоже этого хочу. Если не напрямую, то через виртуальный джой как-то так.