Présentation à l'association de DcsBriefop, un programme de génération de briefings pour DCS

Créé le 30/01/2022 à 21:54 Dernier post: 12/05/2023 à 09:14 36 posts

Post by Flogas

Posted: 2022-01-30T21:54:51.984000
Edited: 2023-05-12T09:16:45.987000


Edit 12/05/2023
Le programme a beaucoup évolué en concept et en fonctions, je vais mettre à jour ce post en conséquences quand j'aurais le temps.
En attendant pour les intéressés les releases sont dans GitHub : https://github.com/MacFlorent/DcsBriefop/releases

En cas de problèmes/questions n'hésitez pas à me bipper sur Discord je regarderais avec plaisir.


Bonjour à tous,

Je souhaite vous présenter ici un programme qui m'occupe depuis quelques mois, que j'appelle DcsBriefop.
Pour l'instant, ce n'est pas un produit terminé, plus un "poc" encore assez rugueux, mais il arrive à un point où il est fonctionnel. C'est pour cela que j'ai envie de le partage avec la VEAF pour voir s'il suscite un interêt ou pas, et si cela vaut le coup de le faire avancer, et si oui dans quelle direction.

En tous cas n'hésitez pas à me donner vos avis, et si vous êtes interessé par ce qu'il esquisse, si vous avez des idées de comment le faire évoluer vers quelque chose d'utile pour la création de missions, dites moi !

DcsBriefop est un programme qui pour objectif de faciliter la vie des créateurs de mission DCS en automatisant la génération de de certaines informations de briefing et en les incluant dans le kneeboard. Ce programme fonctionne en lisant un fichier .miz, en l’interprétant, et en permettant de configurer des paramètres de briefing. Il peut ensuite générer des fiches d’information, sous forme de fichiers ou directement dans le kneeboard.
Le fonctionnement typique est le suivant :
- Création de la mission normalement dans l’éditeur de DCS
- Ouverture du fichier .miz dans DcsBriefop
- Vérification des paramètres automatiques, adaptations et modifications pour affiner en fonction des besoins
- Initialisation et configuration des presets radio si souhaité
- Enregistrement de ces paramètres dans le .miz
- Export des pages de briefing dans le kneeboard et/ou en fichiers externes

Les pages générées sont pour une coalition :
- Situation générale, description des objectifs, météo, date.
- Une carte générale
- Opérations de la coalition, bullseye, vols opérationnels, vols de support, bases
- Communications, presets radio
- Pages de mission individuelles, waypoints, cibles et cartes associées

Quelques images pour illustrer :

Ecran principal
1a9f70fe-f2bb-4f88-a7c5-329d28db1df5-image.png

Détail mission
b753bff4-1da0-4c54-8e45-01a367c65229-image.png

Communications
21777527-08df-455a-b114-f18ffa925121-image.png

Pages de briefing
0e21d11b-4c78-44bf-8d93-e9ff11d7c863-image.png
39e75527-2b84-4f2a-8952-a0de04f7f03a-image.png
ad2598d2-888e-43d0-859e-46571ce29656-image.png
9cb55322-0e3b-4abd-9341-9ff4350793bc-image.png

Rating: +2/-0 (Total: 2)


Post by Jed

Posted: 2022-01-31T08:46:49.332000

Hello! Vachement intéressé sur le principe, on peut en discuter la semaine prochaine si tu veux!


Post by Zed

Posted: 2022-01-31T08:58:49.939000

Hello, ça a l'air cool ! Est-ce que tu rend ça open source ? si oui as-tu un repo qu'on peut aller voir pour tester localement et se rendre compte de son fonctionnement ? Merci à toi et Bravo pour le taff


Post by Flogas

Posted: 2022-01-31T10:55:30.556000

Open source pourquoi pas, mais c'est du C# / .net 4.7 donc il faut le compiler. Mais je vais mettre le programme compilé à disposition quelque part pour ceux que ça intéresse.

Quelques point que j'ai oublié de préciser dans mon message hier. J'ai fait ça initialement parce que je trouvais laborieux de maintenir en cohérence certaines infos de la mission avec le briefing, et que souvent les incohérences sont détectées trop tard quand la mission est en cours :
- Tacan et fréquence radio des tankers, des awacs, porte-avions, etc
- Bullseye
- Description des missions
- Position (coordonnées géographiques) des cibles fixes

Ainsi ces informations comme présentées dans la page "Operations" ci-dessus sont lues et intégrées automatiquement par le programme. De même, le plan de fréquence est construit automatiquement sur la base du contenu de la mission.

