fxIP : Implémentation TCP/IP, avec client IRC et serveur web !
Posté le 22/07/2021 15:35
Plus tôt dans le mois, Manawyrm nous a présenté une nouveauté impressionnante : un port d'un client TCP/IP pour sa fx-9750G II (équivalent à la Graph 35+USB). Le programme utilise un port de µIP, et s'en sert pour supporter un client IRC, et même un serveur web permettant d'accéder à une page web hébergée sur sa calculatrice !
Tenez-vous bien à vos chaises, c'est une sacrée affaire !
fxIP utilise un port de µIP (projet Github) qui est une mini-implémentation du protocole TCP/IP. µIP permet de créer et décoder des paquets IP (qui sont des messages dans le protocole d'Internet) et des paquets TCP (un protocole qui étend IP en garantissant que les messages arrivent intacts et dans le bon ordre).
La calculatrice qui exécute fxIP communique avec un ordinateur par le biais du câble 3-pin qui est connecté à un port série. La calculatrice dispose de sa propre adresse IP (attribuée par l'ordinateur), de sorte que tous les messages à destination de la calculatrice qui passent par l'ordinateur lui sont transférés. Normalement on ne peut pas utiliser le protocole TCP/IP directement sur une liaison série parce qu'on ne peut pas détecter la fin des paquets, donc fxIP envoie des messages dans le protocole SLIP qui ajoute une marqueur de paquet. Voyez le détail de la configuration réseau ici.
Notez que le driver série n'est pas disponible dans gint, donc Manawyrm et TobleMiner ont encapsulé les syscalls de communication série.
Le résultat de cet effort, c'est que la calculatrice devient un objet connecté à Internet par le biais de son ordinateur, et peut communiquer avec d'autres machines et serveurs.
On peut voir par exemple sur cette capture que la calculatrice répond au ping de l'ordinateur.
La suite évidemment c'est de programmer des applications qui accèdent au réseau. Pour ça, fxIP contient un client IRC qui se connecte automatiquement à libera.chat (le successeur de freenode déchu), ce qui en fait un véritable chat Internet sur la calculatrice !!
Les messages échangés avec le serveur IRC sont stockés dans un buffer tournant pour conserver un historique.
Et ce n'est pas tout, parce que Manawyrm a aussi profité d'avoir sa calculatrice en réseau pour en faire un serveur web et y héberger une page accessible par le public ! Vous pouvez voir une capture de la première version ci-dessous ou visiter directement le site à l'adresse http://fxip.as203478.net/ (avec presque l'uptime d'un vrai serveur professionnel ).
La calculatrice fait tourner le serveur HTTP complet et envoie la page directement à votre navigateur, l'ordinateur ne sert que comme pont pour accéder à Internet. Si vous n'êtes pas familier avec les technologies web ça peut être un peu dur à voir, mais c'est un énorme boulot qui est fait côté calculatrice !
Dans tous les cas l'exploit est impressionnant. Il ne reste plus qu'à coller une ESP8266 (petit composant électronique pouvant échanger en WiFi) dans le boîtier pour donner à fxIP la mobilité et les capacités d'un véritable objet connecté !
Conclusion
fxIP repousse les limites de la communication série/réseau sur calculatrice CASIO, en portant sur une fx-9750G II (Graph 35+USB) les protocoles fondamentaux du web, TCP et IP. En utilisant un ordinateur comme point d'accès via la liaison série, fxIP peut discuter sur des salons IRC publics et même servir de serveur web en utilisant les protocoles standard.
Bravo Manawyrm et TobleMiner pour le superbe défi technique ! o/
Cet article semble ne pas avoir fait de bruit de par la rareté du public de potentiels utilisateurs des fonctions développées, mais n'en reste pas moins impressionnant.
Je suis fasciné de voir que si peu de temps après la création du WWW, des non-chercheurs (semble-t-il) puissent réaliser dans leur coin des briques indispensables à un usage moderne du Net, pour du hardware aussi peu commun.
C'est un peu comme les gars qui fabriquent de nos jours des moteurs ou des turbines de jet dans leur garage alors qu'il fallait 20 ingés et 10 fois plus d'ajusteurs méca pour en sortir un seul il y a 75 ans.
Quelquepart ça veut dire que la techno est répandue et que l'éducation ou le partage des connaissances ont progressé en parallèle.
Le code devrait encore marcher je pense ! N'hésite pas à nous préciser quel modèle de calculatrice tu as et quelles sont tes ambitieux pour qu'on puisse se faire une idée.
ok mais peux tu m'aider car je ne sais pas trop comment sa fonctionne mais connaisances sont un peux limiter a installer un jeux .g1a sur ma calculatrice XD
ok mais sur le lien ca montre just comment transferer des fichier et je sais le faire bon maintenant je ne sais pas lequelle transferer car sur le github il y en a beaucoup
Well... il faut compiler le projet, ça se fait pas tout seul.
Mais atta vue la façon dont c'était fait c'est pas facile. Je vais essayer de te faire un g1a. Note que si tu veux modifier le code à un moment tu devras installer le fxSDK pour pouvoir compiler le code modifié.
on peux mexpliquer pourquoi il y a trop de liens sur la page.... c lequel que je dois installer et c bien une application ou cest juste in programe a installer sur le shell
Ce que tu vois sur Github c'est le code source du programme. C'est du texte écrit par des humains et totalement incompréhensible pour une ordinateur. Le processus qui transforme ce texte en quelque chose de lisible par un ordinateur s'appelle la compilation. Et comme l'ordinateur qui va lancer le programme c'est la calculatrice, pour pouvoir effectuer la compilation il te faut tout un paquet d'outils (communément appelé SDK). Le fxSDK c'est ça.
Donc y'a pas de g1a sur Github parce que le g1a est obtenu en compilant le code source.
Il n'est pas dit que tu aies besoin de tout le SDK ; si le code d'origine te convient parfaitement y'a rien à faire et je peux juste te donner un g1a et tu seras bon. Mais si tu veux modifier le code à un moment il te faudra le SDK.
Cela dit si tu n'as pas du tout d'expérience en programmation C ou en réseau ça va être un peu difficile ; fxIP marche, mais fxIP n'est pas prêt-à-l'emploi pour le grand public.
il ne s'agit pas vraiment d'une application (pas d'interfaces graphiques) mais plutot de commande que tu entres dams WSL.
pour faire un nouveau projet:
fxsdk new MonProjet
Pour compiler:
fxsdk build-fx
mais tu t'y habitue rapidement
si tu as des souci pour installer le fxsdk, tiens nous au courant .
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
ummm ok bah moi je croyais que ca aller untiliser du html css ect mais ca n as pas l'air donc oui sil te plait ca serais apprrecier de m envoiyer le .g1a
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
Citer : Posté le 15/08/2021 18:50 | #
Cet article semble ne pas avoir fait de bruit de par la rareté du public de potentiels utilisateurs des fonctions développées, mais n'en reste pas moins impressionnant.
Je suis fasciné de voir que si peu de temps après la création du WWW, des non-chercheurs (semble-t-il) puissent réaliser dans leur coin des briques indispensables à un usage moderne du Net, pour du hardware aussi peu commun.
C'est un peu comme les gars qui fabriquent de nos jours des moteurs ou des turbines de jet dans leur garage alors qu'il fallait 20 ingés et 10 fois plus d'ajusteurs méca pour en sortir un seul il y a 75 ans.
Quelquepart ça veut dire que la techno est répandue et que l'éducation ou le partage des connaissances ont progressé en parallèle.
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 14/04/2024 00:13 | #
Je me demande si c'est encore possible car j'ai envie de faire un site web avec sa
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 07:54 | #
Le code devrait encore marcher je pense ! N'hésite pas à nous préciser quel modèle de calculatrice tu as et quelles sont tes ambitieux pour qu'on puisse se faire une idée.
Citer : Posté le 14/04/2024 17:26 | #
j'ai une calculatrice casio fx9750 giii ca devrais marcher non? car il utilise une fx9750gii
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 17:31 | #
Yup, ça devrait marcher en termes de compatibilité !
Citer : Posté le 14/04/2024 17:33 | #
ok mais peux tu m'aider car je ne sais pas trop comment sa fonctionne mais connaisances sont un peux limiter a installer un jeux .g1a sur ma calculatrice XD
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 17:35 | #
Le tutoriel pour ta calculatrice est le suivant : https://www.planet-casio.com/Fr/forums/topic16747-2-tutoriel-de-transfert-pour-les-calculatrices-cle-usb.html
Il suffit de copier le .g1a dans la mémoire de stockage
Citer : Posté le 14/04/2024 17:37 | #
mais pourtant dans le git hub ce nest pas un fichier .g1a mais je vais voir le lien que tu mas envoye je envoie un message ici si j'ai besion d'aide
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 17:40 | #
ok mais sur le lien ca montre just comment transferer des fichier et je sais le faire bon maintenant je ne sais pas lequelle transferer car sur le github il y en a beaucoup
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 17:47 | #
Well... il faut compiler le projet, ça se fait pas tout seul.
Mais atta vue la façon dont c'était fait c'est pas facile. Je vais essayer de te faire un g1a. Note que si tu veux modifier le code à un moment tu devras installer le fxSDK pour pouvoir compiler le code modifié.
Citer : Posté le 14/04/2024 17:51 | #
on peux mexpliquer pourquoi il y a trop de liens sur la page.... c lequel que je dois installer et c bien une application ou cest juste in programe a installer sur le shell
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 17:57 | #
Ce que tu vois sur Github c'est le code source du programme. C'est du texte écrit par des humains et totalement incompréhensible pour une ordinateur. Le processus qui transforme ce texte en quelque chose de lisible par un ordinateur s'appelle la compilation. Et comme l'ordinateur qui va lancer le programme c'est la calculatrice, pour pouvoir effectuer la compilation il te faut tout un paquet d'outils (communément appelé SDK). Le fxSDK c'est ça.
Donc y'a pas de g1a sur Github parce que le g1a est obtenu en compilant le code source.
Il n'est pas dit que tu aies besoin de tout le SDK ; si le code d'origine te convient parfaitement y'a rien à faire et je peux juste te donner un g1a et tu seras bon. Mais si tu veux modifier le code à un moment il te faudra le SDK.
Cela dit si tu n'as pas du tout d'expérience en programmation C ou en réseau ça va être un peu difficile ; fxIP marche, mais fxIP n'est pas prêt-à-l'emploi pour le grand public.
Citer : Posté le 14/04/2024 17:59 | #
Le lien avec lequel il seras le plus facile est celui ci: https://www.planet-casio.com/Fr/forums/topic16614-last-giteapc-installer-et-mettre-a-jour-automatiquement-des-projets-gitea.html . si tu es sur Windows, éxécute cette commande dans ton powershell d'abors:
il ne s'agit pas vraiment d'une application (pas d'interfaces graphiques) mais plutot de commande que tu entres dams WSL.
pour faire un nouveau projet:
si tu as des souci pour installer le fxsdk, tiens nous au courant .
Citer : Posté le 14/04/2024 18:00 | #
ummm ok bah moi je croyais que ca aller untiliser du html css ect mais ca n as pas l'air donc oui sil te plait ca serais apprrecier de m envoiyer le .g1a
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 18:20 | #
alors?
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 18:38 | # | Fichier joint
Puisque tu sembles pressé, j'ai pas testé.
Citer : Posté le 14/04/2024 18:41 | #
j'ai pas compris donc tu vas me le faire pour moi ou pas ou juste tu vas le faire apres?
https://discord.gg/HsyCrYRQdE
Citer : Posté le 14/04/2024 18:42 | #
regarde le fichier joint
(Et de toute façon, vous pouvez pas dire le contraire)
MultipliCasio
RDM Calculs
Back Mirror
A Switch To The Top C
Citer : Posté le 14/04/2024 18:43 | #
Oups oui pardon j'oublie toujours que les fichiers joints se voient pas bien.
Citer : Posté le 14/04/2024 18:49 | #
euuu il est ou le fichier je vois rien
https://discord.gg/HsyCrYRQdE