π
<-
Chat plein-écran
[^]

module lua natif giac

C, C++, ASM...

module lua natif giac

Message non lude parisse » 11 Juin 2014, 12:59

Je viens de creer un module lua natif pour giac, avec une fonction luagiac:caseval qui prend en argument une chaine et renvoie une chaine, mais je rencontre quelques problemes.
Le lien:
http://www-fourier.ujf-grenoble.fr/~parisse/calc/luagiac.zip
(pour le source http://www-fourier.ujf-grenoble.fr/~parisse/calc/giac.tgz).
Ce qui marche:
1/ luagiac.luax.tns et luachkgiac.tns dans l'emulateur avec OS 3.1, on obtient bien la factorisation de x^4-1.
Ce qui ne marche pas:
1/ la meme chose dans l'emulateur avec OS 3.6.
2/ rungiacdemo.lua/tns, inspire des tutoriels nspire lua, ne marche pas dans l'OS 3.1 (probablement normal, le lua de l'OS n'a pas les fonctionnalites requires), ni dans l'OS 3.6 (pour les memes raisons probables que luachkgiac.tns). C'est dommage parce que ca m'aurait fourni une interface plus sympa que la console sans me fatiguer cote lua.
Quelqu'un aurait-il une idee pourquoi 1/ marche avec OS 3.1 et pas avec OS 3.6?
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: module lua natif giac

Message non lude Adriweb » 11 Juin 2014, 14:38

parisse a écrit:Je viens de creer un module lua natif pour giac, avec une fonction luagiac:caseval qui prend en argument une chaine et renvoie une chaine

Ah ben, bien joué, je n'avais pas encore eu assez de temps pour regarder ça moi-même comme je l'avais dit :P

parisse a écrit:1/ luagiac.luax.tns et luachkgiac.tns dans l'emulateur avec OS 3.1, on obtient bien la factorisation de x^4-1.

Effectivement :) (j'ai juste changé le drawString, histoire de bien voir le texte : gc:drawString("factor(x^4-1) = " .. luagiac.caseval("factor(x^4-1)"), 5, 5, "top")) :
Image

Cependant, la calculatrice reboote quand je veux fermer le document, je ne sais plus si c'est un problème connu ou non... bref, à creuser. (même sur le .tns de demo des luaext)

parisse a écrit:Ce qui ne marche pas:
1/ la meme chose dans l'emulateur avec OS 3.6.

Oui, module non trouvé, apparemment...
Je ne sais pas si quelqu'un a déjà tenté des luaext avec ndless 3.6 :P
Si c'est un problème au niveau de ndless, je suppose qu'avertir Extended devrait aider à localiser et résoudre le problème rapidement (je viens de lui envoyer un mail).
Ca "répond" peut-être en même temps à ton "Quelqu'un aurait-il une idee pourquoi 1/ marche avec OS 3.1 et pas avec OS 3.6?".
Attendons son avis, qu'il postera sans doute ici.

parisse a écrit:2/ rungiacdemo.lua/tns, inspire des tutoriels nspire lua, ne marche pas dans l'OS 3.1 (probablement normal, le lua de l'OS n'a pas les fonctionnalites requires)

Effectivement, les D2Editor étaient vraiment nuls en Lua 3.1 (apilevel '1.0' maximum... le '2.0' est venu avec l'OS 3.2, qui a bien amélioré les D2Editor par exemple)

parisse a écrit:ni dans l'OS 3.6 (pour les memes raisons probables que luachkgiac.tns).

Oui voila, en Lua 3.6, le reste du code fonctionne, sinon (du moins, visuellement, ca à l'air de marcher).

parisse a écrit:C'est dommage parce que ca m'aurait fourni une interface plus sympa que la console sans me fatiguer cote lua.

Je suis en train de regarder comment on peut avoir une interface simple de test avec le Lua 3.1, déja.
Ensuite, en 3.6, il sera possible de reprendre une interface tout faite, du genre SuperSpire, si critor est OK :P
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: module lua natif giac

Message non lude Excale » 11 Juin 2014, 17:13

Adriweb a écrit:Cependant, la calculatrice reboote quand je veux fermer le document, je ne sais plus si c'est un problème connu ou non... bref, à creuser. (même sur le .tns de demo des luaext)


Bug connu depuis un unsigned long time. (et en plus c'est aléatoire)
Avatar de l’utilisateur
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 3.9%
 
Messages: 2955
Images: 3
Inscription: 10 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: module lua natif giac

Message non lude Adriweb » 11 Juin 2014, 17:46

Dommage que personne n'ait résolu ceci, alors ^^
(Va bien falloir, là)

Bon sinon, j'ai fait un petit truc rapide qui permet de tester...
Le problème c'est que l'API du D2Editor est tellement immonde en 3.1 que c'est pas pratique, au final :P

En gros, (cf .tns attaché), j'ai split la page en 2 pour pouvoir mettre tranquillement (en haut) son input dans une variable Basic, et le Lua (en bas) détecte le changement de cette variable et envoit à giac le string. Le résultat récupéré est alors affiché.

Bien sûr, dès que l'extension Lua marchera en 3.6, plus besoin de passer par ces artifices foireux, l'API du D2Editor étant correcte :)

Le code Lua pour les curieux :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
platform.apilevel = "1.0" -- to test stuff with the crappy 3.1 2DEditor API
W,H = 318, 212 -- will be overwritten

hasGiac = pcall(require, "luagiac")
if not hasGiac then luagiac = {caseval = function() return "Giac module not loaded" end } end

function on.create()
    TextBox = D2Editor.newRichText()
    TextBox:move(4, 4)
    TextBox:resize(W-4, H-4)
    TextBox:setText("Store the expression you want to calculate in 'a'")
    var.monitor("a")
end

function on.resize()
    W, H = platform.window:width(), platform.window:height()
    if TextBox then TextBox:resize(W-4,H-4) end
end

function on.varChange()
    local input = var.recall("a")
    local output = luagiac.caseval(input)
    TextBox:setText("\\0el {" .. output .. "}")
    return 0 -- success
end

on.enterKey = on.varChange -- forced, just in case
Fichiers joints
test_giac.tns
(1.78 Kio) Téléchargé 80 fois
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: module lua natif giac

Message non lude parisse » 12 Juin 2014, 10:19

Je n'ai pas compris comment l'utiliser, il faut dire que je suis essentiellement debutant dans la manipulation de la nspire. Quand je lance test_lua il m'ouvre juste un onglet 1.1 avec affiche Store the expression you want to calculate in 'a', il n'y a pas d'autre onglet (ctrl-fleche ne fait rien) et si j'essaie de stocker quelque chose dans a depuis Calculate ca ne fait rien non plus.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: module lua natif giac

Message non lude Adriweb » 12 Juin 2014, 11:42

Pas de problème -
Le script Lua "surveille" la variable basic 'a', qui sert comme input pour giac (pas besoin de créer un d2editor d'input, du coup, qui nous aurait bien embêté en 3.1).
Dès que sa valeur change, ca appelle luagiac.caseval etc.
Au passage : il faut que a contienne un string.

Voici un petit gif d'un exemple d'utilisation :
Image
(la, c'est "truqué", j'ai fait l'enregistrement sur le logiciel Nspire - mais sur nspire_emu, c'est exactement pareil)

N'oublions pas toutefois que ceci reste du bidouillage comparé à ce qu'il sera fait pour la version Lua 3.6 :)

(Pour info, il aurait été possible de faire ceci avec deux 2DEditor, mais ca n'aurait pas marché ni sur l'émulateur (pas de touchpad émulé) ni sur les Nspire sans touchpad (les clickpad, B&W), car pour leur donner le focus, il faut la souris...)
Bien sûr, on aurait pu tout gérer à la main pour l'input (avec on.charIn, comme ici), mais vu que c'est une situation temporaire, je ne sais pas si on en a vraiment besoin ? En tout cas, ce n'est pas très compliqué à mettre en place, si on veut.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: module lua natif giac

Message non lude parisse » 12 Juin 2014, 12:38

Merci! Desole mais j'ai encore une question de novice, comment on coupe l'ecran en 2 pour faire apparaitre l'historique de calcul avec les a:="..."?
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: module lua natif giac

Message non lude Adriweb » 12 Juin 2014, 12:45

Sur ce .tns, il est déjà coupé donc ya plus besoin, mais en général :

Sur CX : bouton [DOC] -> Format de page -> la, yaura pas mal de choix :)
Sur ClickPad : CTRL-Home -> Format de page

Le split en 2 applis n'est pas forcément rare, mais il existe aussi le split en 3 et en 4 (déja plus contraignant sur calculatrice, mais parfois bien pratique sur le logiciel ordinateur).

Un autre moyen de partager (ou séparer, à l'inverse), est de remonter dans les apercus des pages (Ctrl-flèche_haut) et de faire Clic droit (ctrl-menu) -> (dé)Grouper sur la page d'avant.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: module lua natif giac

Message non lude parisse » 12 Juin 2014, 12:52

Ah je vois, c'est parce que j'avais recompile avec luna a partir du code source...
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 78%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: module lua natif giac

Message non lude Adriweb » 12 Juin 2014, 13:06

Ah, oui, du coup, il faut effectivement re-splitter pour pouvoir voir les 2 en même temps...

Au passage, j'ai ajouté la ligne W,H = 318, 212 -- will be overwritten en haut du script (étrange que ça ne râlait pas (sauf si on.resize est appelé avant on.create, mais j'en doute...), bref, pas grave ^^)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Suivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 11 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1428 utilisateurs:
>1404 invités
>19 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)