Enfin, il est possible d'ajouter et de maintenir en cohérence un waypoint #1 "BULLS" pour tous les vols ouverts aux joueurs.

Jed, avec plaisir pour en parler un soir sur TS :)


Post by Skyknight

Posted: 2022-01-31T10:59:14.572000
Edited: 2022-01-31T10:59:29.978000

@flogas ça m'intéresse et j'aimerais l'installer dés que possible


Post by Corsair

Posted: 2022-01-31T16:16:21.682000

Bonjour,
Pour ce qui me concerne j'ai investit dans "combatflite" et c'est un logiciel au top !
Visuellement cela semble de meilleure qualité,


Post by Flogas

Posted: 2022-01-31T16:52:58.611000

Attention qu'on me comprenne bien :

  • Mon programme est loin d'être un produit fini (c'est une "alpha" si vous voulez). Il est fonctionnel dans les limites de mes objectifs initiaux mais pour l'instant reste très basique. Je fais ça pour le fun (au lieu de voler sur DCS :expressionless: )

  • Il n'a pas et n'aura jamais vocation à concurrencer un produit commercial comme CombatFlite. En revanche - même si j’espère que non - il est effectivement possible qu'il soit redondant avec ce dernier. J'ai aussi ouvert ce sujet afin d'éviter de perdre mon temps à faire "CombatFlite en moins bien".

  • Je n'en fait pas ici la publicité, je suis à la recherche de gens intéressés pour m'aider à le faire avancer dans une direction intéressante. Explorer quelles fonctionnalités étoffer, ajouter, et abandonner. Essayer d'en faire quelque chose d'utile.

Merci pour vos retours en tous cas.


Post by Zip

Posted: 2022-01-31T21:16:39.180000

Super intéressant !
J'ai bien envie d'essayer et/ou de participer !


Post by Maddog

Posted: 2022-01-31T21:39:15.675000

Merci pour ton boulot ! :+1:


Post by Magicbra

Posted: 2022-01-31T23:46:33.623000

C'est classe. De mon coté je bidouille un moteur avec API pour suivre les campagnes. Je te tiendrai au jus si on peut interagir d'une manière ou d'une autre.


Post by Flogas

Posted: 2022-02-01T15:25:55.388000

J'ai mis une version compilée en l'état dans le Drive Membres/735th :
https://drive.google.com/file/d/174T0sAEDwPH72vBJE39xb_UzgZ0am5sY/view?usp=sharing

Limitations connues :
- Coordonnées géographiques disponibles pour Caucase, Persian, Nevada, Syria, Marianas seulement
- Base d'aérodromes uniquement disponible pour Caucase, Marianas, Persian

Comme j'ai testé avec seulement quelques missions pour l'instant, il est probable que d'autres missions posent des problèmes. J'ai donc mis deux .miz qui fonctionnenent dans le dossier pour l'exemple.

Pour ceux qui sont partants, je suis dispo pour en discuter/faire une présentation, ce soir ou demain soir. Dites-moi sur Discord.


Post by Jed

Posted: 2022-02-02T10:45:56.164000

@flogas Je suis intéressé, mais pas dispo avant la semaine prochaine


Post by darklulu

Posted: 2022-02-02T23:18:14.335000

Très bon boulot bravo
Si besoin d'un testeur je veux bien aider.


Post by Zed

Posted: 2022-02-03T10:20:13.429000

J'ai téléchargé et tenté de lancer mais ça a pas voulu fonctionner. je reçois un tas d'erreurs même avec les missions d'exemple fournies.
"Failed to build point LUT. Coordinates will not be managed" avec les missions Mortegraine et Mortegraine_mod
"Unhandled Error. This method is only supported on dictionnary values." avec une mission perso


Post by Flogas

Posted: 2022-02-03T11:07:40.476000
Edited: 2022-02-03T11:11:37.890000

@zed Argh c'est pire que ce que je pensais :cold_sweat:

Pour l'erreur de LUT
Elle n'est pas sensée être bloquante. Le progamme devrait continuer à charger la mission ensuite, et afficher les données sauf la carte. Est-ce le cas ?
Cette erreur devrait venir de ce que la table de correspondance des coordonnées DCS/lat-long n'est pas disponible. Peux-tu regarder si tu as le contenu du sous dossier "Resources" dans ton install :
cb0a2fbe-a71d-4c9c-b471-d382f7e983bf-image.png

