Jump to content

Recommended Posts

Posted

Не получается, хоть убейте, передать команду в DCS. Может кто-нить помочь с написанием скрипта export.lua для приема данных от сторонней программы? Данные принимаются и передаются из программы написанной на C#, с помощью класса DCSSocket(Где брал не помню). В export.lua есть раздел LuaExportBeforeNextFrame(). где как я понимаю и должен быть код приема команды и его обработка для LoSetCommand. Но как это написать...

Может кто-нить из программистов поможет? DCSSocket класс прикладываю.

DCSSocket.rar

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted (edited)

https://forums.eagle.ru/showpost.php?p=3058086&postcount=54

 

Ну и всю тему почитайте. Есть особенности, но всё работает.

Я так из су-27 беспилотник делал

 

Edited by BR=55=Sevas
Posted

Блин.. Ну как так... Третий день рою форум и ничего!!! Поиск по форуму похоже ваще не работает. (Ну или я неспособен правильно спросить) Спасибо большое за наводку. Жаль завтра на работу не попаду. Послезавтра буду разбираться.

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted

У меня все заработало. Всем спасибо.

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

  • 4 weeks later...
Posted

Может кто-нить подсказать как вытащить из экспорта курсовой и глисадный директор. Есть-ли в принципе там позиция этих стрелок? Также интересует курсовой и глиссадный бленкеры. Как узнать выпущены они или убраны?

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted (edited)
Директора есть

 

glide = LoGetGlideDeviation()

side = LoGetSideDeviation()

 

 

Только учитывая некоторые особенности реализации лучше писать как-то так

 

local glide = LoGetGlideDeviation() or 0

local side = LoGetSideDeviation() or 0

 

чтоб значит это самое скрипт работал всегда, на любой модели.

 

Если ожидается структура, то тогда приходиться так выкручиваться

local HSI = LoGetControlPanel_HSI()
if HSI ~= nil then
ADF = HSI.ADF_raw or 0 
RMI = HSI.RMI_raw or 0
Heading = HSI.Heading_raw or 0
end

Edited by ivan_sch

Начните с себя, насяльники. И со своих песиков-тролликов.

1.2 Forum members must treat each other with respect and tolerance.

Posted
Может кто-нить подсказать как вытащить из экспорта курсовой и глисадный директор. Есть-ли в принципе там позиция этих стрелок? Также интересует курсовой и глиссадный бленкеры. Как узнать выпущены они или убраны?

 

Можно брать данные прямо с приборов кабины

local MainPanel           = nil
if player_data then 
MainPanel = GetDevice(0)
end

function LuaExportBeforeNextFrame()


       local ADF = 0 -- АРК
local RMI = 0 -- 
local Heading = 0
local HSI = LoGetControlPanel_HSI()
if HSI ~= nil then
	ADF = HSI.ADF_raw or 0 
	RMI = HSI.RMI_raw or 0
	Heading = HSI.Heading_raw or 0
end
if Heading == 0 and MainPanel then
	if player_data.Name == 'L-39C' then 
		Heading = MainPanel:get_argument_value(41)*math.pi*2.0
	end
end

local PRS    = LoGetBasicAtmospherePressure() or 0
if PRS == 0 and MainPanel then
	if player_data.Name == 'L-39C' then 
		PRS = 670 + MainPanel:get_argument_value(56)*(826 - 670)
	end
end

 

Это для Элки. Цифирьки в формулах - коэффициенты масштабирования значения с прибора в нужное и понятное.

 

ЗЫ. Большинство функций экспорта работают только для моделей из Горячих скал. Отсюда и все эти проверки на возвращаемое значение.

Начните с себя, насяльники. И со своих песиков-тролликов.

1.2 Forum members must treat each other with respect and tolerance.

Posted (edited)

:crash::doh:Попробовал оба способа. Толи лыжи не едут, то ли лето уже... Не могу сопоставить полученные циферки с положением стрелок хоть убейте... И даже если я неправильно перевожу циферки, то движение стрелок же должно соответствовать изменению циферок. А у меня стрелки двигаются - циферки стоят, циферки бегут - стрелки стоят и наоборот. Может я плохо обьяснил что мне надо и меня не поняли... Мне надо получить положение стрелок которые указаны зелеными стрелками на картинке. Плюс мне нужно получить положение выпадающих флажков на ПНП с маркерами Г и К. Они убираются когда входишь в глиссаду.

Тестирую на Су-25 и Су-33

glide и side уверенно выдают -1 на любом режиме.

прога от BR=55=Sevas запускается, но приборы не шевелятся. Пробовал посмотреть сто сыпется из экспорта своей прогой, но она говорит, что подключение есть, но данные не льются.

 

