Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Cahute, pour communiquer efficacement avec sa calculatrice CASIO sous Linux
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Cahute, pour communiquer efficacement avec sa calculatrice CASIO sous Linux

Posté le 04/03/2024 14:26


Vous savez produire du hardware ? La communauté a désespérément besoin de câbles USB/série alternatifs pour ses calculatrices !

Vous êtes utilisateur.ice de Windows, et vous utilisez Cahute, ou êtes intéressé(e) par son utilisation ? Vous êtes invité(e) à réagir ici vis-à-vis du support de Windows par Cahute

Vous êtes utilisateur.ice de Debian ou dérivé, et vous utilisez Cahute, ou êtes intéressé(e) par son utilisation ? Vous êtes invité(e) à réagir ici vis-à-vis du packaging de Cahute pour votre distribution

Ce topic de CalcLoverHK décrit comment installer Cahute avec le Windows Subsystem for Linux (WSL) 2. Si cela vous concerne, n'hésitez pas à le visiter en attendant l'ajout des instructions dans la documentation officielle

Cahute est mon dernier projet dans une lignée de projets qui avaient vocation à réimplémenter les protocoles et formats de fichiers autour des calculatrices CASIO, qu'ils soient officiels ou communautaires.

Un petit historique
Cliquez pour recouvrir
En 2015/2016, dans le monde balbutiant des utilitaires de communication avec fx-9860G et compatibles Linux, on trouvait un xfer9860 vieillissant et pas très fonctionnel, et un UsbConnector qui ne supportait pas assez de features. Alors en août 2016, j'ai fini par faire p7, une implémentation des interactions avec la mémoire de stockage avec le protocole 7.00 tel que documenté par Simon Lothar.

Tel que le veut la tradition capitaliste, maintenant que j'avais quelque chose qui fonctionnait et était apprécié de la communauté, il s'agissait de grandir. Les autres commandes du protocole 7.00 requièrent une connaissance beaucoup plus approfondie de la mémoire principale et de formats bien plus diversifiés, alors il est temps de s'enfoncer dedans et de gérer ces formats ; c'est ainsi qu'en novembre 2016, je sors la libg1m. Mais voilà, ces formats requièrent un encodage de caractères qu'il faut gérer également, alors hop, le même mois, la référence FONTCHARACTER est annoncée.

En 2018/2019, alors que je reprends mes études, je me rends compte que tout ça fait beaucoup de projets à interconnecter, documenter et faire marcher ensembles ; alors j'entreprends d'en faire un projet commun, nommé "libcasio", où j'en profite pour aller au bout de mon refactoring en séparant les différentes couches, introduisant beaucoup de complexité mais beaucoup de flexibilité au niveau du design, introduisant des concepts assez intéressants mais qui sortent du cadre simple de la communication avec des calculatrices CASIO, au point même que j'en extraierai l'I/O dans une bibliothèque nommée "libtio" (pour "Touhey I/O").

La libcasio a de belles réussites, notamment avec l'ajout d'un utilitaire nommé "p7os" qui permet, enfin, de flasher une calculatrice depuis Linux, faisant au passage deux victimes collatérales sous la forme de deux Graph 35+USB, celle que j'avais au lycée et celle d'Eltoredo qui en a fait don pour la science (merci à lui !). C'est Lailouezzz qui réussira le premier flash avec p7os ; une commande était incorrecte, et il fallait en réalité en employer un autre. La barre était franchie, fxRemote ou même Windows n'est plus nécessaire pour flasher une calculatrice !

Seulement voilà, la libcasio était très complexe à maintenir, avec beaucoup de couches différentes, et j'étais seul à m'en occuper. Courant 2019, ma motivation s'effrite et je finis par m'intéresser à d'autres sujets, d'autres projets, et à délaisser les calculatrices CASIO.

Pendant quatre ans, nous avions donc une libp7 et des p7utils plus maintenus, une libcasio qui n'est jamais sorti, une myriade de petits projets plus maintenus non plus et dont le potentiel d'interconnexion avec les autres projets n'a jamais été exploité. Avec de plus, des utilitaires de moins en moins utiles dans la vie de tous les jours, puisque les fx-CG / Prizm / Graph 90+E ont un mode "clé USB" qui rend accessible leur contenu de façon standard.

