π
<-
Chat plein-écran
[^]

question sdk graph 90+e/ portage CAS

Programmation et implémentation d'algorithmes.

Re: question sdk graph 90+e/ portage CAS

Message non lude parisse » 19 Juin 2018, 14:19

Nouvelle mise a jour, https://www-fourier.ujf-grenoble.fr/~parisse/casio/test.g3a.
Les variables sont dorenavant automatiquement sauvegardees quand on quitte la session, pour les restaurer il suffit de faire shift-Menu, Load script et charger le script lastvar.py.
La syntaxe Python devrait fonctionner. Je n'ai teste qu'un script tout simple, j'espere que ca marche. Il n'y a sans doute pas d'editeur Python pour la calc, mais on peut editer un script sur PC et l'envoyer a la calc, puis charger le script (shift-Menu Load script).
Si quelqu'un m'indique comment on allume un pixel sur la Casio et comment on peut lire sa valeur, je pourrais aussi activer set_pixel et get_pixel.
[Edit] ca semble etre GetVRAMAddress()

P.S: le repertoire https://www-fourier.ujf-grenoble.fr/~parisse/casio/ contient des archives de la toolchain (gcc 7.3 compile pour debian 9, ustl, tommath, libfxcg avec plusieurs bugs en moins et une ou deux fonctions manquantes en plus), ainsi que le source modifie de giac khicas.tgz.
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: question sdk graph 90+e/ portage CAS

Message non lude parisse » 19 Juin 2018, 19:28

Voila, get_pixel/set_pixel et draw_string sont disponibles. Par exemple, le mandelbrot en syntaxe Python :
Code: Tout sélectionner
def fra1(X,Y,Nmax):
  w=2.7/X
  h=-1.87/Y
  Y=Y-1
  for y in range(ceiling(Y/2)+1):
    c = -2.1+i*(h*y+0.935)
    for x in range(X):
      z = 0
      for j in range(Nmax):
        if abs(z=z**2+c)>2:
          break
      set_pixel(x,y,5100*j+512)
      set_pixel(x,Y-y,5100*j+512)
      c = c+w;

Puis fra1(200,200,10) donne ca:
Image
Image
C'est tres lent sur l'emulateur. Je serais curieux de savoir combien de temps ca prend sur la calculatrice (il sera prudent de commencer par essayer fra1(50,50,10)).
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: question sdk graph 90+e/ portage CAS

Message non lude Nemhardy » 19 Juin 2018, 19:55

