

RA3DCS
Members-
Posts
107 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Everything posted by RA3DCS
-
В таком случае искренне желаю команде разработчиков больших творческих успехов. Небольшое пожелание по возможности не забывать любителей симуляторов с железными кабинами (их не очень много, но они есть и я в том числе). Очень надеюсь, что Ваш новый проект можно будет безболезненно интегрировать в вариант симулятора с железной кабиной. А что касается документации по 21-93, БИС-UPG при положительном результате, думаю можно было бы поделиться.
-
Примерно похожая ситуация с МиГ-21-93 на выставке один фазотроновец жаловался, что КБ Микояна не очень-то поддерживало проект модернизации, чтобы не мешать продажам Миг-29.
-
Ну тогда уважаемому beczl может, стоит обратить внимание на эти модификации. Мне тоже очень нравится МиГ-21, но как воевать на МиГ-21 в северокавказском регионе? Другое, дело, что по этим модификациям очень мало информации, но я не думаю что требуется к примеру полностью моделировать систему жидкостного охлаждения БРЛС «Копье» К-001?
-
Коллеги, а насколько актуально создание устаревшего варианта МиГ-21 БИС? Может разработчики лучше обратили внимание на такие модификацию МиГ-21-93 с российским составом оборудования или МиГ-21БИС-UPG. Вооружение: встроенная 23-мм пушка ГШ-23Л (250 снарядов). УР класса воздух - воздух средней дальности Р-27Р1 (до двух единиц) или Р-77 (РВВ-АЕ, до четырех ракет), УР ближнего боя Р-73Э (четыре) или Р-60М (шесть), противорадиолокационные ракеты Х-25МП (две) или Х-31П (одна), противокорабельные ракеты Х-31А (одна) или Х-35, корректируемые бомбы с лазерным наведением КАБ-500КР (две), НАР С-5, С-8 и С-24, свободнопадающие бомбы калибром 100-500 кг. Или в крайнем случае на румыно – израильский вариант модернизации Лансер.
-
По РЭО документации очень мало по РСБН-5С ничего нет!
-
Это и есть экспортные варианты РП-22СМ.
-
Система называется ПОЛЕТ ОИ.
-
Спасибо большое за помощь. Получилось. Правда перестала работать функция сигнализации нейтрального положения триммеров. local TrimmerStatus = LoGetTrimmerStatus() -- Индикация триммеров local TRIM_RV = (TrimmerStatus.ElevatorNeutral and 1) or 0 -- триммер РВ local TRIM_EL = (TrimmerStatus.AileronNeutral and 1) or 0 -- триммер ЭЛ local TRIM_RN = (TrimmerStatus.RudderNeutral and 1) or 0 -- триммер РН И сигнал Пожар двигателей.
-
Ну, вот я его уже изменил.
-
А файл export.lua что в основной папке с программой не менять?
-
У мя версия 1.2.3.10201 папки scripts в .../Saved Games/DCS/ - нет.
-
Папка Scripts находится ……/Eagle Dynaics/ DCS World/ Scripts/ network.cfg - там .../Saved Games/DCS/Config/
-
Установил Digital Combat Simulator World (DCS World), но попытки подключить симулятор к железной кабине пока не увенчались успехом. Кабина до этого работала в LockOn ГС-2. Файл export.lua в отличии от LockOn находится в папке Scripts. В network.cfg функция allow_object_export = false, установлена в true. Но соединение с сервером Sioc не происходит. Может еще, что нужно включить? Кто знает?
-
Как оказалась функция LoSetCommand(номер команды) реагирует на любое изменение переменной, т.е. независимо, что там 0 или 1. Что вызывает некоторые неудобства при начальной загрузке Локк Она.
-
В файле ExportSupport.lua в функции TwoPositionSwitch меняем строку GetDevice(pDevice):performClickableAction(pNumber + 3000, pValue * pOnValue) на строку LoSetCommand(pDevice) В файле Export.lua нужно прописать путь к файлам inputsTable и ExportSupport.lua --load the support functions dofile("./Config/Export/ExportSupport.lua") -- Load Sioc input definitions dofile "./Config/Export/SIOCConfig/inputsTable.lua"
-
В файле inputsTable.lua формируем нужные нам переменные и назначаем им команды. например: -- General Format [sIOC Parameter Value] = {Function, input1, input2, input 3, input4} ------------------------------------------------------------- -- Примечание: Значение параметра SIOC должно быть 1 или 0, никакие другие значения недопустимы -- приведет к непредсказуемым результатам. ------------------------------------------------------------- inputsTable = { [50] = {TwoPositionSwitch, 309, 1, 1}, -- Запуск двигателя. [51] = {TwoPositionSwitch, 300, 1, 1}, -- Освещение кабины. [52] = {TwoPositionSwitch, 82, 1, 1}, -- Сброс подвесок. [53] = {TwoPositionSwitch, 310, 1, 1}, -- Останов двигателя. [54] = {TwoPositionSwitch, 430, 1, 1}, --Шасси выпустить. [55] = {TwoPositionSwitch, 431, 1, 1, 1}, -- Шасси убрать. [56] = {TwoPositionSwitch, 76, 1, 1, 1}, -- Сбросить тормозной парашют. [57] = {TwoPositionSwitch, 12, 1, 1, 1}, [58] = {TwoPositionSwitch, 12, 1, 1, 1}, [59] = {TwoPositionSwitch, 12, 1, 1, 1}, }
-
http://code.google.com/p/dcsbsexport/ Насколько я понял, речь тут идет про кликабельные элементы и индикаторы. Т.е. те элементы управления, которые управляются щелчком на экране кнопкой мыши, но в ЛокОне таких элементов я не вижу. Скорее всего, в случае ЛокОна нужен другой подход.
-
Теперь уже достоверно убедился, что кликабелтный способ не работает в ЛокОне.
-
Тут каки е то операции с этими переменными: -- Works just before every simulation frame. -- Check for data/string from the SIOC server on the socket local inpst = c:receive() if inpst then for lSIOC_Param, lSIOCValue in SIOC_Parse(inpst) do if inputsTable[lSIOC_Param] ~= nil then inputsTable[lSIOC_Param][1](lSIOCValue, inputsTable[lSIOC_Param][2],inputsTable[lSIOC_Param][3],inputsTable[lSIOC_Param][4],inputsTable[lSIOC_Param][5]) end end -- io.flush() end Вот понять бы какие?
-
Мало у нас тут людей интересуется железными кабинами! Судя по всему этим кодом в начале старта ЛокОна запрашиваются от СИОК переменные находящиеся в файле inputsTable с номерами те,что в квадратных скобках. local lSIOC_Var, i local lSIOC_SendString = "" -- Generate the init string to SIOC (to register with SIOC which parameters we are interested in) for lSIOC_Var,i in pairs(inputsTable) do lSIOC_SendString = lSIOC_SendString..lSIOC_Var..":" end -- Send the initstring socket.try(c:send("Arn.Inicio:"..lSIOC_SendString.."\n"))
-
Первая часть задачи была решена, работают основные приборы и системы. Возникла необходимость обратной передачи данных от железной кабины (пульты управления, положение некоторых органов управления) в LockOn. Должна работать связка кабина ==>клиент==>Sioc==>Export.lua==>LockOn. Первая часть задачи послать данные от кабины в Sioc. Евгений (Shaman_2010) подсказал, как это сделать. Нужно отправить в SIOC пакет вида: Arn.Resp: номер переменной = значение переменной: номер переменной = значение переменной: и в конце закончить символами "#$D" "#$A". Например, для отправки данных из кабины резервируем переменные с номерами от 50 до 80, тогда процедура отправки данных в Sioc (в клиентской части) выглядит так. var Sioc_Send: string; begin Sioc_Send := 'Arn.Resp:'; Sioc_Send := Sioc_Send + '50=' + IntToStr(c1) + ':51=' + IntToStr(c1) + .... + ':'; Sioc_Send := SiocSend + #$D + #$A; ClientSocket.Socket.SendText(Sioc_Send); Sioc_Send := '': end; Однако, это только половина дороги. Теперь задача научить Export.Lua читать эти данные. Вот тут пока загвоздка! Знающие люди – подскажите!?
-
Теперь дальше получаемые данные полета. -- эта функция выполняется после отрисовки каждого кадра function LuaExportAfterNextFrame() local lSIOC_SendString = "" local TAS = LoGetTrueAirSpeed()* 3.6 -- получаем значение истинной скорости local IAS = LoGetIndicatedAirSpeed()* 3.6 -- получаем значение прибрной скорости local AOA = LoGetAngleOfAttack() -- угол атаки local Gp = LoGetAccelerationUnits() -- перегрузка local VV = LoGetVerticalVelocity() -- верт скорость local altBar = LoGetAltitudeAboveSeaLevel() local altRad = LoGetAltitudeAboveGroundLevel() local pitch, bank, yaw = LoGetADIPitchBankYaw() local Mach = LoGetMachNumber() local HSI = LoGetControlPanel_HSI() local engine = LoGetEngineInfo() local route = LoGetRoute() local PlaneID = LoGetPlayerPlaneId() local obj = LoGetObjectById(PlaneID) local myXCoord, myZCoord = getXYCoords(obj.LatLongAlt.Lat, obj.LatLongAlt.Long) local navi = LoGetNavigationInfo() R0 = TAS R1 = IAS R2 = AOA*ToDegree R3 = Gp.y R4 = VV R5 = altBar R6 = altRad -- округляем значение до целого R0 = math.floor(R0 + 0.5) R1 = math.floor(R1 + 0.5) R2 = math.floor(R2 + 0.5) R3 = math.floor(R3 + 0.5) R4 = math.floor(R4 + 0.5) R5 = math.floor(R5 + 0.5) R6 = math.floor(R6 + 0.5) -- формируем строчку номер переменной = значение R0 = "0="..R0..":" R1 = "1="..R1..":" R2 = "2="..R2..":" R3 = "3="..R3..":" R4 = "4="..R4..":" R5 = "5="..R5..":" R6 = "6="..R6..":" -- записываем строчку lSIOC_SendString = lSIOC_SendString..R0 lSIOC_SendString = lSIOC_SendString..R1 lSIOC_SendString = lSIOC_SendString..R2 lSIOC_SendString = lSIOC_SendString..R3 lSIOC_SendString = lSIOC_SendString..R4 lSIOC_SendString = lSIOC_SendString..R5 lSIOC_SendString = lSIOC_SendString..R6 -- отправляем if lSIOC_SendString ~= "" then socket.try(c:send("Arn.Resp:"..lSIOC_SendString.."\n")) end end -- процедуры закрытия порта function LuaExportStop() io.close() socket.try(c:send("quit")) -- to close the listener socket c:close() end ------------------------------------------------------------------
-
Как известно работа с этой программой обеспечивается за счет взаимодействия по протоколу TCP. Механизм работы примерно следующий : программа связи симулятора со внешними устройствами создает TCP «сервер» (ведущий процесс) , который ( упрощенно ) является областью в памяти компьютера . Эту область программа связи симулятора с внешними устройствами постоянно прослушивает. В свою очередь ЛокОн создает «клиент» ( то есть ведомый процесс ) который постоянно передает в эту область данные. Увидев наличие данных программа связи должна считать их, и преобразовав выдать во внешние устройства. Лок Он при запуске анализирует, создан ли сервер. Если сервер не создан, то Лок Он не будет передавать данные. Таким образом, для корректной работы необходимо СНАЧАЛА запустить программу связи (сервер), и только после этого ЛокОн. По совету Андрея (Lisa) попробуем применить такую схему: Lock On => Lua => TCP/IP => Sioc => клиент => приборы. SIOCиспользуется исключительно как сервер на который LockOn посылает данные. Для того , чтобы ЛокОн начал работать с созданным сервером необходимо : - объяснить программе, что она должна работать по TCP. - указать программе область памяти ( или сетевой адрес ) в который ей необходимо передавать данные. - указать программе объем данных ( параметры ), который необходимо передавать . После настройки программы: - сформировав сервер дождаться начала обмена данными . Эта последовательность действий обеспечивается следующим образом. 1. Вфайле ...\1C\Eagle Dinamics\LO\Config\Export\Config.lua найти строку EnableExportScript = false ( в принципе она одна там и есть )... и исправить её так :EnableExportScript = true Этим мы дадим знать ЛокОн что ему необходимо начать работать на передачу (экспорт) данных. 2. Заменитьфайл ...\1C\Eagle Dinamics\LO\Config\Export\Export.lua на одноименный файл , ( то есть с нашими данными ) Желательно старый файл не удалять а переименовать (на всякий случай ). В этом файле находятся : - настройки TCP ( номер порта и номер хоста ) - ----------------------------------------------------------- --процедурыоткрытияпорта functionLuaExportStart() package.path =package.path..";.\\LuaSocket\\?. lua"package.cpath =package.cpath..";.\\LuaSocket\\?.dll" socket =require("socket") host ="192.168.10.190"--сетевойадресSIOC port =8092– порт SIOC c = socket.try(socket.connect(host, port)) c:setoption("tcp-nodelay",true) c:settimeout(.01)end ------------------------------------------------------------------------------------ --значения"host"и"port"поумолчаниюдляSIOC host – сетевой адрес компьютера на котором установлен сервер. Запускаем SIOC сервер, затем LockOn, выбираем миссию. Компьютеры связаны по локальной сети. В строчке "Clientsconnecteds" должны увидеть, сколько клиентов подключены. Если соединение получилось уже хорошо.
-
Возникла необходимость (по убедительной просьбе любимого племянника) подключить к военному симулятору Lock On ГС-2 существующую железную кабину, которая работает под МФС. Что оказалось для меня совсем не простой задачей. Тем более, что программа управления кабиной должна находиться на другом компьютере. Но надеюсь с помощью коллег по симулятору эту проблему решить.
-
Что-то меня терзают смутные сомнения, что это все работает только под DCS.