вывод циферок такой:

local glide = LoGetGlideDeviation() or 0

local side = LoGetSideDeviation() or 0

local HSI = LoGetControlPanel_HSI()

local HSI = LoGetControlPanel_HSI()

if HSI ~= nil then

ADF = HSI.ADF_raw or 0

RMI = HSI.RMI_raw or 0

end

socket.try(c:send(string.format("%+#5.2f %+#5.2f %+#5.2f %#+5.2f %#+5.2f %#+5.2f %#+5.2f %#+1.3f %#+5.2f %#+5.2f|\n", 57.3*bank, 57.3*pitch, 57.3*yaw, altBar, altRad, IAS, TAS, SBP, glide, side)))

glide и side менял на ADF и RMI

if end пробовал убирать не помогает...

то я делаю не так???!!!:doh::doh::doh::doh::crash::crash::wallbash::wallbash::wallbash::wallbash::wallbash:

Может у меня DCS какой-нить не такой?

1889674509_.png.02e91a6e42ba447664abff5cc993dbc5.png

Edited by USSR_Nic

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted
:crash::doh:Попробовал оба способа. Толи лыжи не едут, то ли лето уже...

 

Коль, ты не совсем правильно понял смысл совета. Тебе показали куда копать и чем копать.. а вот дальше сам =)))

 

Важно определиться для какой или каких моделей ты делаешь кабину. И от этого танцевать - определять какие функции экспорта работают, откуда и как брать данные с приборов в кабине.

Начните с себя, насяльники. И со своих песиков-тролликов.

1.2 Forum members must treat each other with respect and tolerance.

Posted
BR=55=Sevas запускается, но приборы не шевелятся. Пробовал посмотреть сто сыпется из экспорта своей прогой, но она говорит, что подключение есть, но данные не льются.

 

Проверьте, что экспорт на месте.

Saved Games\DCS\Scripts\export.lua

 

Данные показываются и в панельке и в Xspider.

 

Если у вас ни там, ни там, то что-то блокирует порты. может антивир.

Проверяйте.

Posted (edited)

Экспорт на месте. Если я на это место кладу свой экспорт, то я получаю данные. Если кладу Ваш, то соединение происходит, а данные не сыпятся. То же самое происходит с панелькой от Mnemonica.

 

В строке вывода:

 

57.3*bank, 57.3*pitch, 57.3*yaw, altBar, altRad, IAS, TAS, SBP, glide, side

 

я получаю правильные данные кроме glide и side. Авиагоризонт показывает правильно крен, тангаж, шар, также правильно показывают высотомер и УС. А вот glide и side всегда показывают -1.

 

В процессе экспериментов заметил такую штуку, что если я делаю какую-либо ошибку, хотябы для 1 данного, в экспорт луа, то происходит соединение, но НИКАКИЕ данные не приходят во внешнии программу... Может кто-нить подключить мой экспорт и посмотреть какие данные приходят от 9 и 10 значения. Это glide и side. Может у меня правда что-то с DCSом.

 

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

 

Например для ввода в DCS данные расписаны по пунктам в конце экспорта, и там вполне вменяемо, пусть и на вражеском языке, в коментариях описано что есто что. А как понять что я получу вытащив это:

 

LoGetControlPanel_HSI() -- (args - 0,results - table)

result =

{

ADF_raw, (rad)

RMI_raw, (rad)

Heading_raw, (rad)

HeadingPointer, (rad)

Course, (rad)

BearingPointer, (rad)

CourseDeviation, (rad)

}

 

как понять, сто в строке

 

LoGetADIPitchBankYaw() -- (args - 0, results - 3 (rad))

 

я обратно получаю крен, тангаж и КОМПАС!!!!! Я долго не мог понять почему у меня шарик по кругу бегает... :) Ведь если перевести яндексом Yaw, то получим слово СКОЛЬЖЕНИЕ. А приходят данные от КОМПАСА.... Все это не укладывается в моей тупой башке....

 

Сделал красивый АГБ-96Д, электронику на него, написал прошивку и драйвер, а все уперлось в вывод данных из DCSа. Обидно...

1.thumb.jpg.4355608cf77601dd52daeef44cd2fbc5.jpg

Edited by USSR_Nic

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted

И еще. В моем экспорте написано так:

LoGetControlPanel_HSI() -- (args - 0,results - table)

result =

{

ADF_raw, (rad)

RMI_raw, (rad)

Heading_raw, (rad)

HeadingPointer, (rad)

Course, (rad)

BearingPointer, (rad)

CourseDeviation, (rad)

}

 

А в экспорте от BR=55=Sevas Написано так:

HSI.ADF*57.3, HSI.RMI*57.3, HSI.Compass*57.3

 

Я пробовал в своем экспорте если я пишу так: HSI.ADF то данные перестают поступать вообще.

А если пишу так: HSI.ADF_raw то данные сыпятся, тока непонятно что это такое... Где искать что есть что?

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted

LoGetADIPitchBankYaw() -- (args - 0, results - 3 (rad))

 

я обратно получаю крен, тангаж и КОМПАС!!!!! Я долго не мог понять почему у меня шарик по кругу бегает... :) Ведь если перевести яндексом Yaw, то получим слово СКОЛЬЖЕНИЕ. А приходят данные от КОМПАСА.... Все это не укладывается в моей тупой башке....

 

 

Ну, яндекс не обязан знать спецтермины.

pitch roll yaw -так принято обозначить углы в глобальной СК мира. Во всяком случае так в книжках видел.

 

Ну, и метод тыка никто не отменял. Вызвали один параметр и анализируете по арматуре игровой кабины, пока не поймето что это такое.

Углы иногда нужно переводить из радиан в градусы. Тонкостей тут хватает, всего не описать.

 

Вечером посмотрю экспорт в игре.

Кстати, поубирайте из него все не нужное, то что закоментировано. Ноги поломать же можно.

Оставьте только ваш код, намного проще будет читать.

Posted

Читать согласен проще, только где потом брать новые команды с коментариями???

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted

Да я уже сообразил, что нужно оригинал переименовать в ExportOriginal.lua и в него смотреть. Чета я туплю. И уже давно. В отпуск пора.

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted

Не нужно этого делать.

 

Оригинальный экспорт пусть лежит на своём месте в папке игры.

Ваш экспорт с которым боритесь лежит в сохраненных играх.

Posted (edited)
Оригинальный экспорт пусть лежит на своём месте в папке игры.

Ваш экспорт с которым боритесь лежит в сохраненных играх.

 

Далеко из папки в папку бегать. Так удобнее.

 

С вложенным экспортом панелька BR=55=Sevas заработала. Но понимания как в этой панельке ходят директора не пришло. Смотрю своей прогой что приходит от этого экспорта там glide и side уверенно показывают -1. А директора на панельке бегают правильно... И что это значит????:wallbash::wallbash::wallbash:

Зависимость хода директора с какой-нить циферкой найти не удается....

В строке вывода это: HSI.Compass*57.3 заменено на это: 360-yaw*57.3 и еще по мелочам.

 

HSI.Compass - этого нет в описании моего экспорта и при наличии этой строки экспорт вообще ничего не выдает.

Export.lua

Edited by USSR_Nic

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted (edited)

Вот скрин с прог. Стрелки где-то в промежуточном положении, а glide и side -1... Убейте меня, чтоб не мучился.

1.thumb.png.d6af2956aa65ba482f08c62dfe0ae6a9.png

Edited by USSR_Nic

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted

Это уже не наша проблема, а Советского Рика.

Похоже эти функции экспорта сломаны.

Попробуйте решение Иваныча, вытащить эти планки из аргументов анимации, только их номера не знаю.

Posted

Но Ваши планки двигаются правильно!!!!! КАК??????

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

Posted (edited)

У меня двигаются директора, которые за шариком ИЛСа следят. Не помню уже правильных названий.

в экспорте это navi.Requirements

 

Насколько понимаю вам требуются другие планки, которые формируют перекрестие на компасе, они отслеживают отклонение от глиссады.

Вот они у меня тоже перестали работать. Это уже или баг экспорта или их отключили.

 

wCocFSxeFwY.jpg

Edited by BR=55=Sevas
Posted (edited)

Хорошо. Я временно согласен на те директора, которые работают. Но navi.Requirements.pitch*57.3,navi.Requirements.roll*57.3 не дают понимания о положении стрелок. И вообще, никакие циферки из Вашего экспорта не дают этого понимания. Такое ощущение, что Вы используете несколько параметров для получения этих данных. Я уже даже попробовал все параметры на все поделить, умножить, сложить и вычесть. Но формула вычисления видимо посложнее... Дальше я не понимаю куда копать...

 

2

Блин... Теперь все заработало...

glide и side начинают работать с пол глиссады. Вчера не работали никак... В navi.Requirements.pitch,navi.Requirements.roll убрал *57.3 И стало что-то похожее, но отдаленно... Пока не очень понимаю сопоставление.

Edited by USSR_Nic

Выпитая водка не влияет на ТТХ истребителей!!!

Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...