sujet : modification de TouchPal
date : début décembre en 2009
auteur : David G. Dahlstrom
=====================
LISEZMOI.TXT : traduction en français par Hellfrog du README.TXT inclus dans le package
=====================
J'ai apporté quelques améliorations à TouchPal. Merci à Gadroc et DickDastardly pour avoir développé cette plate-forme et pour l'avoir partagée. Ces modifications sont basées sur le code de la version r16 (0.4) de TouchPAL. Comme les modifications du code sont importantes, j'ai inclus le code source avec l'executable. TouchBuddy, attention!
Installation
============
Tout d'abord il faut télécharger la version "officielle" 0.4 et suivre la procédure d'installation normale.
[NDT :
- installer Microsoft NetFramework 3.5 sur votre système d'exploitation si cela n'a pas été fait sinon touchPal ne fonctionnera pas.
- télécharger touchPal à partir d'ici : Site sur http://code.google.com/p/touchpal/
ou : http://forums.eagle.ru/showpost.php?p=7 ... ostcount=1
- copiez les fichiers dans votre dossier Documents dans votre compte d'utilisateur
dossier : Utilisateurs\<votre compte>\Mes Documents
]
- ensuite remplacez le fichier TouchPal.exe par celui fourni dans ce post.
- Vous pouvez enfin si vous le souhaitez suivre les intructions ci-dessous pour installer de nouveaux profils et graphiques.
- En dehors des suppléments apportés décrits ci-dessous, cette version ce comporte exactement comme l'original.
- Des options nouvelles sont accessibles par une option sur la ligne de commande.
[NDT :
Pour cela créez un raccourci vers touchpal.exe : ouvrez le dossier où vous avez copié touchpal, sélectionnez touchpal.exe, faites un clic droit et maintenant le bouton droit enfoncé, puis faites glisser la souris un peu plus bas dans le dossier, en relâchant le bouton droit un menu va s'ouvrir, choisissez "créer un raccourci". Ensuite sélectionnez le raccourci, ouvrez ses propriétés par un clic droit. Dans le premier onglet, la première boite pointe vers le fichier touchpal.exe ; à la fin, ajoutez " -option" sans les guillemets et avec option = l'option que vous souhaitez activer : cf ci dessous. Enregistrez les modifications. Changez le nom du raccourci en fonction de l'option que vous avez choisie. En cliquant sur ce raccourci vous lancez touchpal avec cette option.]
Modification #1: Support de l'envoi des touches clavier en reseau
==================================================================
Bien que TouchPal (TP) soit conçu pour s'exécuter de manière optimale sur le même PC que le jeu, TP peut aussi s'exécuter sur une machine distante puisqu'il communique à travers une interface reseau basée sur le protocole UDP (via Export.lua). C'est une grande chose ; mais il y a une limitation, DCS BlackShark n'apporte pas (pour l'instant) un support des protocoles reseau pour chacun des contrôles du jeu [NDT :(tous les interrupteurs du cockpit). Ainsi, bien que la plupart des commandes soient activées directement par la programmation], certaines commandes doivent être passées à BS par un envoi de touches clavier. TP doit donc dans ce cas émuler une frappe de touche. Ce qui fonctionne très bien en mode local sur la même machine que BS, mais ne marche pas lorsque TP s'exécute sur un PC distant.
La première modification apportée au code de TP est de surmonter cette limitation. Ainsi l'envoi de touches depuis TP sur un PC distant, à BS sur le PC principal, fonctionne correctement.
Pour utiliser cette option :
1. Vérifiez que dans le fichier BS\Config\Export\export.lua
host="127.0.0.1"
est modifiée avec l'adresse reseau effective de votre PC distant, sur lesquels vous exécutez TP.
1. bis et que dans BS\Config\Export\Config.lua
EnableExportScript = true
2. Pour exécuter TP sur le PC distant, il vous suffit d'y copier TouchPal.exe, aucun profil n'est nécessaire.
3. Créez un raccourci vers cet exécutable sur votre PC
principal avec l'option de ligne de commande "-service" :
TouchPal.exe -service
4. Installez ensuite TP normalement sur votre PC
distant, ainsi que le profil que vous voulez utiliser dans Users\...\My Documents
5. Créez un raccourci vers touchpal.exe sur le PC
distant avec la ligne de commande : "-service=168.1.0.201" où 168.1.0.201 est l'adresse IP de votre PC distant :
Touchpal.exe -service=168.1.0.201
6. Lancez TP sur le PC principal en utilisant le raccourci créé en 3. Il ne va rien se passer à part l'apparition d'une nouvelle icone dans la zone de notification de la barre de menu de windows. TP s'exécute en mode service sur le PC principal. TP ecoute le port réseau et les envois de touches du PC distant. Attention aux alertes de sécurité : autorisez les communications pour TP à travers le pare-feu.
7. Enfin lancez TP sur le PC client avec le raccourci créé en 5.
TP s'exécute en mode classique sur le PC distant et communique directement en reseau UDP avec BS. Sauf que à chaque fois que TP du PC client envoi une séquence de touche, TP service sur le PC serveur intercepte cet envoi et le réexécute sur le PC serveur vers BS afin que cela fonctionne normalement.
Modification #2: Profil 800x600
===============================
Comme j'exécute Tp sur un PC distant avec un ecran tactile en 800x600, j'ai réalisé la modification numéro 1 ci deussus, mais j'aii aussi du reconstruire un profil sans les ecrans Shkval et ABRIS pour mon ecran 800x600. Je suis parti d'un profil existant pour Touchbuddy, trouvé sur le site de Touchbuddy.
Pour l'installer suivez les instructions ci-dessous.
Il est dorénavant facile de modifier l'emplacement des boutons grâce à la modification numéro 4 (cf plus loin)
Modification #3: Masquer le curseur
===================================
Cela pêrmet de masquer le pointeur souris sur la fenetre touchPal pendant son exécution.
Lancez TP avec le paramètre "-nocursor" sur la ligne de commande pour activer cette fonction
Modification #4: Editer les propriétés des bouttons
===================================================
Cette option permet de changer les propriétés des boutons et témoins lumineux directement dans l'interface de TP.
Lancez TP avec l'option "-design" sur la ligne de commande.
Vous pouvez laisser cette option active en permanence car elle n'interfère pas avec le reste et ne diminue pas les performances.
Pour l'utiliser, faire un clic droit sur un témoin lumineux ou un bouton dans l'interface. Un menu contextuel va s'ouvrir. Une boite de dialogue liste tous les controles disponibles qui ont des fichiers graphiques de la même taille que le bouton sélectionné. Pour changer de bouton, sélectionner le bouton alternatif voulu dans la liste, et cliquer le bouton de dialogue (Accept ou Cancel). Un bouton "Save" va apparaître dans le coin inférieur gauche de l'écran TP. Cliquer une fois pour sauvegarder vos modifications dans le fichier Documents\touchpal.xml . Il est évidemment recommandé de faire une sauvegarde de ce fichier avant de tester cette fonction. Tous les commentaires sont aussi retirés du fichier lors de la sauvegarde.
Compléments...
1. La plupart des controles ont un fichier graphique qui leur est assigné. Quand c'est le cas, vous verrez des icones de ces fichiers dans la boite de dialogue. Certains controles, par contre, ne sont que des espaces / surfaces sur un fond (comme le bouton ABRIS). Ceux-là ne seront pas affichés avec une icone et vous ne pourrez pas changer leur fichier graphique, bien que leur fonction puisse être modifiée.
2. Par ergonomie, les controles qui sont définis mais pas encore affectés à un panel s'affichent dans la liste en italique clair. Vous pouvez les sélectionner comme tout autre controle.
3. Pendant que vous éditez de votre profil, il est possible que des boutons soient dupliqués. Pour trouver les doublons, faites simplement un clic gauche sur le bouton voulu et observez. Tous les doublons seront aussi en affichage "enfoncé"
NB : cela ne fonctionne toutefois qu'avec les boutons pour lesquels un graphique différent s'affiche lorsqu'ils sont pressés.
4. Comprenez bien que cette option n'est qu'un outil de MODIFICATION de profil et non PAS un outil de CREATION de profil. Cela suppose que vous utilisez un profil (Documents\touchpal.xml) déjà peuplé et fonctionnel et que vous souhaitiez le modifier.
L'edition manuelle du fichier touchpal.xml reste indispensable pour créer de nouveaux boutons, graphiques, panels etc... [NDT : tant qu'aucun outil spécifique n'aura été développé... merci de vous manifester si vous êtes motivés]
Modifications diverses
======================
1. bug corrigé [NDT : export.lua] qui empêchait le jeu de se connecter à un client distant
2. ajout d'une icone pour l'application TP
3. double lancement conflictuel de TP sur la même machine désormais impossible
Code Source
===========
Le code source dans ce post remplace le code source de mon post précédent. Je laisse Gadroc étudier s'il veut inclure ou pas cette modification dans le projet officiel : Site sur
http://code.google.com/p/touchpal/
Profils modifiés
================
Les profils joints sont modifiés pour affichage en 1024x768 ou 800x600.
[NDT : cette procédure d'installation écrase des fichiers de l'installation du profil de TouchPAL de Gadroc ; si vous avez conservé le zip initial vous pourrez les restaurer, sinon faites une sauvegarde de ces fichiers avant. De même si vous utilisez des fichiers de Gadroc pour votre propre profil, l'installation ci-dessous en écrase certains]
[NDT 2 :
organisation des fichiers de TP et information pour contourner les problèmes potentiels évoqués ci-dessus :
dans les dossier Utilisateurs\...\Mes Documents\touchpal :
fichiers :
CockpitXML.xsd = fichier de TP
touchpal.xml = le profil touchpal actif
dossier :
\blackshark = le dossier des fichiers graphiques *.png du profil de gadroc livré avec touchpal 0.4
dans touchpal.xml on fait référence au dossier où se trouvent les images avec le chemin relatif en partant du dossier où est situé touchpal.xml :
<FontFile>blackshark\digital-7 (mono).ttf</FontFile>
<Image>blackshark\datalink_vehicle_on.png</Image>
.
par conséquent si vous voulez avoir des graphiques dans plusieurs dossiers, il suffit de modifier les lignes ad hoc dans touchpal.xml
]
Procédure d'installation des profils joints :
1. copiez tous les fichiers *.png du dossier "blackshark" de l'archive jointe dans le dossier Users\...\My documents\touchpal\blackshark en écrasant les anciens.
2. Dans le dossier "profils" de l'archive jointe choisissez l'un des deux fichiers : soit touchpal.xml.1024x768 soit touchpal.xml.800x600 et copiez le dans Users\...\My Documents\touchpal\ puis effacez touchpal.xml et renommez le fichier copié en touchpal.xml
3. Vérifiez les coordonnées X et Y dans la section <Layout> de touchpal.xml : elles correspondent au coin supérieur gauche de la fenetre TP sur votre écran : modifiez les si nécessaire (en principe X=0 et Y=0 sont corrects pour un ecran principal d'une machine cliente).
RESUME des OPTIONS de la ligne de commmande
===========================================
-design
Active l'édition des boutons
-nocursor
masque le curseur souris
-service
lance TP en mode service sur le PC hôte de BS
-service=192.168.1.201 (où l'adresse IP = adresse de la machine serveur BS hôte)
active la transmission de l'envoi de touches clavier au service TP sur l'hôte
[NDT : Ne PAS utiliser cette option de ligne de commande sur le serveur mais bien sur le PC distant !]
-serviceport=9088
A ne changer qu'en cas de besoin. C'est le port de communication par defaut de TP : 9088.
Commentaires
============
* TouchPal est écrit en C# et nécessite le
.NET 3.5 Framework de Microsoft pour fonctionner. Sinon les besoins hardware sont très modestes. Mon PC client est un très vieux Pentium 233MHz 128MB RAM avec Windows XP et l'écran tactile en 800x600, et cela reste très réactif.
* Problèmes réseau :
connexion : si un client distant ne se connecte pas ou affiche un message d'attente, vérifiez que vous pouvez joindre l'hôte depuis le client (ping) et que l'adresse IP spécifiée sur la ligne de commande de lancement de TP du client est correcte. Vérifez que votre pare feu autorise TP à communiquer sur le reseau
[NDT :(ouvrez le port 9088)]. Si la désactivation du pare feu sur l'hôte et sur le client ne change rien, le problème ne vient pas du pare feu.
Il est même possible, avec quelques restrictions de lancer simultanément une copie locale et une copie cliente de TP. La limitation est due au fait que le Export.lua de BS ne peut communiquer qu'à travers un seul port à la fois, aussi bien que chaque instance de TP puisse executer des actions, une seule à la fois peut communiquer directemnt avec le jeu. Par contre chaque instance peut envoyer des touches : la cliente via le service sur l'hote (il faut aussi en plus lancer TP -service sur l'hote), la locale de manière native.
En théorie il serait possible de modifier Export.lua pour supporter un second port ; donc en utilisant l'option -serviceport, il est possible d'avoir deux instances simultanées sur deux ecrans différents, qui fonctionneraient complètement.
[NDT : si quelqu'un y arrive, qu'il le fasse savoir ! Pour avoir plus d'infos sur les connexions et la syntaxe dans export.lua, rechercher les discussions sur le sujet en salle support technique dans la section Hélicos/BlackShark sur les forums C6, en français, ou en anglais sur les forums DCS / BS / game controlers / cockpits]
* Il est toujours possible de faire fonctionner TP localement sur l'hote avec cette version modifiée.
* En cas de problèmes, editez le fichier touchpal.log il devrait contenir des informations utiles sur la cause du plantage.
* Sur l'hôte, quand TP s'exécute en mode service, un clic droit sur l'icone de TP permet de terminer TP ou d'afficher des infos sur l'état de la connexion client.
* Bien que non indispensable, il est toujours préférable de démarrer le service sur l'hôte avant de lancer le client. Un client lancé avec l'option -server=x.x.x.x sera bloqué jusqu'à ce trouve le service demandé à l'adresse demandée.
* Je n'ai pu tester ce TP modifié qu'avec un seul client à la fois, et n'ai pas spécifiquement conçu le support pour plus de clients . Si vous testez cela c'est à vos risques et périls.
* Le service envoi de touches clavier communique par défaut sur le port 9088. Vous pouvez utiliser l'option de ligne de commande -serviceport pour modifier et le service et le client. Ce n'est normalement pas utile sauf si vous avez un conflit de ports.
* Pour mettre fin à l'exécution du service, clic droit sur l'icone de TP service, et choisir Exit.