[Presque RESOLU] Problème avec un script - la radio freeze
3 participants
Page 1 sur 1
[Presque RESOLU] Problème avec un script - la radio freeze
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 : https://github.com/opentx/opentx/issues/1643#issuecomment-53201996
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]
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 : https://github.com/opentx/opentx/issues/1643#issuecomment-53201996
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
Dernière édition par Sacre100 le Lun 25 Aoû 2014 - 10:34, édité 2 fois
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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 ?
Je peux savoir où tu le places sur la carte SD pour le reconnaitre et comment tu fais pour le tester sous Companion/OpenTx ?
Invité- Invité
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [Presque RESOLU] Problème avec un script - la radio freeze
D'accord, mais il faudrait quand même décrire un peu à quoi il sert ce script
Invité- Invité
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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 : http://www.jivaro-models.org/predim_rc/page_predim_rc.htm
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.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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)
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [Presque RESOLU] Problème avec un script - la radio freeze
Bonsoir Sacre100
Est tu sur de la valeur de retour ici
Je penserais a return 0, je n'ai pas essayé
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é
blonblon- Messages : 214
Date d'inscription : 25/03/2014
Age : 73
Localisation : pres d'Uzes (Gard)
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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.
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.
Invité- Invité
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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.
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.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: [Presque RESOLU] Problème avec un script - la radio freeze
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
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
Sujets similaires
» [RESOLU] Portee radio avec mon recepteur
» [Résolu] Problème avec Vario du G-RX8 sur X9E
» Problème avec récèpteur G-RX8 ( Résolu )
» [Resolu] Problème avec ce protocole !!!
» Problème de place sur la carte SD avec taranis plus [Résolu]
» [Résolu] Problème avec Vario du G-RX8 sur X9E
» Problème avec récèpteur G-RX8 ( Résolu )
» [Resolu] Problème avec ce protocole !!!
» Problème de place sur la carte SD avec taranis plus [Résolu]
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum