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 » [GNU/Linux] P7, pour des transferts à repasser
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

[GNU/Linux] P7, pour des transferts à repasser

Posté le 22/08/2016 12:13

Le projet est déprécié au profit de Cahute, qui réimplémente p7 et p7screen !
Dans un effort d'adopter un système de build plus moderne, une documentation bien plus complète, des rationales plus simples, et davantage d'éléments de l'écosystème logiciel de CASIO, le projet Cahute a été lancé en février 2024 par l'auteur de P7. Cahute supplante complètement les utilitaires autrefois proposés dans le projet P7, en conservant une interface en ligne de commande compatible.

The project is deprecated in favour of Cahute, which reimplements p7 and p7screen!
In order to adopt a more modern build system, a documentation that is far more complete, simpler rationales, and more elements from CASIO's digital ecosystem, the Cahute project has been in launch in February 2024 by the same author as P7. Cahute completely reimplements the utilities previously distribued with the P7 project, while keeping a compatible command line syntax.

Ce topic est conservé pour des raisons historiques.


Le projet P7 est constitué d'utilitaires de communication destinés à être utilisés avec des calculatrices CASIO fx (Graph). Ces utilitaires permettent d'interagir avec les systèmes de fichiers présents sur la calculatrice (envoi et réception de fichiers, inventaire des fichiers présents sur la calculatrice, copie, suppression, ...), d'afficher l'écran en temps réel, et de sauvegarder/remplacer les composants du système présents sur la machine.

Pour ne pas utiliser les commandes en root (administrateur), n'oubliez pas de faire :
sudo usermod -a -G uucp <votre nom d'utilisateur>
Puis déconnectez-vous/reconnectez-vous (pas besoin de redémarrer votre ordinateur).

Découvrez comment construire, installer et utiliser ces utilitaires ici.
Des notes ici. - Des sources là.
Ceci est un topic pour les annonces, les retours divers (problèmes rencontrés, ...) et les demandes de fonctionnalités.


Pour les réponses, notez que le topic était originellement consacré à l'utilitaire P7, et non au projet, qui n'existait pas à l'époque.



Précédente 1, 2, 3, 4, 5 ··· 10, 11, 12 Suivante
Breizh_craft Hors ligne Modérateur Points: 1171 Défis: 7 Message

Citer : Posté le 12/09/2016 22:14 | #


Je le ferais il y a une heure.

Approximativement.
Breizh.pm – Un adminsys qui aime les galettes.
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 24/09/2016 09:14 | #


Yop,
je continue de bosser sur les prochaines versions pour rendre le protocole plus accessible. J'ai adopté un système qui me permet de mieux détecter l'environnement et ses erreurs, mais il est plus contraignant dans le sens où il m'oblige à hardcoder les différents environnements qui existent.

C'est pour ça que j'ai besoin de vous. Il me faut davantage de modèles pour coller à la réalité. Actuellement, ceux que j'ai sont :

Bootcodes
- Gy362000 : fx-7400GII/fx-9860GII
- Gy363000 : fx-9750GII-2/fx-9860GII(-2) (Graph 75 SH3/SH4)
- Gy490000 : fx-7400GII-2

Autres
- Gy362007 : fx-9750GII-2 (Graph 35+ SH4)
- Gy36200F : Graph 35+E (fx-9750GII-2 modifiée)
- Gy363006 : fx-9860GII (Graph 75 SH3)
- Gy363007 : fx-9860GII-2 (Graph 75 SH4, Graph 95 SH4)
- Gy36300F : Graph 75+E (fx-9860GII-2 modifiée)

Pour obtenir le Hardware ID de votre machine :
- Sous GNU/Linux, la commande p7 info donnera diverses infos - prenez simplement le champ "Hardware ID".
- Sous Microsoft Windows, en fait je sais pas donc faudra compléter ici svp

Si possible, testez en Receive Mode et en OS Update s'il vous plaît. Rappel, pour mettre en OS Update :
- enfoncez reset
- maintenez F2, 4 et AC
- attendez un peu
- relâchez reset
- attendez un peu
- relâchez tout
- appuyez en alternance et moyennement vite sur 9 et sur x