Alors mi-février 2024, je me suis motivé et j'ai recommencé un projet similaire à la libcasio, mais avec les expériences que j'ai eues entretemps (beaucoup de documentation, un recours à la simplicité bien plus présent, et plus d'expérience en général), et un scope plus limité dans un premier temps : avoir les mêmes features que la dernière release de la libp7 et des p7utils, mais sous une forme plus maintenable et, surtout, documentée cette fois. Cet objectif a été atteint avec la release 0.1 de Cahute, qui a lancé ce topic !


Il est constitué d'une bibliothèque statique et d'un ensemble d'utilitaires en ligne de commandes, ainsi que d'une documentation en ligne. Les fonctionnalités actuellement présentes dans le logiciel sont :

  • Transferts de fichiers dans les deux sens pour fx-9860G / Graph monochromes, en USB et en série.
  • Partage d'écran depuis fx-9860G / Graph monochrome et fx-CG / Prizm / Graph 90+E, en USB.

Le projet est sous CeCILL 2.1, et j'en suis le seul propriétaire et mainteneur pour le moment.

Les liens pour ce projet sont :


Pas de roadmap définie pour le moment. J'ai les mêmes pistes qu'à l'époque, mais l'une des premières choses à reprendre est sans doute la gestion des encodages de caractère de CASIO, puisque c'est eux qui sont utilisés dans les formats de fichiers et les protocoles. Ensuite, il faut que je trouve par quel bout prendre la gestion de la mémoire principale.

En espérant que ça vous plaise !

Fichier joint


Précédente 1, 2, 3, 4
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Citer : Posté le 10/12/2024 17:31 | #


Hey ! La release 0.6 de Cahute arrive d'ici Noël, en attendant voici quelques images Docker de build incluant la SDL et la libusb pour plusieurs plateformes, qui sont les premiers pas pour une distribution automatique officielle de binaires qui arrivera pour la 0.7 ou la 0.8 et incluera au moins Linux (Debian, Archlinux, possiblement CentOS / RHEL), Windows et OS X si j'y arrive

https://gitlab.com/cahuteproject/docker-images/container_registry

Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blog
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Citer : Posté le 22/12/2024 11:47 | #


Hey, la version 0.6 de Cahute a fait son apparition ! En plus d'une nouvelle bannière faite par Massena, la release apporte son lot de features, de fixes et de refactoring, incluant notamment une première version du support du protocole CAS300, utilisé par les ClassPad 300 / 330 (+), de la lecture de fichiers G[123][MR] et CAS, des liens génériques pour exploiter la portabilité de Cahute dans votre bibliothèque, etc !

Vous pouvez retrouver davantage de détails dans le changelog complet (en anglais).

J'en profite pour dire que le projet est ouvert aux contributions si vous êtes intéressé(e) par le fait de vous attaquer à un projet de l'ampleur de Cahute ; plus d'informations sur le guide de contribution et les tickets ouverts, notamment les tickets ouverts pour la 0.7

Happy Cahuting!

@RDP
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blog
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Citer : Posté le 02/06/2025 11:56 | #


Hej ! Basé sur toutes les évolutions de la doc depuis le début du projet, j'ai enfin refait toute la structure de la documentation dans les URLs pour correspondre à la structure visuelle présentée sur la page principale. Désormais :


Les ancres ont également toutes un préfixe qui dépend de la sous-section, e.g. internals-topic- ou cli-ref-, ce qui a nécessité pas mal de refactoring à la mano aussi. Ceci ne vous impacte que si vous utilisez intersphinx en référençant https://next.cahuteproject.org/objects.inv ; à ma connaissance, personne n'est impacté.

Pour rendre ces changements plus fluides, des redirections ont été mises en place entre l'ancienne structure et la nouvelle. Vous pouvez retrouver ces règles au format nginx dans le spoiler suivant.

Règles de redirection nginx
Cliquez pour recouvrir
rewrite ^/cli/(.*)$ /references/cli/$1 permanent;
rewrite ^/cli\.html$ /references/cli.html permanent;
rewrite ^/headers/(.*)$ /references/headers/$1 permanent;
rewrite ^/project/(.*)$ /topics/project/$1 permanent;
rewrite ^/cmake\.html$ /references/cmake.html permanent;
rewrite ^/internals/(.*)$ /topics/internals/$1 permanent;
rewrite ^/cli\-guides/(.*)$ /guides/cli/$1 permanent;
rewrite ^/headers\.html$ /references/headers.html permanent;
rewrite ^/misc\-guides/(.*)$ /guides/misc/$1 permanent;
rewrite ^/project\.html$ /topics/project.html permanent;
rewrite ^/build\-guides/(.*)$ /guides/build/$1 permanent;
rewrite ^/features\.html$ /topics/features.html permanent;
rewrite ^/internals\.html$ /topics/internals.html permanent;
rewrite ^/cli\-guides\.html$ /guides/cli.html permanent;
rewrite ^/install\-guides/(.*)$ /guides/install/$1 permanent;
rewrite ^/misc\-guides\.html$ /guides/misc.html permanent;
rewrite ^/topics/data\.html$ /topics/features/data.html permanent;
rewrite ^/data\-formats\.html$ /topics/data-formats.html permanent;
rewrite ^/developer\-guides/(.*)$ /guides/developer/$1 permanent;
rewrite ^/topics/files\.html$ /topics/features/files.html permanent;
rewrite ^/topics/links\.html$ /topics/features/links.html permanent;
rewrite ^/topics/protocols/(.*)$ /topics/communication-protocols/$1 permanent;
rewrite ^/guides/report\.html$ /guides/contribution/report.html permanent;
rewrite ^/guides/package\.html$ /guides/contribution/package.html permanent;
rewrite ^/topics/logging\.html$ /topics/features/logging.html permanent;
rewrite ^/topics/systems\.html$ /topics/features/systems.html permanent;
rewrite ^/topics/contexts\.html$ /topics/features/contexts.html permanent;
rewrite ^/developer\-guides\.html$ /guides/developer.html permanent;
rewrite ^/guides/contribute\.html$ /guides/contribution/contribute.html permanent;
rewrite ^/contribution\-guides\.html$ /guides/contribution.html permanent;
rewrite ^/topics/usb\-detection\.html$ /topics/communication-protocols/usb-detection.html permanent;
rewrite ^/guides/report\-feature\.html$ /guides/contribution/report-feature.html permanent;
rewrite ^/topics/number\-formats\.html$ /topics/data-formats/number-formats.html permanent;
rewrite ^/topics/text\-encodings\.html$ /topics/data-formats/text-encodings.html permanent;
rewrite ^/topics/picture\-formats\.html$ /topics/data-formats/picture-formats.html permanent;
rewrite ^/communication\-protocols\.html$ /topics/communication-protocols.html permanent;
rewrite ^/guides/create\-merge\-request\.html$ /guides/contribution/create-merge-request.html permanent;


Ces changements ne sont que sur next.cahuteproject.org pour le moment, et n'arriveront sur le site principal qu'avec la 0.7, qui arrivera dans un long moment vu tout ce qu'il me reste à faire.
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blog
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Citer : Posté le 05/06/2025 13:48 | # | Fichier joint


Hey ! Mini-détail entre sujets plus importants, mais les sections sont maintenant délimitées dans la sidebar, ce qui, je l'espère, rend la structure de la documentation un peu plus claire


Sidebar sur next.cahuteproject.org

Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blog
Lephenixnoir En ligne Administrateur Points: 25169 Défis: 174 Message

Citer : Posté le 05/06/2025 20:52 | #


Elle est bien cette doc y'a pas à dire x) Et pas juste en décoration, je m'en sers de temps en temps. Merci !
Mon graphe (28 Janvier): (MPM ; serial gint ; (Rogue Life || HH2) ; PythonExtra ; ? ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Citer : Posté le 07/06/2025 03:17 | #


Le namespace des dépôts du projet sur Gitlab.com a été mis à jour de gitlab.com/cahuteproject à gitlab.com/cahute. Le namespace étant devenu disponible, j'en ai profité, et cela a l'intérêt d'harmoniser les namespaces entre Gitlab.com et Github

Les URLs des dépôts sont maintenants les suivantes :


Il y a des redirections temporaires qui, j'espère, tiendront jusqu'à la 0.7 pour la mise à jour de cahuteproject.org, mais pas de garantie de ce côté-là AFAIK.

P-S : merci Lephé pour le retour <3
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blog
Cakeisalie5 Hors ligne Ancien administrateur Points: 1979 Défis: 11 Message

Citer : Posté le 11/06/2025 12:46 | # | Fichier joint


Cahute commence à fonctionner sur Windows 2000, avec de l'USB ! (c.f. #73 pour + d'infos)


Il reste encore beaucoup à faire pour stabiliser tout ça et avoir un niveau de logging correct pour débloquer d'autres soucis (typiquement #95), mais c'est déjà une belle étape de franchie
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blog
Précédente 1, 2, 3, 4

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 87 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd