Le forum français des radios FrSKY

[Presque RESOLU] Problème avec un script - la radio freeze

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Presque RESOLU] Problème avec un script - la radio freeze

Message par Sacre100 le Sam 23 Aoû 2014 - 20:44

J'ai un problème avec un script que je suis en train de mettre au point.

Dans Companion, il fonctionne sans problème.

Sur la Taranis, quand j'appuie sur la touche EXIT (événement EVT_EXIT_BREAK), au lieu de mettre fin au script, la radio freeze et je dois enlever la batterie pour pouvoir l'éteindre. Ensuite, quand je la rallume, l'accès à la carte SIM ne fonctionne pas mais dans ce cas, il suffit d^éteindre et rallumer la radio pour résoudre ce problème.

Avez-vous déjà rencontré ce genre de problème ?

C'est le seul problème que j'ai avec ce script, sinon tout le reste fonctionne comme prévu à mon plus grand plaisir.

[EDIT 25.08.14 0:30]

Le problème de freeze est résolu. Cela venait de l'emploi de l'opérateur ".." qui permet de concaténer deux chaines de caractères. J'ai modifié le script pour éviter de faire cette opération et ça la radio ne freeze plus.

Il reste un problème qui fait que lorsque l'on quitte le script et qu'on le relance, on obtient parfois un message "NOT ENOUGH MEMORY". Dans ce cas, il faut presser sur la touche EXIT et relancer le script.

Le problème est en main de l'équipe de développement d'OpenTx : [Vous devez être inscrit et connecté pour voir ce lien]

J'ai mis à jour le fichier attaché avec la nouvelle version et si le coeur vous en dit, vous pouvez tester aussi dans la radio.
[/EDIT]

[EDIT 25.08.14 10:30]

Nouvelle version du script qui ne semble plus produire de message "Not enough memory" mais ça reste à vérifier à l'usage.

Pour cela, j'ai sorti toutes les variables locales des fonctions pour les remonter au niveau du script ainsi, LUA n'a plus à faire des allocations mémoire pour ces variables à chaque appel des fonctions. Il est possible de le faire uniquement si les fonctions ne sont pas appelées récursivement soit directement, soit indirectement.
[/EDIT]
Fichiers joints
predimrc.zip Vous n'avez pas la permission de télécharger les fichiers joints.(6 Ko) Téléchargé 7 fois


Dernière édition par Sacre100 le Lun 25 Aoû 2014 - 10:34, édité 2 fois
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Murphy le Dim 24 Aoû 2014 - 1:05

Bonjour,

Je peux savoir où tu le places sur la carte SD pour le reconnaitre et comment tu fais pour le tester sous Companion/OpenTx ?

_________________
Encore là...
X9D+ EU-LBT 2.1.9,
Horus EU-LBT 2.2.0

Forum du club ACPM
avatar
Murphy
Modérateur

Messages : 6123
Date d'inscription : 27/08/2013
Age : 72
Localisation : Montbéliard, près de la Suisse

http://bethoncourt-indoor.forumgratuit.org/

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Sacre100 le Dim 24 Aoû 2014 - 9:05

Murphy a écrit:Bonjour,

Je peux savoir où tu le places sur la carte SD pour le reconnaitre et comment tu fais pour le tester sous Companion/OpenTx ?

Volontiers, dans le fichier joint, tu trouveras comment faire.
Fichiers joints
PredimRC_Slim - Installation.doc Vous n'avez pas la permission de télécharger les fichiers joints.(558 Ko) Téléchargé 27 fois
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Murphy le Dim 24 Aoû 2014 - 12:25

D'accord, mais il faudrait quand même décrire un peu à quoi il sert ce script

_________________
Encore là...
X9D+ EU-LBT 2.1.9,
Horus EU-LBT 2.2.0

Forum du club ACPM
avatar
Murphy
Modérateur

Messages : 6123
Date d'inscription : 27/08/2013
Age : 72
Localisation : Montbéliard, près de la Suisse

http://bethoncourt-indoor.forumgratuit.org/

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Sacre100 le Dim 24 Aoû 2014 - 13:40

Murphy a écrit:D'accord, mais il faudrait quand même décrire un peu à quoi il sert ce script

Bien volontiers. C'est un programme qui permet de calculer le centre de gravité d'un planeur ou d'un avion en fonction de sa géométrie. Le centrage d'une machine est très important pour avoir quelque chose d'agréable à piloter. C'est aussi important pour la sécurité.

C'est une version simplifié du PredimRC original qui a été développé par Franck Aguerre et qui en fait beaucoup plus : [Vous devez être inscrit et connecté pour voir ce lien]