J'ai testé la version donnée dans le post avant les images de fractales, en tout cas c'est propre et ça m'a l'air plutôt stable (par rapport aux quelques tests, certes pas très intenses encore, que j'ai pu faire jusque là… ). C'est du super boulot ! Merci pour ça ! :D

Au niveau de quelques "bugs" repérés pour l'instant, qui sont plutôt quelques soucis d'interface (et donc ne relevant peut être pas directement de ce que vous avez fait), et assez peu génants dans l'ensemble :

- Le "vidage de l'écran" fonctionne, mais le curseur semble partir un peu n'importe où : parfois au milieu de l'écran un peu dans le vide, parfois hors de la zone visible et on ne voit alors pas ce que l'on tape (mais presser [Exe] lors de la saisie en cours remet les choses en ordre).

- Quelques affichages un peu étonnant des messages d'erreur : Image
Hélas ça ne semble pas déterministiquement reproductible, et encore une fois, ce n'est pas vraiment très problématique. ^^

Pour la suite, et grapiller un peu d'espace encore, il devrait être possible de passer le catalogue en fichier "auxiliaire" contenant du texte, et de le charger en RAM en le lisant depuis la flash lorsque nécessaire par exemple. Je ne suis pas sûr que le gain soit particulièrement important, mais bon.

(Je vais essayer le script que tu proposes dans le post précédent, et chronométrer pour voir ce que ça donne… !)
Le support de la syntaxe Python avec de quoi faire des graphismes est prometteur également ! Ça va faire «monter la machine en gamme» tout ça ! ^^
Dernière édition par Nemhardy le 19 Juin 2018, 20:06, édité 1 fois.
Je maintiens le portage d'Eigenmath pour les Casio monochromes, n'hésitez pas à y jeter un œil si ça vous intéresse ! :p
Avatar de l’utilisateur
NemhardyPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 48%
 
Messages: 45
Inscription: 28 Déc 2014, 22:06
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Message non lude parisse » 19 Juin 2018, 20:04

Oui, il y a des bugs dans le traitement des chaines de caracteres, ustl::string n'est pas completement compatible avec string, et la concatenation de caracteres/chaines C avec des ustl::string ne fonctionne pas correctement. Je me demande si le plus simple ne serait pas de reecrire une classe string.
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: question sdk graph 90+e/ portage CAS

Message non lude Nemhardy » 19 Juin 2018, 20:21

Alors quelques tests de vitesse d'affichage de la fractale :
fra1(50,50,10) prend ~ 6s
fra1(100,100,10) prend ~ 22s
fra1(200,200,10) prend ~ 1min28s

Quand on se rappelle que la cp400 met je ne sais pas combien de fois plus de temps pour juste faire tourner un algorithme de seuil de suite, ça reste raisonnable, même si loin du "temps réel"… ^^

Ceci dit, j'ai aussi remarqué la chose suivant : lorsque l'on quitte l'addin pour aller dans une autre application après avoir lancé le script Python pour afficher la fractale de Mandelbrot, à cause de la sauvegarde des variables, il se passe un certain temps (~15s) où la calculatrice mouline, sûrement pour écrire le fichier : ça n'est pas excessif, mais ça peut peut-être être gênant dans certains cas (examens, etc) : ça vaudrait peut être le coup de désactiver la sauvegarde par défaut des variables, en laissant la possibilité de l'activer lorsqu'on en a besoin. Enfin, les variables induites par le script sont peut être bien plus "grosses" que ce qu'une session "normale" d'utilisation engendre, donc à voir… ^^
Je maintiens le portage d'Eigenmath pour les Casio monochromes, n'hésitez pas à y jeter un œil si ça vous intéresse ! :p
Avatar de l’utilisateur
NemhardyPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 48%
 
Messages: 45
Inscription: 28 Déc 2014, 22:06
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Message non lude critor » 19 Juin 2018, 20:30

Très impressionnant, bravo ! :bj:
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.4%
 
Messages: 41497
Images: 14640
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: question sdk graph 90+e/ portage CAS

Message non lude parisse » 19 Juin 2018, 20:33

La sauvegarde des variables occupe peu de place, mais je soupconne que le bug des strings cree ce laps de temps. On va essayer de corriger ca...
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: question sdk graph 90+e/ portage CAS

Message non lude Lephe » 19 Juin 2018, 21:08

J'arrive peut-être un peu tard, mais je n'ai pas tout suivi sur les fonctions de dessin. Est-ce une extension du module Python de la Graph 90+E (pourtant pas encore publiquement disponible) ou un port de Python complètement indépendant ?

En tous cas c'est très fort, bien joué. ^^
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Message non lude parisse » 19 Juin 2018, 21:39

Ni l'un ni l'autre :-) C'est la compatibilite de syntaxe Python dans Xcas, ou plutot dans KhiCAS ici. J'ai adopte les memes noms de commande que Numworks, si on a du Python compatible a plusieurs endroits, autant qu'il soit compatible aussi pour les graphiques. Je rajouterai peut-etre des fonctions de trace (draw_line par exemple).
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: question sdk graph 90+e/ portage CAS

Message non lude Lephe » 19 Juin 2018, 21:49

Et donc on peut écrire des programmes dans une syntaxe compatible Python avec des fonctions formelles à disposition ? :~o
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

PrécédenteSuivante

Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 10 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.
1053 utilisateurs:
>1008 invités
>40 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)