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 En ligne Administrateur Points: 24563 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


Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 14/04/2024 21:23 | #


et aussi quand j'y pense j'au juste a acheter un port 3 pin non? et ca va marcher????
Lephenixnoir En ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 14/04/2024 21:24 | #


Euh... je te conseille d'y revenir quand tu auras un peu plus d'expérience.
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 21:25 | #


mais pourtant tu a dis que il faut juste un 3 pin non?
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 14/04/2024 21:28 | #


si je me trompe dis le moi
Lephenixnoir En ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 14/04/2024 21:33 | #


T'as pas explicitement tort mais on voit bien dans tes réponses que tu ne vois pas venir les difficultés et/ou que les connaissances nécessaires pour résoudre les problèmes te manquent. On parle d'un projet expérimental et très technique ; c'est pas quelque chose que tu peux improviser avec ce qu'on a vu de tes compétences.
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 21:35 | #


oui je sais je voulais juste tester dans tout les cas c'est pas comme si j'avais une chance....

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 103 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