Les IDs sont différents (et sont souvent communs pour plusieurs machines pour l'OS Update d'ailleurs). A l'issue du p7 info en OS Update, si la machine ne redémarre pas toute seule, appuyez simplement sur AC, ça devrait la débloquer.

Merci d'avance
(btw, j'attends d'avoir plus de modèles répertoriés pour faire la prochaine release)
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Hackcell Hors ligne Maître du Puzzle Points: 1532 Défis: 11 Message

Citer : Posté le 24/09/2016 14:17 | #


une graph 35+e avec l'os 2.05, ça t’intéresse (c'est la caltos de ma sœur)
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

Citer : Posté le 24/09/2016 14:30 | #


- Graph 35+ SH3 : "Gy363006" (Receive), "Gy362000" (OS Update)
- Graph 35+ SH4 : "Gy363007" (Receive), "Gy363000" (OS Update)
- Graph 75+E SH4 : "Gy36300F" (Receive), "Gy363000" (OS Update)


Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1532 Défis: 11 Message

Citer : Posté le 24/09/2016 15:30 | #


Warning: Preprogrammed ROM information looks wiped out !
Warning: Bootcode information looks wiped out !
ROM capacity : 16534000o
RAM capacity : 1298o
OS version : 02.05.34
OS type : "01"
OS offset : 0x010000
OS size : 9266o
Protocol version : 7.00
Product ID : "TSQcFPZL"
Username : "(prénom de ma soeur)"
Hardware ID : "Gy36200F"
CPU ID : "RENESAS SH735501"
voila sans le mode os update

Ajouté le 24/09/2016 à 15:32 :
Warning: Preprogrammed ROM information looks wiped out !
Warning: Bootcode information looks wiped out !
ROM capacity : 16534000o
RAM capacity : 1431655752o
OS version : 00.16.35
OS type : "00"
OS offset : 0x010000
OS size : 9266o
Protocol version : 7.00
Product ID : ""
Username : ""
Hardware ID : "Gy363000"
CPU ID : "RENESAS SH735501"
et avec le os update
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 24/09/2016 16:12 | #


Merci à vous deux, les modèles sont ajoutés ! J'ai contacté d'autres personnes aussi, j'attends les résultats. N'hésitez pas à poster des modèles que je n'aurais pas encore (liste dans mon précédent post sur ce topic)
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

Citer : Posté le 24/09/2016 17:17 | #


Cakeisalie5 a écrit :
- Gy36300F : Graph 75+E (fx-9860GII-2 modifiée)

Non, c'est une vraie Graph 75+E (je l'aurais dit sinon).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 24/09/2016 17:18 | #


Je sais bien que c'est une vraie, c'est juste pour dire que la Graph 75+E est une fx-9860GII-2 modifiée par CASIO pour intégrer le mode examen.

Ajouté le 06/10/2016 à 15:03 :
Petit message histoire de dire que le projet n'est pas mort, loin de là.

La version 2.0 de la lib, c'est pour bientôt.
Pour ceux que ça intéresse, la lib "réduit" un peu son rôle : au lieu d'être un gros truc auquel on fait appel pour créer la connexion et communiquer, elle ne se charge plus que de la communication (encodage et décodage de paquets). C'est au programme utilisateur de créer la connexion.

Comme je pense principalement pour GNU/Linux (parce que UNIX c'est quand même bien foutu), j'ai ré-adapté la lib pour favoriser l'usage de drivers (que j'apprends à faire). Donc a priori, on devrait avoir /dev/cfx0 un jour. D'ailleurs, la lib est plus ou moins prête, j'attends vraiment d'avoir fini le driver (et d'avoir fait quelques tests, évidemment) pour release le tout.

Cela ne ferme pas pour autant la porte à un portage, au contraire : il suffit de refaire un driver sous MS-Windows (voire ré-utiliser le made-in-Casio ?) ou de ré-utiliser un filestream custom utilisant libusb dans votre programme utilisateur (ce qui était fait dans la version 1.5 de la lib). Voici un exemple.

Aussi, comme on m'a fait penser à tout ce qui est multi-threading, tout ça s'utilise avec un handle désormais (et pas avec des variables globales comme avant).