Tu dois aussi avoir un fichier de log dcsbriefop.log dans le dossier du programme, si tu le trouves et que tu peux me l'envoyer peut-être que ça pourra aider.

Pour l'erreur sur ta mission
Si tu peux me transmettre la mission en question je vais regarder.


Post by Zed

Posted: 2022-02-03T11:18:01.274000

@flogas A priori j'ai bien le fichier que tu me pointe dans ton capture. Effectivement je n'ai pas la carte sur une des mission et sur l'autre j'ai la carte mais les objets ont tous l'air d'être au même endroit en plein ocean atlantique à l'equateur en gros ^^
Je t'envoie ma mission via discord


Post by Magicbra

Posted: 2022-02-03T14:20:51.154000

@flogas petite question sur ta recup des coordonnées. Dans les .miz c'est en X,Y, du coup pour traduire la projection tu utilises quoi ? C'est une forme de projection mercator ?


Post by Flogas

Posted: 2022-02-03T15:24:39.657000
Edited: 2022-02-03T15:30:32.884000

@magicbra Je n'ai pas trouvé de moyen pour convertir Y/X en latitude/longitude.
A la place j'ai retenu une solution de LookUp Tables à partir de laquelle j'interpole les coordonnées. Idée récupérée ici : https://gist.github.com/BManx2000/b04c64cb80046b577ba2

Le lua utilisé pour générer les tables à partir de DCS est dans mon programme, les .txt sont les LUT en question :
a295778d-22d4-4269-806b-47772b9b0a85-image.png

La limitation de cette technique c'est que ça ne fonctionne que dans un sens. Pour pouvoir transformer du lat/long en Y/X il faudrait faire une autre table.


Post by Zip

Posted: 2022-02-03T18:24:02.804000

@flogas il y a une méthode dans le lua de DCS, je ne sais pas si ça te serait utile, mais elle permet de transformer les coordonnées justement : LOtoLL()


Post by Flogas

Posted: 2022-02-03T19:04:08.929000

@zip a dit dans Présentation à l'association de DcsBriefop, un programme de génération de briefings pour DCS :

@flogas il y a une méthode dans le lua de DCS, je ne sais pas si ça te serait utile, mais elle permet de transformer les coordonnées justement : LOtoLL()

I know :blush:
Effectivement c'est comme ça que je construit la table de correspondance Y/X => Lat/Long :
bf9703f7-86ce-498c-9c3a-503ddc14c594-image.png

Mais je ne sais pas faire mieux (genre, refaire ce que fait cette fonction directement dans mon programme).


Post by Zed

Posted: 2022-02-04T10:10:46.247000

Hello, Suite à tes correctifs j'ai pu tester ma mission.
Ne sachant pas où tu en est de ce qui est "en cours" et "fonctionnel" je vais mettre ici en vrac toute mes remarques :

1/ Interface
- Table Asset resizable ==> pas jojo je trouve
- Zoom sur map impossible si souris se trouve sur un objet

2/ Actions réalisables sur les assets
- le clic droit est pratique mais pas en première intention. la première fois on est un peu perdu on ne sait pas ce qu'on peut faire. ==> ajout d'un bouton d'accès au détails de l'asset sur chaque lignes ?
- Possibilité d'afficher un asset en Point+Full nav si besoin.

3/ Actions sur la carte
- Afficher par défaut sur la carte les unités "non-cachées" du .miz (évite d'avoir à rechercher dans la liste)
- Possibilité d'accéder au détail d'un Asset au clic sur l'objet de la map (évite d'avoir à rechercher encore dans la liste)
- Possibilité de dessiner à main levée vite fait (rajouter une flèche ou un trait simple)

