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 » WebP7, pour une énième solution de transfert à cheval entre les platformes
Neiviv-ui Hors ligne Membre Points: 29 Défis: 0 Message

WebP7, pour une énième solution de transfert à cheval entre les platformes

Posté le 06/08/2021 16:23

C'est plus ou moins une bibliothèque JS servant à effectuer des transferts (ou autre commandes disponibles à travers le protocole p7) vers la calculatrice, utilisant l'API webUSB.

Les sources (sur la forge)

Choses à noter:
Je suis conscient que ça ne va probablement pas servir à grand chose puisque les nouvelles calculatrices utilisent des protocoles standards et que je crois avoir lu quelque part que maintenant que le module USB avait été rétro-ingénié (?), l'abstraction de BFile était la seule limite à la création d'une application de transfert utilisant ces fameux protocoles standards sur les calculatrices ne les utilisant pas ; sans oublier le fait que l'outil en ligne de commande est plus complet (pour l'instant), plus simple d'utilisation (probablement pour toujours au vu de mes aptitudes en CSS pour faire des interfaces sympas ⇒ raison pour laquelle j'oriente le projet vers une bibliothèque plutôt que vers un site ou une page WEB en tant que tel), et surtout plus rapide (en oubliant le fait que je n'ai pas implanté cette histoire d'envoi de paquets deux à deux dont je n'ai clairement pas saisi toutes les subtilités).


La totalité des commandes (dans le mode "classique", c'est à dire hors OS Update) n'a pas été implémentée et les mécanismes internes méritent quelques améliorations.


Même si j'ai dit que c'était à cheval entre les plateformes (notez ce magnifique jeu de mots digne des plus grands ), c'est faux, laissez moi vous expliquer :

L'idée de base était de faire un portage de P7 pour Android, qui viendra peut-être un jour, vu la simplicité de la chose (ce qui me fait d'ailleurs penser @Lephenixnoir que je n'oublie pas cette idée de portage de la suite sh-elf* pour Android, un jour ou l'autre, ça viendra...).
Mais je me suis souvenu que Numworks utilisait pour les mises à jours des calculatrices clients des pages WEBs, que j'avais déjà testé sur mon téléphone et qui fonctionnait. De là me vint l'idée de reproduire la même chose sur calculatrice (le projet devait même permettre la mise à jour du système d'exploitation, chose qui est dorénavant au point mort, après avoir lu l'avis de @Cakeisalie5 sur le sujet), et c'est ainsi que je me suis embarqué la-dedans, en ce *magnifique* mois de Juillet.

- Au dernières nouvelles, le projet fonctionne parfaitement sur Linux, voire normalement n'importe quel OS Unix (donc Android inclus, et comme j'aime bien le dire : ça, c'est carré dans l'axe), à voir MacOS (9 chances sur 10 que ça ne marche pas, quel plaisir ces problèmes de compatibilité mdr), du moment que le navigateur supporte webUSB (navigateur basé sur Chromium, Opéra (?), ou la nouvelle version de Edge (qui du coup est basé sur Chromium ?), mais pas Firefox ).

- Côté Windows... marche pas : théoriquement ça peut fonctionner, je me suis pas trop renseigné mais si j'ai bien compris, l'énumération des appareils pose problème, et ça à priori, sans installer de pilote(s) (genre Zadig qui permet de lister les appareils, mais ne fonctionne pas au moment de l'envoi des données, à creuser...), ça ne se corrige pas, ce qui est contraire à la volonté de base qui était de faire une interface simple, pour des gens simples, qui fonctionne directement ('Out-of-the-box', n'est-ce pas ?). En même temps chez Numworks ça fonctionne, mais je crois que c'est au moment de l'envoi des descripteurs que la calculatrice ajoute un champ avec les détails du pilote, hors on ne peut pas le contrôler (?).