Besides, je continue de bosser sur l'OS Update et l'Update.Exe communautaire (qui n'en est franchement pas loin, il manque des composants clés pour vraiment commencer), mais ne l'attendez pas pour tout de suite.

Aussi, je prends toujours les modèles, donc si vous avez une calculatrice non listée, n'hésitez pas à tester avec P7 1.4 ou autre.
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 06/10/2016 15:38 | #


Bonne nouvelle de voir que ça avance !
Que veux tu dire par "C'est au programme utilisateur de créer la connexion" ?
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 06/10/2016 15:42 | #


En fait, la lib prend un FILE* qu'elle va utiliser pour lire et écrire.
Les FILE*, on peut les utiliser de plein de façons, mais principalement de ces deux-là :
- En faisant simplement fopen("/dev/cfx0", "r+"); ;
- En posant tout un stream perso comme ce que j'ai fait dans l'exemple (également utile pour tester la lib et ses réactions).

C'est pas un petit sujet les streams
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Critor Hors ligne Administrateur Points: 2687 Défis: 18 Message

Citer : Posté le 21/11/2016 02:05 | #


Superbe projet !

Pas de nouvelle valeur à date, mais en testant plein de combinaisons d'OS 1.00-2.09 sur une 10aine de machines différentes pendant des heures, j'apporte maintenant quelques précisions.

Sur l'écran "OS Error" :
- Gy362000 : Graph 35+/75/95 SH3
- Gy363000 : Graph 35+/75/95 SH4
- Gy363000 : Graph 35+E/75+E

En "Receive mode" :
- Gy362006 : Graph 35+/75/95 SH3 + OS Graph 35+ 2.00-2.01
- Gy362007 : Graph 35+/75/95 SH4 + OS Graph 35+ 2.02-2.09
- Gy362007 : Graph 35+E/75+E + OS Graph 35+ 2.02-2.04
- Gy36200F : Graph 35+E/75+E + OS Graph 35+ 2.05-2.09
- Gy363006 : Graph 35+/75/95 SH3 + OS Graph 75/95 2.00-2.01+2.04+2.08
- Gy363007 : Graph 35+/75/95 SH4 + OS Graph 75/95 2.02-2.09
- Gy363007 : Graph 35+E/75+E + OS Graph 75/95 2.02-2.04
- Gy36300F : Graph 35+E/75+E + OS Graph 75/95 2.05-2.09

Maintenant ce qui n'a pas marché :

Graph 25+/25+E : pas de communication
J'utilise ce câble qui marche avec fxRemote :
http://www.util-pocket.biz/catalog/product_info.php?cPath=104&products_id=122

Graph 85 & fx-9860G Slim :
Pas de communication en "receive mode", même pas avec un OS 2.0x de Graph 35+/75 SH3.
Pas de communication sur l'écran "OS Error" non plus.

Graph 35+/75/95 SH3 + OS Graph 85 1.00-1.05 : pas de communication en "receive mode"
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 21/11/2016 08:06 | #


Thanks Critor ! En l'occurrence, P7 utilise une combinaison de VendorID/ProductID bien précise que si les appareils ne suivent pas, P7 ne reconnaîtra pas, donc les appareils manquants ne doivent pas utiliser le même que ma calculatrice. x)

En l'occurrence, si tu le veux bien, voici la procédure pour retester les calculatrices qui ont raté :
1/ Avant de brancher la calculatrice, fais un lsusb, puis une fois branchée, refais la commande : une ligne devrait avoir apparu. Cette ligne est de la forme :

Bus xxx Device xxx: ID [b]VVVV:PPPP[/b] ???


VVVV correspond au VendorID en hexadécimal et PPPP au ProductID donnés par la machine. D'après la liste officielle des devices USB gérés par Linux, la combinaison 07cf:6102 est également utilisée pour les Classpads (je les veux bien aussi stp ).

Une fois cette combinaison obtenue, procures-toi la source de la libp7 version 1.5, et avant de suivre les instructions pour la construire, va dans src/core/init_usb.c. Lignes 20 et 21, je définis le VendorID et le ProductID que ma lib va rechercher : pour tester une nouvelle combinaison, il faudra modifier ces champs, puis make && sudo make install. Pas besoin de reconstruire p7 en lui-même, puisque la libp7 est une lib dynamique

Il faudra faire ça pour chacun des devices pour lequel ça n'a pas marché (enfin, à chaque fois que tu veux changer la combinaison VendorID/ProductID que la libp7 va rechercher pour communiquer avec la calculatrice). Bien évidemment, pas besoin de retélécharger les sources à chaque fois, tu peux reprendre du même dossier à chaque fois pour modifier la combinaison, reconstruire et réinstaller

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


Mon blogMes autres projets
Critor Hors ligne Administrateur Points: 2687 Défis: 18 Message

Citer : Posté le 21/11/2016 14:30 | #


Bonjour.


Désolé, je n'ai apparemment pas été assez clair quand je mettais "pas de communication".
Le "p7 info" dans ce cas ne me sort pas calculatrice introuvable.
Au contraire, il attend indéfiniment sans rien sortir...
A mon sens, c'est donc un cas particulier du protocole qui n'est pas géré correctement.

Je réponds quand même pour les ID USB :
07CF 6101 : Graph 35+/75/85/95 & fx-9860G Slim & Classpad 330
07CF 6102 : ClassPad 330+ & fx-CG20 & fx-CP400 & fx-CP400+E
0BDA 5606 : câble Util-Pocket

En gros, les 07CF 6102 ce sont les modèles qui, sous l'OS, se font passer pour des périphériques de stockage USB, et que l'on ne peut donc pas tester en USB en "Receive mode".

La fx-CG20 retourne le même ID 07CF 6102 à l'écran "OS Error".


Pas pu obtenir les Hardware ID des fx-CG20 (écran "OS Error") et Classpad 330 (receive mode).
Même problème qu'avec les Graph 85, fx-9860G Slim, et Graph 35+/75/95 avec OS 1.00-1.05 : "p7 info" ne sort rien et reste coincé - même un Ctrl+C ne le tue pas - jusqu'à-ce que l'on débranche l'USB (où il met alors un "calculator didn't act as expected...").
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 21/11/2016 14:41 | #


J'ai justement prévu le logging de la lib au cas où : tu peux configurer la lib pour afficher le logging de ce qu'elle fait, pour cela, il te suffit de faire : ./configure --loglevel=info

Si la lib est déjà construite, tu peux faire make re pour la reconstruire, sinon, un simple make suffit. Une fois la lib reconstruite installée, p7 info devrait être beaucoup plus bavard

(Astuce Linux : tu peux faire p7 info 2>&1 | tee p7_error.log pour mettre l'erreur dans un fichier et l'afficher en même temps )

EDIT: Btw, en croisant ce que j'avais et ce que tu as apporté, j'ai ça du coup :
https://bible.planet-casio.com/cakeisalie5/docs/models.html

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


Mon blogMes autres projets
Critor Hors ligne Administrateur Points: 2687 Défis: 18 Message

Citer : Posté le 25/11/2016 22:25 | #


Quelques petites erreurs, et je ne suis pas sûr de bien comprendre le sens du mot "modified".
Si ça veut dire Graph 35+ transformée en Graph 75, en tous cas ça ne colle pas.

Mais sinon, je trouve cette présentation assez complexe, au sens ou en plus des erreurs elle gomme toute logique.


Pourtant les règles sont très simples :

OS Error :
Gy362000 = SH3
Gy363000 = SH4

Receive Mode :
Gyxxx006 = SH3
Gyxxx007 = SH4
Gyxxx00F = SH4 + OS>=2.05
Gy362xxx = OS Graph 35+
Gy363xxx = OS Graph 75/95
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 25/11/2016 22:44 | #


"modified" veut dire que Casio a modifié un modèle pour en obtenir un autre (et en l'occurrence, j'ai mis ça parce qu'il n'y a pas d'équivalent international des modèles examen).

Aussi, le modèle P7 semble entièrement déterminé par le bootcode (ma calto SH4 tweakée en OS 2.05 est en Gy36x007)... enfin, sauf le cinquième chiffre du coup Oo (puisqu'il a changé, il me semble, faudra que je revérifie).

Après, pour la logique :
- Les modèles en Gyxxx00F ne sont que les OS avec mode examen apparemment ;
- Je considère n'avoir pas suffisamment de modèles pour établir des règles générales (puisqu'il me manque encore des cas), donc je fais encore au cas par cas.

(ah, et du coup, je t'avais envoyé des instructions pour les Graph 25(+E) par MP sur TI-Planet, j'attends ta réponse )
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Critor Hors ligne Administrateur Points: 2687 Défis: 18 Message

Citer : Posté le 25/11/2016 22:53 | #


Ok pour le modified.


Gyxxx00F, c'est l'une des imprécisions de la doc.

Les modèles Graph 35/75+E retournent :
Gyxxx00F si ils font tourner un OS 2.05-2.09
Gyxxx007 si ils font tourner un OS 2.02-2.04


Quand au reste, je suis en train de rafraîchir ma machine Linux, ce qui nécessite du temps et n'était pas possible pendant la semaine.
Est-ce que je dois désinstaller les packages avant de recompiler la bibliothèque ?
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 25/11/2016 23:00 | #


Tu as essayé de mettre un OS de version différente sur les caltos pour voir si ça fait varier le modèle P7 ? à savoir un OS 2.02-2.04 sur une machine avec un OS 2.05-2.09 et inversement

Je met à jour la documentation avec les trouvailles du coup.

En l'occurrence pour les tests avec les Graph 25(+E), ce sont les utilitaires 2.x qui gèrent les char devices correctement (donc non plus exclusivement l'USB comme avant), donc yep, faudrait désinstaller les packages et vraiment clôner depuis les dépôts git avec les commandes que je t'ai envoyé
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Critor Hors ligne Administrateur Points: 2687 Défis: 18 Message

Citer : Posté le 25/11/2016 23:02 | #


Oui j'ai fait toutes les combinaisons possibles comme décrit plus haut


Et ce qui en ressort c'est ça :
xxx007 -> processeur SH4
xxx00F -> processeur SH4 + diode + OS>=2.05

Je résume mes résultats avec ce genre de règles, sinon je n'image pas la longueur de mon post. J'y ai vraiment passé des heures.

Une Graph 35+USB/75/75+ avec OS>=2.05 retourne xxx007.
Une Graph 35+E/75+E avec OS<2.05 retourne aussi xxx007.
Cakeisalie5 Hors ligne Ancien administrateur Points: 1964 Défis: 11 Message

Citer : Posté le 25/11/2016 23:40 | #


Hello, personne motivée ! Merci d'être venu ici. Sur ce post, je présente mes outils de transfert avec les calculatrices CASIO, qui est encore en cours de développement, je présente les avancées et je demande occasionnellement de l'aide. On n'en est (malheureusement) pas encore au point où on dispose d'un fxRemote sous GPL et sous GNU/Linux, mais on avance, et tu peux nous y aider ! Nous avons une théorie à valider (ou non), et ce matériel très préçis est requis.

Commence par télécharger, construire et installer les outils requis, à savoir la libp7 et p7 : cette page explique comment. Une fois ceci fait :
- mets ta calculatrice en Receive Mode, branches-la en USB à ton PC sous GNU/Linux avec p7 dessus, et tapes la commande suivante : p7 info.
- mets ta calculatrice en OS Update (le tutoriel de tweak peut t'y aider), branches-la en USB à ton PC sous GNU/Linux avec p7 dessus, et tapes la même commande : p7 info.

Postes le résultat des deux commandes en réponse à ce topic. Merci d'avance !
Respirateur d'air, BDFL de Cahute, des utilitaires de communication pour calculatrices CASIO.


Mon blogMes autres projets
Critor Hors ligne Administrateur Points: 2687 Défis: 18 Message

Citer : Posté le 26/11/2016 01:44 | #


J'y repense.

Sur mes Graph 35+E/75+E qui venaient préchargées avec l'OS 2.05, j'obtiens :
Gyxxx007 avec les OS 2.02-2.04
Gyxxx00F avec les OS 2.05-2.09

Donc le triplet final n'est visiblement pas lié au Boot Code puisqu'à ce jour on ne peut pas le changer.
Selon moi, l'OS vérifie donc autre chose...
Précédente 1, 2, 3, 4, 5 ··· 10, 11, 12 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 105 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