4/ Fichiers Générés / Sauvegarde
- Carte coupée sur longue nav (exemple de chypre à Ramat-David : on ne voit pas plus loin que la côte)
- Liste des packages : c'est le nom de l'unité et pas son indicatif qui est affiché. peut-être rendre ça avec une option. (par exemple shell-1 s'affiche en Avion-X)
- Map overlay selectionné ne s'affiche pas sur les fichier générés. on est toujours sur la map bing dans les fichiers générés.
- Fonction de sauvegarde extra, les kneeboard et brief sont chargés dans le .miz c'est top ! Est-il possible cependant de faire un save du Briefop ? histoire de pouvoir revenir dessus sans avoir à tout réafficher etc... ?
- Un erreur au moment de la sauvegarde : “Unhandled Error. This method is only supported on dictionnary values.”

5/ Incompréhensions
- l'affichage Orbit semble ne rien faire (peut-être car mes orbite sont des hippodromes ?)
- Que fait la fonction "Test" dans le menu ?

voili voilou

En tout cas chapeau pour le boulot, cela permet de créer des briefings assez rapidement donc je pense qu'en terme de fonctionnalités "primaires" il y a tout ce qu'il faut. Un petit boulot sur la déco et un peu d'UX et ce sera un très très chouette soft !

Rating: +1/-0 (Total: 1)


Post by Flogas

Posted: 2022-02-04T17:56:34.691000

@zed Merci pour les retours !
Pour tout ce qui est UX tu as du voir que c'est niveau zéro pour l'instant :grimacing:
Idem pour tout ce qui est cartographie, tout est possible (pour ainsi dire) mais je n'ai pas trop poussé car ça dépend de l'interêt qu'on voudra donner à cet aspect du programme. Pas besoin de trop investir là dedans si au final on constate que c'est mieux de faire ses cartes avec un autre produit.

Test est un point d'entrée pour brancher des tests techniques - donc ça ne sert à rien.

Je vais regarder déjà les anomalies que tu pointes ici :
- Detection des orbites => je reproduis avec ta mission, visiblement les tasks orbites peuvent être décrites de plusieurs manières dans le .miz, je regarde
- Mauvais fonds de carte aux exports
- Erreur à la sauvegarde, je vois d'où ça vient


Post by Flogas

Posted: 2022-02-06T23:55:26.300000

Nouvelle version déposée sur le Drive pour prendre en compte une partie des retours de Zed :
- Prise en compte des orbites "Circle", des orbites "Race-Track" sur le dernier WP, et des tâches imbriquées.
143fa967-ca7d-4e02-823b-08be26a165b4-image.png
- Utilisation du bon map provider à la génération des images
- Gestion des callsigns numériques (russes) - sera à affiner mais ne provoque plus d'erreurs

Zed, je reviens sur certaines de tes remarques - et encore merci d'avoir regardé et pris le temps de les faire :
- Carte coupée sur longue nav (exemple de chypre à Ramat-David : on ne voit pas plus loin que la côte)
Tu peux définir la zone d'impression (plus ou moins, c'est pas très pratique) avec le bouton "Set display area". Sur cette base je mémorise le point central et le niveau de zoom. L'export se fait ensuite avec ces paramètres, en générant une image avec un ratio correct pour le kneeboard.
55e5dfc3-57f4-4dff-ad43-aae1406f61b2-image.png
e02bac5d-3e52-4f47-879b-0273706b225c-image.png

  • Liste des packages : c’est le nom de l’unité et pas son indicatif qui est affiché. peut-être rendre ça avec une option. (par exemple shell-1 s’affiche en Avion-X)
    C'est fait volontairement mais je ne sais pas si c'est la bonne décision effectivement.
    Je suis parti du prinicipe que les Callsign de DCS ne sont pas toujours ce qu'il y a de plus représentatif, et que le créateur de mission devrait plutôt nommer ses vols de manière adéquate en amont (comme tu as nommé certains vols SEAD-1 ou CAP-1).
    Maintenant, en écrivant cette réponse, je me dis que ça serait pas mal d'afficher les deux comme c'est fait dans la liste des Assets. A faire dans les pages du kneeboard et sur les cartes. Je vais essayer voir ce que ça donne.

Post by Zed

Posted: 2022-02-07T15:03:02.440000

@flogas
Au top, quelle rapidité :clap: :clap:
Pour le nom des packages effectivement ta remarque fait du sens. ma remarque était plutôt pour le fichier généré "Operations".

Pour le zoom, je ne doit pas bien m'en servir je viens de refaire un essai avec ta nouvelle version. pour la situationMap c'est ok mais les missionMap j'ai des nav tronquées.


Post by Flogas

Posted: 2022-05-07T20:38:26.355000

PI version plus récente dans le Drive:
https://drive.google.com/file/d/1UD5NcNbKuX0fkFUdtHWvE7gB01hC8mc5/view?usp=sharing


Post by pierreromi

Posted: 2022-05-07T22:26:20.841000

ça à l'air simpa et j'aimerais bien test mais le lien est private ;-)


Post by Flogas

Posted: 2022-05-08T08:51:28.548000

@pierreromi a dit dans Présentation à l'association de DcsBriefop, un programme de génération de briefings pour DCS :

ça à l'air simpa et j'aimerais bien test mais le lien est private ;-)

