DCS Bios et export sur un 2nd écran, comment?
DCS Bios et export sur un 2nd écran, comment?
#1Jour'
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
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
Referral code Star Citizen : STAR-WSYD-HCHK
Re: DCS Bios et export sur un 2nd écran, comment?
#2Bonjour
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 ?
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 ?
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: DCS Bios et export sur un 2nd écran, comment?
#3Ha 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!
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!
Referral code Star Citizen : STAR-WSYD-HCHK
Re: DCS Bios et export sur un 2nd écran, comment?
#4Oui 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.
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.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: DCS Bios et export sur un 2nd écran, comment?
#5C'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...
Referral code Star Citizen : STAR-WSYD-HCHK
Re: DCS Bios et export sur un 2nd écran, comment?
#6Oui 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.
Ca marche bien dans les deux sens.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: DCS Bios et export sur un 2nd écran, comment?
#7Bien ç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.
Referral code Star Citizen : STAR-WSYD-HCHK
Re: DCS Bios et export sur un 2nd écran, comment?
#8Voila 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.
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.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: DCS Bios et export sur un 2nd écran, comment?
#9Super 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
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
Re: DCS Bios et export sur un 2nd écran, comment?
#10@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.
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.
Serveur DCS : LFDM WWII_Baie_des_Veys
Site web http://wwii.lfdm.free.fr/
Site web http://wwii.lfdm.free.fr/
Re: DCS Bios et export sur un 2nd écran, comment?
#11Parfait 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.
Referral code Star Citizen : STAR-WSYD-HCHK