Accueil
Accueil

Bienvenue invité ( Connexion | Inscription )

2 Pages V  1 2 >  
Reply to this topicStart new topic
> Friend or Foe, Aide à la determination ami / Ennemi
Blu3dr4g0n
post 26 May 2012, 19:20
Message #1



 


Messages : 85
Inscrit : 16/03/08
Lieu : Castres
Membre n° 2,983

Bonjour,

Je cherche à rajouter un petit composant à mon DCS:A10C 1.1.1.1 via un bout de code LUA à savoir la détermination d'une cible amie ou ennemie (un peu le rôle de l'IFF qui n'est pas implémenté).

J'ai commencé mon code, mais je me gratte la tête car :
1- Je ne sais pas comment récupérer les infos de la cible que j'ai locké (en la définissant comme SPI pour le CCRP) => je ne sais pas comment faire pour "trapper" le fait que la cible est locké (la fonction LoGetLockedTargetInformation() ne fonctionne pas ...)

2- Je ne sais pas comment récupérer l'état du switch IFF (console de gauche au dessus de la molette de selection des bandes)

Avez vous des idées ?

En PJ mon code à placer dans "C:\jeux\DCS A-10C\Config\Export\BlueDragonIFF.lua" pour tester et à activer en rajoutant dofile("./Config/Export/BlueDragonIFF.lua"); dans le fichier Export.lua.

Merci smile.gif

CODE

-- BlueDragon IFF for DCS:A10C
-- Copyright (C) 2012 - http://www.3rd-wing.net
-- http://www.3rd-wing.net/index.php?showuser=2983

-- Headers
dofile("./Config/World/World.lua")                  -- Required to get mission date
dofile("./Scripts/Database/wsTypes.lua")        -- Required to get object types definitions


BlueDragonIFF=
{
  -- Version
  Version = 0.1,
  --Logs
  LogLevel = 2, --Niveau 0 / 1 / 2 [OFF / Warning / Full]
  LogFileName = lfs.writedir() .. "Logs\\BlueDragonIFF_"..os.date("!%Y-%m-%d_%H%M%S",now)..".log", --Nom du log au format <nomfichier_date>.log
  LogFilePtr = nil,
  
  -- ___________
  --/ LOGSTART()\
  ------------------------------------------------------------------------------
  -- Fonction d'ouverture et initialisation du log
  ------------------------------------------------------------------------------
  LogStart = function(self)
   self.LogFilePtr = io.open(self.LogFileName, "w+");
   self:LogWrite(0, "BlueDragon IFF for DCS:A10C - V"..self.Version);
   self:LogWrite(0, "Copyright (C) 2012 - http://www.3rd-wing.net");
   self:LogWrite(0, "Version : "..self.Version);
   self:LogWrite(0, "");
   local Player = LoGetObjectById(LoGetPlayerPlaneId());
   self:LogWrite(0, "Joueur : "..LoGetPilotName().." | ID : "..LoGetPlayerPlaneId());
   self:LogWrite(2, "Country : "..Player.Country);
   self:LogWrite(2, "Coalition : "..Player.Coalition);
  end,


  -- ___________
  --/ LOGWRITE()\
  ------------------------------------------------------------------------------
  --Fonction d'écriture de message dans le log
  -- DebugLevel : Number
  -- message : String
  ------------------------------------------------------------------------------
  LogWrite = function(self, DebugLevel, message)
   if (DebugLevel <= self.LogLevel) then
      self.LogFilePtr:write("["..os.date("!%H:%M:%SZ",now).."] "..message.."\n");
   end
  end,



  --   ___________
  --  / LOGCLOSE()\
  ------------------------------------------------------------------------------
  -- Fonction d'ouverture et initialisation du log
  ------------------------------------------------------------------------------
  LogClose=function(self)
   self:LogWrite(2, "Fermeture du log");
   self.LogFilePtr:flush();
   self.LogFilePtr:close();
  end,

  --   _______________
  --  / TargetUpdate()\
  ------------------------------------------------------------------------------
  -- Fonction de mise à jour des infos de la cible (IFF)
  ------------------------------------------------------------------------------
   TargetUpdate=function(self)
      local Target = LoGetObjectById(LoGetLockedTargetInformation()["ID"]);
      if (Target ~= nil) then
         self:LogWrite(2, "--LockedTarget");
         self:LogWrite(2, "Name : "..Target.Name);
         self:LogWrite(2, "Country : "..Target.Country);
         self:LogWrite(2, "Coalition : "..Target.Coalition);
        
      end
   end,

}

--=============================================================
-- (Hook) Appel 1 fois juste avant le démarrage de la mission
--=============================================================
do
    local PrevLuaExportStart=LuaExportStart;
    LuaExportStart=function()
        BlueDragonIFF:LogStart();
        if PrevLuaExportStart then PrevLuaExportStart();
        end
    end
end

--=============================================================
-- (Hook) Appel avant chaque frame de la simulation
--=============================================================
do
    local PrevLuaExportBeforeNextFrame=LuaExportBeforeNextFrame;
    LuaExportBeforeNextFrame=function()
         if PrevLuaExportBeforeNextFrame then PrevLuaExportBeforeNextFrame();
      end
    end
end

--=============================================================
-- (Hook) Appel apres chaque frame de la simulation
--=============================================================
do
    local PrevLuaExportAfterNextFrame=LuaExportAfterNextFrame;
    LuaExportAfterNextFrame=function()
      if LoGetLockedTargetInformation() ~= nil then BlueDragonIFF:TargetUpdate();
      end  
        if PrevLuaExportAfterNextFrame then PrevLuaExportAfterNextFrame();
        end
    end
end

--=============================================================
-- (Hook) Appel apres la fin de la mission
--=============================================================
do
    local PrevLuaExportStop=LuaExportStop;
    LuaExportStop=function()
        BlueDragonIFF:LogClose();
        if PrevLuaExportStop then PrevLuaExportStop();
        end
    end
end


--------------------
Knowledge Is Power

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
raven
post 26 May 2012, 21:16
Message #2



 


Messages : 201
Inscrit : 6/01/11
Membre n° 3,731

