Support of NW modules (Ion, Kandinsky and Time) on fxCG50 #14
Loading…
Reference in New Issue
No description provided.
Delete Branch "Slyvtt/PythonExtra:numworks"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Désolé, le formatter de vscode m'a tué le formatage de certaines sources.
Pour tester.
Je joins le code de Orlog, un jeu d'Afyu pour tester. C'est du pur code Python NW, avec zéro modifications.
Je te laisse mettre à ta sauce.
Ça me paraît pas mal sur l'implémentation, c'est relativement direct et c'est à mon avis une très bonne fonctionnalité à avoir.
Il y a plusieurs choses qu'il faudrait nettoyer sur la PR :
.vscode
des commits. Un coup degit filter-branch
peut faire ça. C'est un peu avancé par contre, je peux le faire sur ta branche si tu veux (auquel cas signale-moi un moment où tu n'es pas en train de travailler et tout ton travail est poussé, parce que je vais force push la branche).Tu peux y aller aujourd'hui ou demain, je suis en déplacement donc je vais pas travailler dessus.
b8cd092219
to96077c1653
Ok, c'est fait. Pour référence j'ai balancé la commande suivante sur la branch
numworks
:Quand tu reprendras le développement, télécharge les modifications avec
git fetch
, vérifie que tu n'as aucun travail non-staged, staged, ou des commits en plus sur ta branche locale, puis aligne-toi sur la branche distante avecgit reset --hard origin/numworks
.Note aussi qu'il faut faire le point 2 (nettoyer l'auto-formatage) avant de faire le point 3 (rebase) parce que l'auto-formatage va rendre le rebase insupportable.
Ok, j'ai fait un gros ménage. A priori cette fois on est OK pour merge. J'en ai profité pour checker avec Afyu que le rendu est correct. Je rajouterai au fur et à mesure mais cette partie est fonctionnelle.
Aaah, merci bien. Voilà qui a une bien meilleure tête pour le diff. Je m'occuperai de rebase, squash et ajuster un ou deux détails de style avant de fusionner. Peux-tu ajouter un programme d'exemple simple dans
ports/sh/example
(dans le genrecg_numworks.py
) pour qu'on ait une référence ?Done.
Exemples dans
ports/sh/examples
avec des noms qui commencent tous parcg_NW_
Documentation en français au formatmd
dansdocs\sh
Pour moi ça devrait plus bouger. J'ai vérifié que les modules math, cmath, random sont compatibles avec les builtins de Micropython.
Pour turtle et matplotlib.pyplot, il est possible d'utiliser les modules
turtle
,matplotlib
etcasioplot
de Casio Education dont la version Python est fournie en example dansports/sh/examples
.De mon côté je touche plus (sauf détection de bugs et demandes spécifiques). Je suis content du résultat.
Cette fois je touche plus pendant qq temps - sauf si remontée(s) de bug(s) non détecté(s) - j'ai envie de passer un peu à autre chose. Comme ça tu pourras intégrer dans
dev
tranquilement.@ -0,0 +46,4 @@
{
tickmono = 0;
int t = timer_configure(TIMER_TMU, 1000, GINT_CALL(monotonic_callback));
Ce n'est pas une façon vraiment satisfaisante de compter le temps. Déjà on pourrait utiliser libprof à la place, qui ne nécessite pas de gérer des interruptions tout le temps.
Et tant qu'à faire quelle est la précision de la mesure sur Numworks? Parce qu'on a déjà la RTC qui nous donne une résolution de 7.8 ms, donc si ça suffit autant utiliser ça.
Le module
time
est déjà fourni par PythonExtra non ? Comment ça se fait qu'on le redéfinit à la main ici ?C'est pour ajouter le support de
monotonic()
qui est pas dans letime
d'origine.Pour
libprof
ouRTC
au lieu des interruptions, pourquoi pas en effet. j'essaierai de voir la précision sur le hardware Numworks.Vu que c'est une fonction qui existe sur le module CPython on n'a qu'à l'ajouter dans
extmod/modtime.c
en appelant simplementmp_hal_ticks_ms()
. Si la précision de 7.8 ms est pas suffisante on peut modifiermp_hal_ticks_ms()
pour utiliser libprof.Yep ça me va. Je pense que le
sleep( duration )
doit être OK, j'ai pas vérifié mais de tête c'était OK (duration
est un float qui contient le nombre de secondes à attendre).Alright. Je vais merger la branche telle quelle et ensuite faire quelques commits de nettoyage pour mettre "à mon goût" certains détails. Notamment le module time, le tableau de timers qui n'est pas super satisfaisant, des détails comme ça.
[WIP] - Support of NW modules (Ion, Kandinsky and Time) on fxCG50to Support of NW modules (Ion, Kandinsky and Time) on fxCG50Info : c'est sur la branche numworks que ça se passe du coup. J'ai bientôt fini, promis...
Pas de problème, prends le temps qu'il te faut, ça fait une plombe que j'ai pas codé je suis au triple taquet avec le taf.
Fusionné manuellement et publié via 0.3.0-beta.
Pull request closed