Ah oui c'est le Drive Membres VEAF c'est pour ça.


Post by Flogas

Posted: 2022-05-26T21:17:41.700000
Edited: 2022-05-26T21:25:51.878000

Nouvelle version : https://drive.google.com/file/d/1sU_SqxIxEom9oruQMd1p-0Zr8YJZijyg/view?usp=sharing

=> Intégration de grilles avec filtrages pour les listes d'assets et d'unités : bien meilleures performance, flexibilité.
=> Ajout de préférences générales enregistrées.
=> Correction des infos des aéroports de Syria.
=> Mode "batch" :
- Possibilité d’exécuter le programme sans UI pour uniquement regénérer le kneeboard d'une mission, afin de le resynchroniser suite à des modifications dans l'éditeur
- Génération d'un fichier cmd qui lance ce mode batch avec les bons paramètres pour la mission. Généré aussi à la sauvegarde dans DcsBriefop.
- L'idée, étant de pouvoir utiliser DcsBriefop avec les outils VEAF si souhaité, par exemple, en exécutant ce cmd à la fin du build VEAF

=> Ajustement des templates html pour le kneeboard
=> plein de petites corrections et ajouts par ci par là

Pierre Romi, maintenant que tu es membres tu dois pouvoir accéder au fichier.

Rating: +1/-0 (Total: 1)


Post by pierreromi

Posted: 2022-05-28T13:36:26.606000

@flogas en effet lol! :-)


Post by pierreromi

Posted: 2022-05-28T14:17:21.837000

@pierreromi
2022-05-28 14:17:34,147 ERROR Application_ThreadException:099 La valeur ne peut pas être null.
Nom du paramètre : key
2022-05-28 14:17:34,163 ERROR à System.Collections.Generic.Dictionary2.FindEntry(TKey key) à System.Collections.Generic.Dictionary2.TryGetValue(TKey key, TValue& value)
à DcsBriefop.Data.Weather..ctor(MizWeather mizWeather) dans D:\Projects\Developpement\DcsBriefop\Data\Weather.cs:ligne 51
à DcsBriefop.Data.BriefingMission.Initialize() dans D:\Projects\Developpement\DcsBriefop\Data\BriefingMission.cs:ligne 26
à DcsBriefop.Data.BriefingContainer.Initialize() dans D:\Projects\Developpement\DcsBriefop\Data\BriefingContainer.cs:ligne 29
à DcsBriefop.Data.BriefingContainer..ctor(Miz miz) dans D:\Projects\Developpement\DcsBriefop\Data\BriefingContainer.cs:ligne 22
à DcsBriefop.FrmMain.MizOpen(String sMizFilePath) dans D:\Projects\Developpement\DcsBriefop\FrmMain.cs:ligne 55
à DcsBriefop.FrmMain.MizOpen() dans D:\Projects\Developpement\DcsBriefop\FrmMain.cs:ligne 45
à DcsBriefop.FrmMain.b__20_0(Object _sender, EventArgs _e) dans D:\Projects\Developpement\DcsBriefop\FrmMain.cs:ligne 283
à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
à System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
à System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
à System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
à System.Windows.Forms.ToolStrip.WndProc(Message& m)
à System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Post by pierreromi

Posted: 2022-05-28T14:18:37.547000

@flogas j'ai essayé une 10 e de mission chaque fois une erreur!


Post by Flogas

Posted: 2022-05-28T17:10:08.151000
Edited: 2022-05-28T17:49:04.475000

@pierreromi Quand tu peux donne moi une de tes mission via Discord par ex, je vais voir ce qui se passe avec la météo.
Vu ensemble, dans les missions que tu as utilisé pour tester les paramètres météo (base et épaisseur des nuages, visibilité...) sont des valeurs avec décimales, et étrangement je n'avais jamais eu ça auparavant. Je corrige. Merci pour les tests.


Post by Kervinou

Posted: 2023-05-03T13:30:22.109000

9dc4b48c-1621-402a-85d4-f9ca864904e5-image.png


Post by The_Reaper

Posted: 2023-05-03T20:05:06.523000

Tu dois pouvoir trouver la dernière version ici : https://github.com/MacFlorent/DcsBriefop


Post by Kervinou

Posted: 2023-05-04T11:59:38.467000

Thanks :+1:


Post by Flogas

Posted: 2023-05-12T09:14:07.124000

Je ne viens pas assez sur le forum, désolé Kervinou, et merci Reaper de l'avoir pointé dans la bonne direction.