Aide - Recherche - Membres - Calendrier
Version complète : ADI et SIOC
3rd-Wing · Escadre virtuelle DCS > Espace détente > Cockpit & mod perso
gillesdrone
voilà je réuni les élément pour fabriquer en ' dur ' le Standby Attitude ( ADI de secours ) du Kamov pour la fabrication pas de soucis , je sais faire mais pour la récupération des données en export j'ai un soucis :

j'ai récupéré les variables que j'ai intégrant dans mon siocConfig.lua , pas de soucis

ADISEC = {
[1400] = {0,142}, -- AGR_81_Roll
[1410] = {0,143}, -- AGR_81_Pitch
[1420] = {0,144}, -- AGR_81_sideslip
[1430] = {0,145}, -- AGR_81_failure_flag
[1440] = {0,599}, -- AGR_81_LongitudinalDeviationBar
[1450] = {0,613}, -- AGR_81_LateralDeviationBar


j'ai mis les vaiables dans mon SSI

Var 1400, name AGR_81_Roll

Var 1410, name AGR_81_Pitch

Var 1420, name AGR_81_sidesl

Var 1430, name AGR_81_failure

Var 1440, name AGR_81_Longitu

Var 1450, name AGR_81_Lateral

quand je lance le simu et passe sur l' IOCP console , pour le Flag pas de Pb cela passe de 1 a 0 et inverse

pour les autres valeurs roulis tangage , je passe de 0 à 1 quand je bascule , je n'arrive pas a avoir un nombre a 3 chiffres par exemple et le faire évoluer
dans quel fichier dois je modifier l valeur ?

a l'origine dans le mainpanel_init.lua ?
dans le siocConfig.lua .?
dans l'export .lua

merci pour votre réponse

j'ai ausi trouvé les variables pour faire les gauges huile et pression mais meme Pb sad.gif
Hellfrog
salut Gilles,

comme pour certaines valeurs exportées dans le A10 ou avant avec Flaming Cliff, il doit y avoir un calcul à faire à partir de la valeur genre x 1000, partie entière, diviser par 10 ou un truc dans le genre... tu n'as pas essayé ?
cf aussi l'export.lua pour les valeurs des texte des armes sélectionnées, ou pour les stocks de munition, il y a un calcul je croie me souvenir avant l'exportation.

calcul à faire dans l'export.lua ou ensuite dans SIOC selon ce qui est le plus pertinent.
Par contre quel calcul, je ne saurais dire, et vu que je n'ai pas repris faute de temps... peut pas trop t'aider, seulement donner une piste.

bon tournemeninge et bons vols à l'escad' .
gillesdrone
content de te lire smile.gif ca faisaot longtemp...
en fait je sais faire le calcul mais ne sais pas ou et comment l'inserer
de plus je n'ai plus les export de Bs1 ou FC1 ce qui m'aurait permis de regarder
Azrayen'
Si je m'en réfère aux arguments (utilisés pour l'animation des modèles 3D), eux aussi varient de 0 à 1.

Mais pas 0 ou 1. De 0 à 1. Donc avec chiffres après la virgule (pour les arguments, 3 décimales IIRC).

Est-ce que ton ton programme ne forcerait pas qque part tes variables comme des entiers ? Si tu fais ça, alors si on t'envoie 0.452 comme valeur => ta variable vaut 0. Et 0.538 => ta variable vaut 1, par application de la règle d'arrondi.
Hellfrog
dans le export.lua de BS102 avec helios il y un an (je n'ai pas suivi depuis), on trouve :

concaténation de chaine pour les messages ekran

local lEkranText = lEKRAN:get_actual_text_frame()
local lEkranSendString = string.sub(lEkranText,1,8).."\n"..string.sub(lEkranText,12,19).."\n"..string.sub(lEkranText,23,30).."\n"..string.sub(lEkranText,34,41)

codage pour les muntitions
SendData("2001",lStationType)
SendData("2002",lStationCount)
SendData("2003",lCannonAmmoCount)
SendData("2004",lEkranSendString)

envoi des données à Helios :
function SendData(id, value)
if string.len(value) > 3 and value == string.sub("-0.00000000",1, string.len(value)) then
value = value:sub(2)
end

gestion des décimales :
-- Helper Functions
function StrSplit(str, delim, maxNb)
-- Eliminate bad cases...
if string.find(str, delim) == nil then
return { str }
end
if maxNb == nil or maxNb < 1 then
maxNb = 0 -- No limit
end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastPos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastPos = pos
if nb == maxNb then break end
end
-- Handle the last field
if nb ~= maxNb then
result[nb + 1] = string.sub(str, lastPos)
end
return result
end

gestion des arrondis :
function round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end


tu peux aussi jeter un oeil à heliosconfig.lua dans le sous dossier export

j'ai repris ça vite fait en 5 min, et je n'ai plus rien en tête, mais avec ça si tu connais les datas, tu dois pouvoir les modifier avant export vers SIOC si tu sais quels calculs faire, c'est juste une question de syntaxe en lua


pas le temps de creuser plus, mais c'est par là qu'il faut chercher
gillesdrone
Merci l'ami je regarde cela lundi russieflag.gif thumbsup.gif et reviens nous vite en vol wavetowel2.gif
gillesdrone
CITATION(gillesdrone @ 24 Nov 2012, 08:52) *

Merci l'ami je regarde cela lundi russieflag.gif thumbsup.gif et reviens nous vite en vol wavetowel2.gif



bon je crois que je vais devoir regarder cela mais bon ça va pas etre simple blink.gif

TUTO lua
Tarochi
Salutations-

regarde ici saianlol.gif
http://tacnoworld.fr/

c!est dans le export lua ou tu as de faire le change

string format........... jesors.gif
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.