juste une question (j'avoue ne pas avoir lu le code) car je n'ai pas compris l'objectif , tu veux implémenter une IFF sur un A-10C , c'est a dire une simulation d'un transpondeur sur le A10C ? ou un interrogateur sur le A10C ? je pense pas que le A10C puisse interroger il peut juste répondre (transpondeur) ... et les switch correspond à celà.... exemple
un F15C interroge un A10C si les codes sont corrects , réponse positive le A10C est vu ami et ne se prend pas un AMRAAM dans la tronche (en réalité IFF + NCTR qui est devenu une obligation en operation OTAN)
sinon pour les cibles sol , il 'y a l'elprs mais le principe est différent
merci par avance du complément

Ce message a été modifié par raven - 26 May 2012, 21:39.

--------------------
Image IPB

E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Blu3dr4g0n
post 26 May 2012, 21:54
Message #3



 


Messages : 85
Inscrit : 16/03/08
Lieu : Castres
Membre n° 2,983

CITATION(raven @ 26 May 2012, 22:16) *

juste une question (j'avoue ne pas avoir lu le code) car je n'ai pas compris l'objectif , tu veux implémenter une IFF sur un A-10C , c'est a dire une simulation d'un transpondeur sur le A10C ? ou un interrogateur sur le A10C ? je pense pas que le A10C puisse interroger il peut juste répondre (transpondeur) ... et les switch correspond à celà.... exemple
un F15C interroge un A10C si les codes sont corrects , réponse positive le A10C est vu ami et ne se prend pas un AMRAAM dans la tronche (en réalité IFF + NCTR qui est devenu une obligation en operation OTAN)
sinon pour les cibles sol , il 'y a l'elprs mais le principe est différent
merci par avance du complément


Bonjour Raven,
De façon générale, ce que je souhaitais mettre en place était l'obtention de l'information si la target que je ciblais sur mon TGP était amie ou ennemie.

Concernant l'IFF, je connais dans les grandes lignes le principe. Je parle de Friend or Foe car c'est plus parlant pour les gens smile.gif mais ce n'est pas la vrai fonctionnalité du IFF + NCTR que je cherche à simuler.

Concernant l'ELPRS, je le vois parfois sur mon TAD, mais jamais sur le TGP (une fois lorsque je m'entraînai au lâché de GBU12, je pouttrais des alliés car je ne prenais pas le temps de les identifier )

En synthèse, et pour faire très simple, quand sur mon TGP je cible, j'aimerais savoir s'il s'agit d'un ami ou ennemi. Si via l'ELPRS c'est possible je veux bien avoir un lien vers la doc qui en parle ^^

--------------------
Knowledge Is Power

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
raven
post 27 May 2012, 08:41
Message #4



 


Messages : 201
Inscrit : 6/01/11
Membre n° 3,731

ben sur les mission ou j'ai un humvee ou un bradley en jtac, je le vois avec une croix verte sur le TGP quand il est dans le champ de celui ci

je re testerais avec plus d'unité mais il me semblais que cela fonctionnais pas mal
SAUF que les fantassins ne peuvent pas être visible (certainement d'autre aussi), mais celà est logique par rapport à la liste des unités le supportant ,

concernant la fonction LOGETLOCKEDTARGET, que renvoie elle ? est ce que l'ID de la cible lockée est renvoyé ou la table est carement vide
CODE

_LoGetLockedTargetInformation    =LoGetLockedTargetInformation()
nb_cibles = #_LoGetLockedTargetInformation

--------------------
Image IPB

E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Azrayen'
post 27 May 2012, 08:50
Message #5




VALHALLA EXPRESS

Indicatif : VK-01
Messages : 7,192
Inscrit : 1/03/05
Lieu : Forteresse de Lug
Membre n° 90

Blu3dr4g0n,

Ce que tu cherches à faire n'existe pas ou très peu (IRL) pour l'instant.

Ça fait partie des travaux du moment d'automatiser (via un D/L) l'acquisition de la position des blue forces, mais c'est loin d'être déployé. L'exemple des JTAC, premiers équipés, est pertinent.

L'identification des cibles au sol (ami, ennemi, neutre, civil...) reste l'une des grandes difficultés du métier. Si tu enlèves cette difficulté dans le simu (je pense que c'est possible, puisque le moteur du simu sait quelle unité appartient à quel camp), c'est une sorte d'avantage "indu" par rapport aux autres pilotes.

--------------------
Image IPB

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Blu3dr4g0n
post 27 May 2012, 09:54
Message #6



 


Messages : 85
Inscrit : 16/03/08
Lieu : Castres
Membre n° 2,983

Bonjour à tous,

Effectivement, après une bonne nuit de sommeil, j'ai bien réfléchi et, comme l'indique Azrayen, mon code ne prendrait pas en compte le fait que des unité ne disposent pas de l'ELPRS, ce qui enlèverait une partie de la tension de fin de mission pour cleaner l'espace des derniers ennemis restant (généralement camions de transports et autre).

Comme je suis sur une voie d'apprentissage / perfectinonement sur l'A10C, je souhaitais repousser cette phase "apprentissage des vehicules ennemi" à plus tard, mais finalement, mon code ressemblerait plus à "une triche" et serait peut-être utilisé pour fausser l'utilisation du simu à terme.

Grâce au EdModelViewer, je peux me faire une petite encyclopédie avec plusieurs vue du véhicule (des fiches existent déjà, mais pas avec plusieurs vue), y a plus qu'à smile.gif

Je laisse le code, ça donnera les bases à ceux qui veulent s'essayer au LUA sous DCS.

Bonne journée à tous

Ce message a été modifié par Blu3dr4g0n - 27 May 2012, 09:55.

--------------------
Knowledge Is Power

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SandJo
post 27 May 2012, 11:41
Message #7




Fratttttttt!!!

Messages : 821
Inscrit : 4/05/07
Lieu : RODEZ
Membre n° 1,763

Salut les gens,

Bon je vais être hors sujets, mais ce qui se dit dans ce post me fait vous demander s'il serait possible d'identifier et afficher une mention de la piste qui est choisie en atéro ILSN sur FC2 et plus tard sur FC3 ?

Je demande ça car on a pas cette info sur le F15 en mode ILSN. On ne sait donc pas quel piste est sélectionnée, surtout quand on commence à switcher et qu'on perd le fils. Un petit affichage de l'info momentanée comme les info de kill par exemple serait d'un grand confort.

De plus, si FC3 n'est qu'une simple transposition de FC3 dans World, il est à parier que ce sera toujours le cas..

Tchouss
SandJo

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
raven
post 27 May 2012, 11:51
Message #8



 


Messages : 201
Inscrit : 6/01/11
Membre n° 3,731

CITATION(Blu3dr4g0n @ 27 May 2012, 10:54) *

Bonjour à tous,

Effectivement, après une bonne nuit de sommeil, j'ai bien réfléchi et, comme l'indique Azrayen, mon code ne prendrait pas en compte le fait que des unité ne disposent pas de l'ELPRS, ce qui enlèverait une partie de la tension de fin de mission pour cleaner l'espace des derniers ennemis restant (généralement camions de transports et autre).

Comme je suis sur une voie d'apprentissage / perfectinonement sur l'A10C, je souhaitais repousser cette phase "apprentissage des vehicules ennemi" à plus tard, mais finalement, mon code ressemblerait plus à "une triche" et serait peut-être utilisé pour fausser l'utilisation du simu à terme.

Grâce au EdModelViewer, je peux me faire une petite encyclopédie avec plusieurs vue du véhicule (des fiches existent déjà, mais pas avec plusieurs vue), y a plus qu'à smile.gif

Je laisse le code, ça donnera les bases à ceux qui veulent s'essayer au LUA sous DCS.

Bonne journée à tous

Ok, c'est ce que je t'avais indiqué/conseillé sur le post sur la recherche et l'identification de cible il y'a quelques temps, ceci étant dit pour la question concernant le LUA, je doit me refaire des exports sur BS2/A10C, je ferais des tests dédiés concernant la cible poursuivie TGP, SHKVAL via LoGetLockedTargetInformation pour voir si on peut les récupérer , j'ai toujours trouvé dommage de ne pas les afficher en plus des informations tacview ...
sinon pour FC3, je ne sais pas
@+

--------------------
Image IPB

E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Blu3dr4g0n
post 27 May 2012, 12:07
Message #9



 


Messages : 85
Inscrit : 16/03/08
Lieu : Castres
Membre n° 2,983

CITATION(raven @ 27 May 2012, 12:51) *

je ferais des tests dédiés concernant la cible poursuivie TGP, SHKVAL via LoGetLockedTargetInformation pour voir si on peut les récupérer , j'ai toujours trouvé dommage de ne pas les afficher en plus des informations tacview ...


Salut,

Bon courage alors, le principal soucis que j'ai c'est justement que le LoGetLockedTargetInformation() ne se déclenche pas lorsque que "lock" (si on peut appeller ça locker) une cible en mode SPI pour le CCRP (peut-être une erreur de ma part).

J'ai commencé à me faire un petit book des ennemis basé du edModelViewer (voir ici) :
http://www.filehosting.org/file/details/34...ion_ennemie.pdf

Si vous avez à dispo un book similaire, ou une liste d'ennemie à connaître (je me base sur mes missions card pour le moment)

@+

--------------------
Knowledge Is Power

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
raven
post 29 May 2012, 08:51
Message #10



 


Messages : 201
Inscrit : 6/01/11
Membre n° 3,731

bonjour
le problème m’intéressant, j'ai fait quelques essais sur BS2 1.1.1.1 il semble que les fonctions suivantes ne renvoient rien (nil):
- LoGetRoute()
- LoGetSightingSystemInfo() accroché ou non
- LoGetLockedTargetInformation() accroché ou non
- LoGetTargetInformation()
c'est bien sur non exhaustif
après recherche sur le site ED ces fonctions sont valides pour FC2 mais pas pour les DCS BS1/2/A10C car le système d'export a évolué avec la complexification de l’avionique , on ne peut utiliser ces fonctions pour savoir ce qui est accroché
par contre on peut accéder à certain éléments de l'avionique via les GetDevice , mais malheureusement il semble que l'on ne puisse pas récupérer les données du CDU ni les données du PVI800 (mon cas), notamment les coordonnées affichées ....
Par contre, on peut exporter "graphiquement" le PVI ....
Conclusion , pour ton idée bluedragon , c'était pas gagné gap.gif


--------------------
Image IPB

E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate

User is offlineProfile CardPM
Go to the top of the page
+Quote Post

2 Pages V  1 2 >
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :
 

Haut de page · Retour à l'accueil · Contacter le Webmestre Nous sommes le : 28/03/24 - 17:55