Bien évidemment je voudrais remercier Simon Lothar et Andreas Bertheussen pour leur documentation, ainsi que @Cakeisalie5 pour son utilitaire sur lequel je me suis parfois basé (plus précisément j'ai récupéré un ou deux commentaires que je trouvais biens, si ça pose problème je les retirerai, ainsi que la structure des fonctions internes, même si ce n'était pas parti pour au début).

À part ça je me suis dit que je devrais faire comme tout le monde, c'est-à-dire ajouter une licence, mais je ne sais pas comment ça fonctionne juridiquement donc je suis moyennement chaud, de toute façon je ne vois pas qui irait voler un code pareil, et même si je mettais une licence, dans les grandes lignes elle ressemblerait à ça :
Ma licence imaginaire dans les grandes lignes a écrit :
C'est moi l'auteur,
vous pouvez faire ce que vous voulez avec le code.


Ce qui m'amène au dernier point de l'article : Désolé pour la qualité du code, je suis pas un monstre du JS et du haut-niveau en général (en fait je n'ai jamais fait de haut-niveau, excepté bien sûr du Python lors de ces excellents cours de SNT imposés en seconde et du Bash, mais bon le Bash...), quoique si on considère que le C est haut-niveau, je n'ai pas d'excuses, à part que mon niveau en tant que développeur C casse pas des briques (casse pas trois pattes à un canard si vous préférez). Bref...

Voilà, voilà... Comme d'habitude toute remarque est bonne à prendre .


Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 06/08/2021 16:35 | #


Il est où le code surtout
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Neiviv-ui Hors ligne Membre Points: 29 Défis: 0 Message

Citer : Posté le 06/08/2021 16:51 | #


Ah oui mdr sur la forge.

D'ailleurs je viens de voir que j'ai mis que les boutons étaient déconnectés, mais en fait c'est juste que tout les résultats sont dans la console, encore une chose à corriger.
En gros pour envoyer un fichier faut d'abord connecter la calculatrice, attendre qu'il y ait marqué "Done." et ensuite sélectionner le fichier que l'on veut envoyer, qui sera envoyé dans la mémoire flash (fls0), à la racine.
Cakeisalie5 Hors ligne Ancien administrateur Points: 1960 Défis: 11 Message

Citer : Posté le 06/08/2021 17:05 | #


L'idée est intéressante, mais webUSB a l'air d'avoir des soucis :

- Considéré comme un risque de sécurité par un nombre conséquent de développeurs (sources)
- Encore en brouillon (source).
- Disponible dans Chrome uniquement (pour les raisons ci-dessus), pour une durée indéterminée (l'API a déjà été retirée et réimplémentée une fois).

Mais c'est de ce que j'en trouve.
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Neiviv-ui Hors ligne Membre Points: 29 Défis: 0 Message

Citer : Posté le 06/08/2021 17:28 | #


Je réfléchis vraiment pas assez quand je me lance dans des trucs

Après je te fais confiance sur les infos, j'avais aussi vu la partie risque de sécurité, mais bon...
Pour le côté un peu velléitaire de la technologie c'est sûr que ça ne met pas en confiance. Par contre la limitation à Chrome vu que ça s'applique aussi à ces dérivés (après vérification ça comprend bel et bien Opéra et Edge, ainsi que Chromium et les basés-sur-chromium (Brave, Vivaldi...) c'est moins problématique . Même si je comprends bien que pour les amoureux d'Internet Explorer (il y en a vraiment ?) ou de Firefox...

De même je n'ai aucune connaissance technique sur le sujet donc c'est à prendre avec des pincettes.
Cakeisalie5 Hors ligne Ancien administrateur Points: 1960 Défis: 11 Message

Citer : Posté le 26/10/2024 15:39 | #


Hey, au passage, vu que j'ai vu que tu as fait un commit sur le projet aujourd'hui, depuis j'ai écrit une vraie doc sur les protocoles que tu peux potentiellement citer au lieu de l'utilitaire p7


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


Mon blogMes autres projets

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