Le forum français des radios OpenTX ou FrOS
Le forum français des radios OpenTX ou FrOS
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
SAMSUNG Galaxy A14 5G Noir 64 Go à 98,49€
Voir le deal
96.99 €

tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

2 participants

Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par philandroid Ven 4 Oct 2024 - 21:19

Depuis quelques versions, nous avons la possibilité de modifier par un script LUA le nombre et la taille des widgets de l’écran.
Ceci grâce à la fonction system.registerLayout

Frsky fournit un exemple dans le GitHub ici :
https://github.com/FrSkyRC/ETHOS-Feedback-Community/tree/1.5/lua/examples/layout
Le nombre de widgets est limité à 12, ce qui est pas mal déjà vu la taille de l’écran.

Personnellement, j’étais en train d’écrire des scripts LUA pour regrouper dans un widget 2 chronos, ou bien 2 jauges, dans le même widget pour gagner de la place.
Ce développement m’a permis de découvrir les scripts LUA mais perd de son intérêt maintenant que je peux augmenter le nombre de widgets.
Je me suis donc intéressé à cette fonction system.registerLayout et j’en fournis ici un exemple un peu plus développé que celui fourni par FRSKY.
J’ai un peu galéré au début et même si j’utilise le simulateur pour tester les scripts « en live », c’était un peu fastidieux et pas très pratique de voir au pixel prêt.

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Exempl11

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Exempl12

Je me suis donc amusé à faire une feuille Excell avec des macros VBA pour aider au « dessin » de ces widgets, et d’en définir les tailles et même de générer le corps du script.
Je mets tout ça ici si ça peut intéresser quelqu’un d’autre.

Il faut saisir les coordonnées et les tailles des widgets et en cliquant sur des boutons, ceux-ci apparaissent pour en voir le rendu.


tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Exempl14


On peut ainsi dessiner 12 widgets, les supprimer un par un pour les déplacer avec d'autres valeurs.
On peut faire afficher, ou pas, un fond d'écran venant de la radio X20S.
On peut également dessiner la trame du plein écran 800 * 480

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Exempl13

Ou bien la partie centrale de l'écran (pour garder la ligne de titre en haut et la ligne du bas avec les icones) en 800 * 340

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Captue10

Ou bien la partie étendue qui vient empiéter sur la ligne sous le titre en 800 * 372

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Captue10

la partie droite contient des aides à la compréhension des origines et déplacements.
Ne serait ce que pour s'habituer à des coordonnées qui commencent à 0 et non pas 1.
C'est à dire que un widget de 60 par 100 positionné en 0,0 va de 0 à 59 et de 0 à 99 et non pas de 1 à 60 et de 1 à 100)

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Exempl15

Voici le rendu final qui a généré l'exemple ci-dessus:
tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Exempl16

Voici les sources.
Le zip contient le dossier LUA prêt à être installer avec cet exemple.
Le zip contient également les screens d'exemple en jpg.
Le ZIP contient la feuille excell avec macro que vous pouvez valider sans crainte.

N'hésitez pas à me dire ce qui n'irait pas ou ce qui pourrait être amélioré.
Bon vol.
Fichiers joints
tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Attachment
layout12phil.zip Vous n'avez pas la permission de télécharger les fichiers joints.(1.5 Mo) Téléchargé 14 fois
philandroid
philandroid

Masculin Messages : 250
Date d'inscription : 14/06/2021
Age : 62
Localisation : châteauroux

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par diiity Sam 5 Oct 2024 - 11:18

Bonjour,
Super ce que tu as fait, tès complet, très clair.
Est ce compatible avec openTX, j'ai la dernière version 2315 sur un Horus x10 et un Radiomaster TX 16S?
diiity
diiity

Masculin Messages : 1964
Date d'inscription : 21/04/2015
Age : 71
Localisation : beauvais

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par philandroid Sam 5 Oct 2024 - 11:24

Merci. Pour openTx, je ne connais pas du tout. Désolé.
philandroid
philandroid

Masculin Messages : 250
Date d'inscription : 14/06/2021
Age : 62
Localisation : châteauroux

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par diiity Sam 5 Oct 2024 - 11:29

comment utilises tu ce lua, dans quel dossier le places tu?
diiity
diiity

Masculin Messages : 1964
Date d'inscription : 21/04/2015
Age : 71
Localisation : beauvais

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par philandroid Sam 5 Oct 2024 - 11:36

Comme les autres lua.
Il faut créer un dossier (peu importe le nom mais il faut mieux mettre un nom en rapport avec le script. Comme je l'ai fait ici ) dans le dossier scripts.
Et mettre dans ce dossier le fichier main.lua
(Ne pas encombrer la radio avec les jpg et la feuille excell)
Ensuite sur la radio, dans la "configuration des écrans" puis "changer la disposition", cette nouvelle frame apparaitra en dernier dans celles proposées.
Lorsque le dossier ne contient que un script, il est possible de le mettre directementdans ledossier scripts mais dans ce cas avec un autre nom que "main.lua". Mais je préfere ranger les choses tuto: Redéfinition des tailles des widgets écran (system.registerLayout) 2258904616
philandroid
philandroid

Masculin Messages : 250
Date d'inscription : 14/06/2021
Age : 62
Localisation : châteauroux

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par diiity Sam 5 Oct 2024 - 12:43

Je t'ai demandé cela car avec openTX c'est un peu différent.
Merci
diiity
diiity

Masculin Messages : 1964
Date d'inscription : 21/04/2015
Age : 71
Localisation : beauvais

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par philandroid Sam 5 Oct 2024 - 23:43

Voici le script pour 4 lignes et 3 colonnes.

Remarque: si vous jouez avec ces frames, testez bien que les widgets que vous allez mettre dedans ont assez de place;)

-- Lua Layout example

local function init()
system.registerLayout({key="3L4C", widgets={
{x=0,y=90,w=261,h=79} ,
{x=0,y=176,w=262,h=79} ,
{x=0,y=262,w=261,h=79} ,
{x=0,y=348,w=261,h=79} ,
{x=268,y=90,w=262,h=79} ,
{x=268,y=176,w=261,h=79} ,
{x=268,y=262,w=261,h=79} ,
{x=268,y=348,w=262,h=79} ,
{x=537,y=90,w=262,h=79} ,
{x=537,y=176,w=262,h=79} ,
{x=537,y=262,w=262,h=79} ,
{x=537,y=348,w=262,h=79}

}})
end

return {init=init}

philandroid
philandroid

Masculin Messages : 250
Date d'inscription : 14/06/2021
Age : 62
Localisation : châteauroux

Revenir en haut Aller en bas

tuto: Redéfinition des tailles des widgets écran (system.registerLayout) Empty Re: tuto: Redéfinition des tailles des widgets écran (system.registerLayout)

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum