Jump to content
MOSSS

передача переменной в lua-скрипт из vb.net

Recommended Posts

Здорово живете!

Подскажите, плз, как мне реализовать "передача переменной в lua-скрипт из vb.net"?

На простом примере:

в каталоге flywithlua\scripts есть скрипт с командой  допустим:    logMsg(text)

при запущенном X-Plane скрипт, понятно, загружен

как из приложения vb.net передавать значение переменной text в скрипт?

про существование LuaInterface знаю, но не знаю какие методы могут реализовать это (если вообще LuaInterface тут нужен..... может есть другие способы (простые/сложные)….

пока для меня темный лес....  пытаюсь пока изучать доки...

Share this post


Link to post
Share on other sites
Posted (edited)

Lua интерпретируется SASLом, для VB есть интерпретатор для ХР? Если есть такой  - долны быть доки, где описано как передавать, читать,  обрабатывть. Или имеете ввиду: VB приложением менять на лету скрипт, который читатеся САСЛом в сим? Сложно как то, не? Луа обычный тестовый файл, в ВБ должны быть функции чтения/записи в файл, я его просто не знаю, так - размышления "в слух". 

Edited by FlaynGrizzly

Share this post


Link to post
Share on other sites

Про SASL не слышал, придется поизучать….

А вообще, как я понял, Lua в XP работает через плагин FlyWithLua.

Вообще хочу датарефами оперировать, но для теста взял простяцкую команду logMsg. Управление нужно из vb.net-приложения.

Знаю про UDP и SDK, но мне посоветовали Lua из-за простоты.

Вот и получается схема: XP - FlyWithLua - Lua-скрипт - …. - VB.net

В скрипте, наверно, будет функция, ждущая параметра извне (vb.net); получив его будет исполняться команда в функции...

Вот и выходит сейчас: в XP открываю Dev Log консоль и окно (как там?), туда сообщения выводятся командой logMsg. В VB-прил допустим текстбокс и кнопка. Написал фразу в текстбокс, напр. тот же "Hello", нажал кнопку и фраза должна появиться в Dev Log консоли в XP…. как-то так....

Потом, если это заработает, можно уже пробовать влиять на датарефы sim/…. и т.д.

Share this post


Link to post
Share on other sites

https://www.1-sim.com/ , почитайте документацию, там все проще. Еще проще (как я понял) в xlua. У вас какая то сложная задумка, кмк, с длинной цепочкой передач (а если еще в обе стороны делать...). Пишете скрипт, кидаете в FlyWithLua, интерпретатор (FlyWithLua в данном случае) читает и исполняет. У САСЛа  возможностей гораздо больше, особенно у v.3. А если Сями владеете, то видимо просто по СДК плагин пишете. Там еще от задач зависит - для сценариев, самолетов, общие плагины.   

Share this post


Link to post
Share on other sites

 

2 часа назад, FlaynGrizzly сказал:

У вас какая то сложная задумка

Да вроде ничего сложного... VB-приложение имеет определенную логику, в зависимости от обстоятельств генерирует команды. Эти команды надо передать в XP. Все по сути.

Способов несколько....но т.к. посоветовали мне Lua, пока разбираюсь в нем.

Как работает Lua-скрипт я понимаю. Но он статичен. Все, что в нем есть (все, что там написано), в XP (через FlyWithLua) выполняется единожды.

Даже вот пример из мануала по FlyWithLua . Содержание скрипта: "dataref("Beacons", "sim/cockpit/electrical/beacon_lights_on", "writable")    Beacons = 1". При запуске полета установка пройдет и все.

А мне, к примеру, надо передавать интерактивно эту переменную для Beacons, 0 или 1.

Может вообще выяснится, что посредством Lua это невозможно..... Тогда UDP вкуривать придется (оно точно сработает, но сложно там с перекодировками...…)

Спасибо за намеки на САСЛ и xlua….

Share this post


Link to post
Share on other sites

Насчёт vb не знаю, никогда с ним не связывался, а вот с С# - пожалуйста 

Или вот https://www.nuget.org/packages/XPlaneConnector/1.1.6673.28421
Практически готовые решения.
Мне кажется чем мучить vb, лучше присмотреться к C#,  оно вообще перспективнее.

Share this post


Link to post
Share on other sites

С ХР много всяких фокусов делали. Например парняга забугорный прикрутил (похоже больше для баловства) JS. Причем с поддержкой HTML и соответственно таблиц стилей. Написал так плагины какие-то.

А доки все же вы зря не посмотрели: то, о чем вы написали (постоянное считывание скрипта или его части) с симовской частотой во FlyWithLua  это do_offen() в САСЛе - function update(). 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×