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 - Actualités


Index du Forum » Actualités » fxIP : Implémentation TCP/IP, avec client IRC et serveur web !
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

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 !

Topic original : » fxIP - TCP/IP stack, IRC client and webserver « (en anglais)

Page Github du projet : github.com/Manawyrm/fxIP (en anglais aussi)

Le client TCP/IP

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.


Source : Manawyrm/fxIP


Client IRC

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.

Comme promis, c'est une sacrée affaire.

Vidéo supplémentaire : une calculatrice compose un numéro de téléphone par le port série

Serveur web

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/

Et à bientôt sur Planète Casio !

Fichier joint


1, 2, 3 Suivante
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

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.
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 14/04/2024 17:26 | #


j'ai une calculatrice casio fx9750 giii ca devrais marcher non? car il utilise une fx9750gii
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

Citer : Posté le 14/04/2024 17:31 | #


Yup, ça devrait marcher en termes de compatibilité !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

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
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

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é.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 838 Défis: 19 Message

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:
wsl --install
et ensuite tu suis les instructions pour WSL .

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 .
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 14/04/2024 18:20 | #


alors?
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

Citer : Posté le 14/04/2024 18:38 | # | Fichier joint


Puisque tu sembles pressé, j'ai pas testé.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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?
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 14/04/2024 18:42 | #


regarde le fichier joint
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

Citer : Posté le 14/04/2024 18:43 | #


Oups oui pardon j'oublie toujours que les fichiers joints se voient pas bien.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 14/04/2024 18:49 | #


euuu il est ou le fichier je vois rien
1, 2, 3 Suivante

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 - 2024 | Il y a 41 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