L'utilisation est la suivante :

  • Dans la première page, tu saisis les dimensions de ton aile (jusqu'à 5 trapèzes)
  • Dans la deuxième page, tu saisis les dimensions de ton stabilisateur (jusqu'à 5 trapèzes)
  • Dans la troisième page, tu saisis :
    - la position de ton stabilisateur (distance entre l'aile et le stab, et la hauteur du stab au dessus ou au dessous de l'aile)
    - la longueur du fuselage, la longueur du nez et le genre de fuselage (pour fine, normale, épaisse ou fuselage de jet)
  • Dans la quatrième page, tu indiques la marge statique (3% est la valeur qui va bien) et tu obtiens la distance en mm entre le bord d'attaque et le centre de gravité.
  • La cinquième page te donne le résultat de plusieurs calculs à titre d'information (envergure, surface, allongement, foyer, etc...)

Cette version est capable de calculer le centre de gravité pour des machines habituelles (stab derrière les ailes), mais aussi pour des ailes volantes (pas de stab), des canards (stab devant l'aile) ou des machines style "Pou du Ciel" (pas de stab mais deux ailes de taille similaire assez proche l'une de l'autre). Par contre, elle n'est pas capable de calculer le CG d'un biplan comme peut le faire la version originale.

Quand le problème de freeze sera résolu et que des tests poussés auront été fait sur les calculs, je publierai la chose avec la documentation nécessaire.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Murphy le Dim 24 Aoû 2014 - 13:50

J'attend avec impatiente

_________________
Encore là...
X9D+ EU-LBT 2.1.9,
Horus EU-LBT 2.2.0

Forum du club ACPM
avatar
Murphy
Modérateur

Messages : 6123
Date d'inscription : 27/08/2013
Age : 72
Localisation : Montbéliard, près de la Suisse

http://bethoncourt-indoor.forumgratuit.org/

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Sacre100 le Dim 24 Aoû 2014 - 14:14

Murphy a écrit:J'attend avec impatiente

Si tu as envie de faire déjà des tests (toute aide pour débugger la chose est la bienvenue), ça marche très bien dans Companion et sur la radio, pour éviter le problème, il suffit juste d'éteindre la radio pour arrêter le script au lieu d'appuyer sur le bouton EXIT (c'est un pis-allé pas très propre pour une diffusion du script mais pour des tests, ça peut aller)
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par blonblon le Dim 24 Aoû 2014 - 22:59

Bonsoir Sacre100
Est tu sur de la valeur de retour ici

Code:

local function run(event)
  if event == nil then
    error("Cannot be run as a model script!")
  end
 
  if event == EVT_EXIT_BREAK then return 2 end

Je penserais a return 0, je n'ai pas essayé
avatar
blonblon

Messages : 220
Date d'inscription : 25/03/2014
Age : 66
Localisation : pres d'Uzes (Gard)

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Sacre100 le Lun 25 Aoû 2014 - 0:48

blonblon a écrit:Bonsoir Sacre100
Est tu sur de la valeur de retour ici

Code:

local function run(event)
  if event == nil then
    error("Cannot be run as a model script!")
  end
  
  if event == EVT_EXIT_BREAK then return 2 end

Je penserais a return 0, je n'ai pas essayé

Le "return 2" est correct.

"Return 0" n'arrête pas le script par contre "return n" ou n est différent de 0 arrête bien le script.

Le problème de freeze est résolu mais il reste un problème lorsque l'on relance le script après l'avoir arrêté. J'ai modifié le premier message en conséquence avec une nouvelle version du script que vous pouvez tester sur la radio. Si vous obtenez le message "NOT ENOUGH MEMORY" en relançant le script, ce n'est pas grâve, il suffit de presser sur la touche EXIT et le relancer une nouvelle fois.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par bertrand35 le Lun 25 Aoû 2014 - 9:44

Je vais regarder ce problème avant de sortir la 2.0.10
Au pire un NOT ENOUGH MEMORY est acceptable, mais pas un freeze. J'ai l'impression qu'on dépasse la zone de mémoire autorisée pour les allocations.

bertrand35

Messages : 8
Date d'inscription : 18/09/2013

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Sacre100 le Lun 25 Aoû 2014 - 10:44

De mon côté, dans mon script, j'ai résolu le problème de freeze en supprimant tout usage de l'opérateur ".." qui fait la concaténation de chaine de caractère, opération qui est probablement gourmande en allocation mémoire.

J'ai réussi aussi à ne plus obtenir le message "Not enough memory" mais ça reste à vérifier à l'usage.

Pour cela, j'ai sorti toutes les variables locales des fonctions pour les remonter au niveau du script ainsi, LUA n'a plus à faire des allocations mémoire pour ces variables à chaque appel des fonctions. Il est possible de le faire uniquement si les fonctions ne sont pas appelées récursivement soit directement, soit indirectement.

Ces "bonnes" pratiques (éviter l'usage de l'opérateur de concaténation ".." et éviter les variables locales dans les fonctions) permettront aux développeurs de script LUA d'éviter les "Not enough memory".

Ca vaudra peut-être la peine de documenter ces bonnes pratiques dans la documentation LUA d'OpenTx.

Pour ce qui est du freeze, merci de prendre ce point pour la 2.0.10, c'est effectivement à résoudre dans OpenTx.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: [Presque RESOLU] Problème avec un script - la radio freeze

Message par Ao2 le Mar 18 Oct 2016 - 12:12

Bonjour à tous,
me voici à nouveau dépanné par ce sujet. merci Sacre100.
aujourd'hui avec Opentx 2.1 j'ai PredimRC sans problème; par contre j'ai récupéré un script de télémétrie "DANDYS" qui pose ce problème.

J'ai sorti les variables locales des fonctions et réduit un peu le code . ...
et le resultat est bon.
Deux questions toutefois:
- quelle est la limite de la Taranis ? il semble que c'est le total des tailles des scripts des 4 pages ?
- je n'ai pas eu de succès avec LUAedit et Decoda ! quel est le débugger gratuit et léger à installer ?
Bons vols

Ao2

Messages : 28
Date d'inscription : 15/12/2013
Localisation : 77680 Roissy en brie

http://mcs77370.free.fr

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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