Jump to content

Нужна помощ с export.lua


Recommended Posts

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

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

DCSSocket.rar

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

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

Link to comment
Share on other sites

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

 

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

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

 


Edited by BR=55=Sevas
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

  • 4 weeks later...

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

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

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

Link to comment
Share on other sites

Директора есть

 

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.

Link to comment
Share on other sites

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

 

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

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.

Link to comment
Share on other sites

: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!!!!!!

Link to comment
Share on other sites

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

 

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

 

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

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

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

Link to comment
Share on other sites

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

 

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

Saved Games\DCS\Scripts\export.lua

 

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

 

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

Проверяйте.

Link to comment
Share on other sites

Экспорт на месте. Если я на это место кладу свой экспорт, то я получаю данные. Если кладу Ваш, то соединение происходит, а данные не сыпятся. То же самое происходит с панелькой от 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!!!!!!

Link to comment
Share on other sites

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

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!!!!!!

Link to comment
Share on other sites

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

 

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

 

 

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

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

 

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

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

 

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

 

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

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

Link to comment
Share on other sites

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

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

 

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

 

С вложенным экспортом панелька 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!!!!!!

Link to comment
Share on other sites

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

1.thumb.png.d6af2956aa65ba482f08c62dfe0ae6a9.png


Edited by USSR_Nic

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

 

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

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

 

wCocFSxeFwY.jpg


Edited by BR=55=Sevas
Link to comment
Share on other sites

Хорошо. Я временно согласен на те директора, которые работают. Но 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!!!!!!

Link to comment
Share on other sites

  • Recently Browsing   0 members

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