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


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

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


Tu as juste à cliquer sur ce lien : https://www.planet-casio.com/storage/forums/Fxip-197000.g1a pour télécharger le fichier directement
Il était au niveau de ce message : https://www.planet-casio.com/Fr/forums/topic16830-last-fxip-implementation-tcpip-avec-client-irc-et-serveur-web.html#197000
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 !


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

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


Merci bon je le transfere a ma calculette et je te reponds
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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


aie il y a un proble avec le proble c est que ca se lance mais sa crash apres 2 secondes
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 14/04/2024 19:03 | #


Il va nous falloir un peu plus de temps pour corriger ça, soit un peu patient on enverra le g1a ici quand il sera prêt. Ne t'inquiète pas on essaye de faire ça le plus vite possible, on a aussi d'autres choses à faire à côté
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 19:04 | #


En attendant est-ce que tu as vérifié que tu as bien une interface série pour le câble 3-pin 2.5 mm et de quoi faire la config réseau (telle qu'expliquée pour Linux dans le README sur Github) ?
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 19:06 | #


Merci beaucoup! Ca c'est un message que j'aime lire! Quand tu a fini envoie le ici mais si je repond pas envoie le moi en message privés et merci infiniment
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 14/04/2024 19:07 | #


attend moi j'utilise un usb et non je n'ais pas fais la config
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

Citer : Posté le 14/04/2024 19:13 | #


J'ai l'impression que les détails du processus t'échappent pas mal... faire la communication par USB est possible en principe (y'a un driver dans gint) mais ce serait un changement important dans le projet. Si tu n'as pas d'expérience pour comprendre ou modifier le code, pas de SDK, pas de connexion physique appropriée et de config réseau... que j'imagine tu dois faire sous Windows... tes chances de reproduire le travail d'origine et d'héberger un site web sur ta calto sont limitées.

(Ou, dit de façon un peu plus cash : ce projet nécessite que tu comprennes ce que tu fais, sans quoi t'as aucune chance)

Edit : et au passage ça crashe sur ma 35+E II aussi (instantanément) mais je ne sais pas si c'est à cause des versions bizarres de gint avec lesquelles je bosse en ce moment
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 19:14 | #


Ah aucune chance c'est un peu radical donc je dois arreter?
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

Citer : Posté le 14/04/2024 19:15 | #


Bah là tout de suite si t'as pas le câble pour connecter le port 3-pin à ton PC et pas l'expérience pour modifier le code pour utiliser l'USB... y'a clairement un truc qui coince : faut bien connecter la calto au PC d'une façon ou d'une autre.
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 19:23 | #


benh j'utilise le usb et mes connaisances de programation html ,css, js et j'apprend le micropython mais c quoi un 3-pin
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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


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

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


Pour être honnête j'attends de voir si la nature de la tâche se révèle à toi, i.e. le fait que la version publiée de fxIP doit être modifiée sérieusement pour passer par le câble, que fxIP est programmé en langage C avec des outils inhabituels (le fxSDK), et que par conséquent c'est loin d'être trivial.

Genre je sais pas si tu réalises (et je dis pas ça méchamment, c'est pas une évidence) que dans cette affaire le HTML c'est l'ameublement du troisième étage de l'immeuble et que là y'a des difficultés qu'il faut résoudre avec les fondations. Pour rappel, fxIP fait de la calculatrice un noeud du réseau via le PC auquel elle est connectée. Pour l'instant y'a pas de connexion entre la calto et le PC puisque fxIP utilise le port série et que tu n'as probablement pas de câble/port approprié sur ton PC. Pour utiliser l'USB, il faudrait modifier fxIP et sans SDK c'est pas la peine d'y penser.

Donc je comprends pas où tu vas...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Fastgeek Hors ligne Membre Points: 152 Défis: 0 Message

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


Oooouh, intéressant le projet
Bon bien que html et le web m'échappent beaucoup en général, je comprends un peu l'idée

J'ai pensé à un truc similaire récemment, et je me suis demandé si ce serait possible pour la calculatrice d'accéder au wifi via l'ordi, plutôt que d'installer un composant pour le wifi, ce qui serait moins accessible
Donc, est-ce théoriquement possible ?
"Always believe in your dreams, and work hard to achieve them"
FastGeek, a very simple guy

Projet(s) terminé(s) : CRL
Projet(s) en cours :CRLII
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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


Bon bah je crois que je vais abondoner au moins j'aurais essayé...
Lephenixnoir Hors ligne Administrateur Points: 24262 Défis: 170 Message

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


J'ai pensé à un truc similaire récemment, et je me suis demandé si ce serait possible pour la calculatrice d'accéder au wifi via l'ordi, plutôt que d'installer un composant pour le wifi, ce qui serait moins accessible
Donc, est-ce théoriquement possible ?

C'est bien ce qui se passe ici. Ce qui ne dépend pas particulièrement de la WiFi d'ailleurs, la calto accède juste à Internet via l'ordinateur, peut importe si l'ordinateur est connecté en WiFi, en Ethernet, sur un USB ou autre chose encore.
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 20:53 | #


j'espere que un jour ou je serais plus avance je reussirai a le faire
Fastgeek Hors ligne Membre Points: 152 Défis: 0 Message

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


Lephenixnoir a écrit :
C'est bien ce qui se passe ici. Ce qui ne dépend pas particulièrement de la WiFi d'ailleurs, la calto accède juste à Internet via l'ordinateur, peut importe si l'ordinateur est connecté en WiFi, en Ethernet, sur un USB ou autre chose encore.


Ah d'accord, c'est plus que cool alors
Donc bientôt on aura peut-être fortnite en multi sur calto
"Always believe in your dreams, and work hard to achieve them"
FastGeek, a very simple guy

Projet(s) terminé(s) : CRL
Projet(s) en cours :CRLII
Laptopmine Hors ligne Membre Points: 52 Défis: 0 Message

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


xD

je suis sur dans le futur on auras fortnite et google sur des calculatrices a moins que c'est deja possible attender on peux mettre chat gpt en local non?
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????

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