Page 1 sur 1

DCS Bios et export sur un 2nd écran, comment?

Publié : jeu. mars 21, 2019 4:37 pm
par Roger01
Jour'

Vu que Helios me divise par 2 les fps... j'aimerais utiliser l'output de DCS Bios pour créer des instruments virtuels (aiguilles, voyants surtout), tel qu'Helios en fait. (Bien que le plus simple, ça aurait été un export intégré dans le jeu.. mais à part les mfd et le fuel, y'a pas vraiment...)

Mais comment faire? Je sais qu'il y a un api mais je ne suis pas doué en programmation, tout au plus je sais bidouiller du code déjà présent (tel que le stream desk sous dcs bios que j'ai modifié).

Une idée? Merci! :D

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : jeu. mars 21, 2019 7:50 pm
par Vmf214
Bonjour

DCS bios exporte les donn(oh purée ma femme à reussi à me mettre le clavier en Qwerty, les femmes !)

Je reprends, oui DCS bios exporte les données sur ton réseau internet maison.
A partir de là d'un autre pc relié à ta box (ton réseaux ethernet/wifi) , tu peux récupérer les data sans pénaliser le pc dcs.

J'avais fait des app sur tablet par exemple en me servant des données de dcs bios.
Le plus simple c'est d'attaquer avec du Python, c'est ce qui me parait le plus simple, je crois que j'ai un code exemple quelque part.

Partant pour du Python ?

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : jeu. mars 21, 2019 8:40 pm
par Roger01
Ha oui pas bête le 2nd PC mais vu que je compte tout mettre sur un seul écran je suis pas sur qu'on puisse exporter les mfd (entre autre) sur un 2nd PC.

Sinon pas de soucis sur Python, j'avais commencé un peu dessus, mais bon niveau débutant de chez débutant.

Merci en tout cas! :)

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : sam. mars 23, 2019 10:19 pm
par Vmf214
Oui pour les mfd, les écrans radar, les caméras thermiques je n'ai jamais rien vu dans dcs bios, c'est pas la bonne solution.

Sinon c'est possible de se faire un panel sur le même pc des éléments exportés par dcs bios et sans ralentir sensiblement la machine.

J'ai fait un petit exemple du variometre du Spitfire, je vais essayer de faire un panel complet par la suite.
C'est codé en Python3.6 et Pygame donc ça fonctionne sur pc,mac, linux, sur la même machine ou sur un vieux portable à coté du pc DCS par exemple.

pygame.jpg

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : sam. mars 23, 2019 10:26 pm
par Roger01
C'est pas mal. Le but étant d'utiliser que dcs bios (au lieu d'Hélios) vu que dcs bios me mangé quasi aucun FPS. Et ça permetterais d'avoir 2/3 vrais panels. Mais a voir si avec python on peut faire du input comme de l'output mais y'a pas de raison...

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : sam. mars 23, 2019 11:07 pm
par Vmf214
Oui on peut aussi envoyer des commandes à DCS pour manipuler les interrupteurs, les leviers, les commandes de vol, etc...

Ca marche bien dans les deux sens.

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : dim. mars 24, 2019 1:30 am
par Roger01
Bien ça me semble pas mal :p si jamais tu veux partager ton code, n'hésite pas! Je suis du genre à facilement regarder et modifier un code, mais pas d'en créer un.

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : dim. mars 24, 2019 3:04 pm
par Vmf214
Voila c'est téléchargeable là : http://kiwimikui.net/dcsbios_python.zip

Pas besoin de lancer SOCAT, dans ce cas il ne sert à rien. Il faut avoir un dcsbios qui contient le spitfire https://github.com/PrestaMath/dcs-bios

C'est le tout début de mon programme mais dans l'absolu, ajouter un instrument avec une aiguille revient à ajouter cette ligne

variometer = needle( (0,0), (400,4000), 'spitfire_climb.png', (0x5438 , 65535,0), (200,200), 150, -235, 225)

Les paramètres dans l'ordre :
(0,0) : position : de l'indicateur dans la fenetre python
(400,4000) : size : taille de l'indicateur et première coquille c'est 400,400
spitfire_climb.png': background_img: l'image de fond sur laquelle on affichera l'aiguille
(0x5438 , 65535,0) : dcsbios_parameters : alors là c'est donné par dcs bios dans la doc soit adresse, mask et shift
(200,200) : pos_center :position du centre de l'aiguille par rapport au dimension de l'indicateur
150 : needle_length : longueur de l'aiguille à dessiner
-235° :start_angle : c'est l'angle de départ de l'aiguille -4 'Descent' pour 0 transmis par dcs bios, à 32267 elle pointe sur le 0 et pour 65535 elle pointe sur 4 'Climb'
225 : step : valeur de division pour avoir le comportement ci dessus : si dcsbios transmet 32267/225 -235= -90° Donc là on est sur le 0 du cadrant on vole :)

Attention pour ajouter un deuxième instrument par exemple il faut agrandir la fenetre python : win = pygame.display.set_mode((800,400))

Je travaille sur mon code et au final un instrument reviendra à ça :
variometer = instrument( (0,0), (400,400), 'spitfire_climb.png')
variometer.add_element( needle((0x5438 , 65535,0), (200,200), 150, -235, 225))

Ca permettra d'avoir sur le même instrument, plusieurs aiguilles (altimètre par exemple), un mix d'aiguilles, de voyants, de leviers, de molettes, etc...

C'est très brouillon mais si j'attends d'avoir le code parfait on aura dcs " f16 tornado rafale apache hind " avant.

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : dim. mars 24, 2019 3:24 pm
par Maclaw
Super intéressant pour le néophytes.
Peux-tu me dire à quoi sert le Socat?
J'ai fait un sujet sur DCSBIOS et DCSFlight Panel et j'avais posé la question mais je n'ai pas eu de réponse.
Où viendrait s'intercaller ton DCSbios Python par rapport au dossier DcsBios où on trouve Doc et lib,bios biosconfig ??
Tu fais rêver et je verrai bien quelques instruments du Mirage 2000C en reprenant tes bases
:cheer:

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : dim. mars 24, 2019 4:58 pm
par Vmf214
@Maclaw :
Fonctionnement standard de dcsbios :
Le script lua, C:\Users\User\Saved Games\DCS\Scripts\export.lua, de dcsbios exporte en tcp et/ou udp sur le réseau du pc dcs les données du simulateur,
Socat les récupères de tcp|udp et les transmets sur le port série (port com aujourd'hui en usb) indiqué.

Dans le cadre normal de dcsbios et arduino, arduino communique avec le pc via le port com donc dans ce cas Socat est indispensable.
Dans mon cas je récupère les infos directement sur tcp|udp , je n'utilise donc pas le port com.


Ma démo peut être stocké n'importe ou, elle s'éxécute en tant que script python sur le pc dcs ou sur une autre machine du réseau capable de faire tourner du python.

Oui pour le 2000 c'est tout à fait possible, mais de mon coté j'ai deux trois choses à rajouter parce que juste des cadrans à une aiguille ça va être vite frustrant ;)
Mais comme je patine avec l'électronique je vais me consacré à ma solution python.

Re: DCS Bios et export sur un 2nd écran, comment?

Publié : dim. mars 24, 2019 10:10 pm
par Roger01
Parfait merci, je vais y jeter un coup d'oeil quand j'aurais le temps. Pour l'instant j'ai trouvé un "clone" d'helios (ikarus) qui est plus simple à prendre en main et est moins gourmand (bien qu'un peu quand même). A terme, j'aimerais passer à tout DCS bios qui lui, ne me fait pas perdre de fps.