Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [GNU/Linux] P7, pour des transferts à repasser
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

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

Posté le 22/08/2016 12:13

Ces utilitaires ne sont actuellement disponibles que sur GNU/Linux !
La cross-compilation vers MS-Windows est en cours de préparation ; seulement, il y a pas mal de détails à régler,
notamment la manière de gérer les appareils série. Donc c'est pas pour tout de suite.


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.


Pages : Précédente1, 2, 3, 4, 5, 6, 7Suivante
Matt36230Hors ligneMembrePoints: 1868 Défis: 0 Message

Citer : Posté le 12/03/2017 11:37 | #


J'ai bel et bien asciidoc d'installer mais j'ai toujours une erreur

onytis@Matt-Omen /tmp/p7utils-3.0 $ ./configure --no-manpages
--no-manpages: didn't read
Configuration loaded, you can make now.
onytis@Matt-Omen /tmp/p7utils-3.0 $ make && sudo make install
> mkdir obj/p7
> cc obj/p7/args.o
> cc obj/p7/dump.o
> cc obj/p7/main.o
> ld p7
> mkdir man/man1
> a2x doc/p7.1.txt
Makefile:217 : la recette pour la cible « man/man1/p7.1 » a échouée
make: *** [man/man1/p7.1] Erreur 1

Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 12/03/2017 11:38 | #


Autant pour moi, j'avais pas fait cette option-là. Fais directement make all-p7 all-p7screen && sudo make install-p7 all-p7screen.

Ajouté le 06/04/2017 à 17:37 :
J'avance, et je gère beaucoup mieux les câbles série sous GNU/Linux qu'avant. Aussi, à l'utilitaire p7, j'ai rajouté la sous-commande idle (pratique lorsqu'on veut initialiser/sortir d'une série de commandes en --no-init/--no-exit), et les options avancées --use <settings> et --set <settings>, qui permettent de définir une même vitesse pour une série de commandes. Voici tout ça en application :

p7 idle --no-exit --set 115200E2 --com /dev/ttyUSB1
p7 send -f# addin0.g1a --com /dev/ttyUSB1 --use 115200E2 --no-init --no-exit
p7 send -f# addin1.g1a --com /dev/ttyUSB1 --use 115200E2 --set 19200N1 --no-init --no-exit
p7 idle --no-init --use 19200N1 --com /dev/ttyUSB1

Pour simplement envoyer un fichier plus vite, vous pouvez bien entendu faire :

p7 send -f# file.txt --com /dev/ttyUSB1 --set 115200N1

Par défaut, les settings utilisés (--use) sont les plus communs parmi les appareils utilisant le Protocole 7.00 : 9600N2. En prime, voici l'aide actuelle de p7.
A noter que tout cela ne marche pas encore sous Microsoft Windows. Quiconque souhaitant défendre sa plateforme, ou quiconque étant doté d'un altruisme incroyable, est invité à se lancer.

Ajouté le 07/04/2017 à 16:36 :
Par contre, j'en profite pour dire que même si je supporte le SB-88A, je conseille *vraiment* le câble d'Util-Pocket, qui en plus d'être meilleur, est moins cher de trente euros.
En effet, à 115200 bauds, vitesse la plus grande qu'une Graph 75+E supporte (donc probablement les autres aussi), si vous échangez des données pendant trop longtemps à cette vitesse-là, le SB-88A plante, alors qu'avec le câble d'Util-Pocket sus-cité, aucun problème. Je vais enquêter pour voir si je peux corriger ça, mais en attendant, voilà.

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
HackcellHors ligneMembrePoints: 1150 Défis: 10 Message

Citer : Posté le 07/04/2017 22:45 | #


Pourquoi as tu besoin du câble d'util pocket?
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 08/04/2017 00:29 | #


Je n'ai jamais dit que j'en avais besoin, j'ai juste dit qu'il marchait bien mieux que le SB-88A (le câble officiel de CASIO).

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
HackcellHors ligneMembrePoints: 1150 Défis: 10 Message

Citer : Posté le 08/04/2017 14:22 | #


Ha, d'accord. Sinon tu peux en bidouiller un avec une arduino, ça evite d'acheter un cable si tu à déjà le matos
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 11/04/2017 19:30 | #


Tu es peut-être capable de te bidouiller un câble, mais tout le monde ne l'est pas (moi par exemple, je ne le suis pas).
Sinon, parce que ça peut aider des gens : si vous n'avez pas le driver du SB-88A, c'est ICI (driver pour XP/Vista/7/8). Marche dans ma VM sous XP.

Ajouté le 14/04/2017 à 12:41 :
Fun fact : accidentellement, j'ai chopé un représentant de quasi tous les protocoles utilisés par CASIO sur ses calculatrices. Ce qui m'est super utile pour le projet, du coup.


Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 21/06/2017 20:33 | # | Fichier joint


Ça faisait un moment que l'organisation du projet P7 me taraudait. Entre la libp7 et la libg1m, pas mal de structures étaient communes, et il commençait à y avoir des dépendances circulaires entre les deux, du coup, j'ai commencé il y a quelques semaines le regroupement de ces deux bibliothèques en une seule, au nom explicite : la libcasio.



Cette bibliothèque centralisera tout ce qui concerne la gestion des protocoles et formats de fichiers liés aux calculatrices CASIO. Son développement est déjà bien avancé, et elle commence déjà à rendre ses premiers résultats, même si certains éléments restent à mettre au propre, comme par exemple l'abstraction "système de fichiers", qui couvrira autant le filesystem local (Linux, Windows, Bfile) que les filesystems distants (Protocole 7.00, Graph 100, et éventuellement SCSI avec les Prizm-like).

Donc actuellement, les éléments du projet P7 sont les p7utils (qui ne sont mis à jour que localement pour le moment), la libcasio et la libfontcharacter/refc (sur lesquels la libcasio repose, mais qui ont *vraiment* besoin d'être améliorés...). Le site est encore celui de la release 3.0 de p7/libp7, j'ai un autre site en local construit avec Jekyll décrivant la structure actuelle du projet, mais comme tout ça n'est pas release, je préfère laisser le site de la release, pour les gens qui veulent un utilitaire de communication pour leur calculatrice CASIO dans l'immédiat, et qui ne veulent donc pas tomber sur un site avec des utilitaires en développement.

Qu'en pensez-vous ? Devrais-je changer le site, ou le laisser tel quel en attendant la release (qui l'air de rien, notamment à cause du manque de contributions de la libfontcharacter/refc, ne sera pas pour tout de suite) ?

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
LephenixnoirHors ligneAdministrateurPoints: 16097 Défis: 140 Message

Citer : Posté le 21/06/2017 21:42 | #


C'est gentil de penser à nous donner des infos pour qu'on s'y retrouve. Mine de rien avec les bribes sur le chat on ne comprend pas grand-chose à la structure du projet. :3

Mets les deux sites en ligne, celui de la release de p7 3.0 par défaut avec un lien vers l'autre. Ça te simplifiera la vie pour la communication sur le projet en développement.
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 22/06/2017 01:53 | #


Voilà ce que ça donne pour le moment. J'attends Dark Storm pour le souci de design avant d'ajouter le lien depuis le site principal
https://p7.planet-casio.com/indev/index.fr.html


Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Dark stormHors ligneMembre d'honneurPoints: 10832 Défis: 176 Message

Citer : Posté le 22/06/2017 12:24 | #


Cakeisalie5 a écrit :
J'attends Dark Storm pour le souci de design avant d'ajouter le lien depuis le site principal

J'ai quoi à voir dans l'histoire ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
TheprogHors ligneMembrePoints: 1447 Défis: 20 Message

Citer : Posté le 01/08/2017 14:35 | #


J'ai une erreur lors de la compilation (sous xubuntu):
john@PC-VIEUX:/tmp/p7-packaging$ make -C libp7
make : on entre dans le répertoire « /tmp/p7-packaging/libp7 »
Downloading the tarball...
######################################################################## 100,0%
Unpacking...
Building Debian package...
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: paquet source libp7
dpkg-buildpackage: version source 3.0
dpkg-buildpackage: distribution source stable
dpkg-buildpackage: source changé par Thomas Touhey <thomas@touhey.fr>
dpkg-source --before-build libp7-3.0
dpkg-buildpackage: architecture hôte amd64
fakeroot debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
    make -j1 clean
make[1] : on entre dans le répertoire « /tmp/p7-packaging/libp7/libp7-3.0 »
> Removing object directory.
> Removing the library.
> Removing manpages directory.
make[1] : on quitte le répertoire « /tmp/p7-packaging/libp7/libp7-3.0 »
   dh_clean
dpkg-source -b libp7-3.0
dpkg-source: avertissement: aucun format source indiqué dans debian/source/format, voir dpkg-source(1)
dpkg-source: info: utilisation du format source « 1.0 »
dpkg-source: info: construction de libp7 dans libp7_3.0.tar.gz
dpkg-source: info: construction de libp7 dans libp7_3.0.dsc
debian/rules build
dh build
   dh_testdir
   dh_update_autotools_config
   dh_auto_configure
    ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking
--build=x86_64-linux-gnu: didn't read
--infodir=${prefix}/share/info: didn't read
--localstatedir=/var: didn't read
--disable-silent-rules: didn't read
--libexecdir=${prefix}/lib/x86_64-linux-gnu: didn't read
--disable-maintainer-mode: didn't read
--disable-dependency-tracking: didn't read
Configuration loaded, you can make now.
   dh_auto_build
    make -j1
make[1] : on entre dans le répertoire « /tmp/p7-packaging/libp7/libp7-3.0 »
> mkdir obj/core
> cc obj/core/devices.o
> cc obj/core/_init.o
> cc obj/core/init.o
> cc obj/core/log.o
> cc obj/core/stream.o
> cc obj/core/strerror.o
> cc obj/core/version.o
> mkdir obj/packet
> cc obj/packet/ack.o
> cc obj/packet/command.o
> cc obj/packet/data.o
> cc obj/packet/recv.o
> cc obj/packet/send.o
> cc obj/packet/special.o
> mkdir obj/protocol
> cc obj/protocol/backup.o
> cc obj/protocol/copy.o
> cc obj/protocol/createdir.o
> cc obj/protocol/delete.o
> cc obj/protocol/getfreemem.o
> cc obj/protocol/getscreen.o
> cc obj/protocol/list.o
> cc obj/protocol/optimize.o
> cc obj/protocol/request.o
> cc obj/protocol/reset.o
> cc obj/protocol/send.o
> cc obj/protocol/sendexe.o
> cc obj/protocol/server.o
> mkdir obj/stream
> cc obj/stream/file.o
> cc obj/stream/libusb.o
> cc obj/stream/streams.o
> cc obj/stream/tty_usb.o
> cc obj/stream/windows.o
> mkdir obj/utils
> cc obj/utils/ascii.o
> cc obj/utils/checksum.o
> cc obj/utils/escape.o
> cc obj/utils/filebuffer.o
src/utils/filebuffer.c: In function ‘p7_filebuffer_read’:
src/utils/filebuffer.c:28:2: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
  fread(dest, size, 1, f);
  ^
> cc obj/utils/validate.o
> ld libp7.so.3
> mkdir man/man1
> a2x doc/libp7-config.1.txt
> mkdir man/man3
> a2x doc/p7_request.3.txt
> a2x doc/p7_init.3.txt
> a2x doc/p7_list.3.txt
> a2x doc/p7_backup_boot.3.txt
> a2x doc/p7_getscreen.3.txt
> a2x doc/p7_optimize.3.txt
> a2x doc/p7_delete.3.txt
> a2x doc/libp7.3.txt
> a2x doc/p7_createdir.3.txt
> a2x doc/p7_error.3.txt
> a2x doc/p7_sendfile.3.txt
> a2x doc/p7_sendexe.3.txt
> a2x doc/p7_buffer.3.txt
> a2x doc/p7_getfreemem.3.txt
> a2x doc/p7_strerror.3.txt
> a2x doc/p7_copy.3.txt
> a2x doc/p7_sinit.3.txt
> a2x doc/p7_reset.3.txt
make[1] : on quitte le répertoire « /tmp/p7-packaging/libp7/libp7-3.0 »
   dh_auto_test
fakeroot debian/rules binary
dh binary
   dh_testroot
   dh_prep
   dh_auto_install
    make -j1 install DESTDIR=/tmp/p7-packaging/libp7/libp7-3.0/debian/tmp AM_UPDATE_INFO_DIR=no
make[1] : on entre dans le répertoire « /tmp/p7-packaging/libp7/libp7-3.0 »
> Installing the configuration tool.
> Installing the pkg-config configuration.
> Installing the library.
> Linking libp7.so to libp7.so.3.
> Installing development files.
> Installing manpages section 1.
> Installing manpages section 3.
make[1] : on quitte le répertoire « /tmp/p7-packaging/libp7/libp7-3.0 »
   dh_install
   dh_installdocs
   dh_installchangelogs
   dh_installman
   dh_perl
   dh_link
   dh_strip_nondeterminism
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
   dh_installdeb
   dh_gencontrol
dpkg-gencontrol: avertissement: champ Depends du paquet libp7-3-dev : variable de substitution inconnue ${shlibs:Depends}
dpkg-gencontrol: avertissement: champ Depends du paquet libp7-3-doc : variable de substitution inconnue ${shlibs:Depends}
   dh_md5sums
   dh_builddeb
dpkg-deb : construction du paquet « libp7-3 » dans « ../libp7-3_3.0_amd64.deb ».
dpkg-deb : construction du paquet « libp7-3-dev » dans « ../libp7-3-dev_3.0_amd64.deb ».
dpkg-deb : construction du paquet « libp7-3-doc » dans « ../libp7-3-doc_3.0_all.deb ».
dpkg-genchanges  >../libp7_3.0_amd64.changes
dpkg-genchanges: inclusion du code source original dans l'envoi (« upload »)
dpkg-source --after-build libp7-3.0
dpkg-buildpackage: envoi complet ; paquet Debian natif (inclusion du code source complet)
Now running lintian...
E: libp7 changes: bad-distribution-in-changes-file stable
W: libp7 source: out-of-date-standards-version 3.9.6 (current is 3.9.7)
Finished running lintian.
make : on quitte le répertoire « /tmp/p7-packaging/libp7 »


john@PC-VIEUX:/tmp/p7-packaging$ sudo make -C libp7 install
[sudo] Mot de passe de john :
make : on entre dans le répertoire « /tmp/p7-packaging/libp7 »
(Lecture de la base de données... 236914 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de libp7-3-dev_3.0_amd64.deb ...
Dépaquetage de libp7-3-dev (3.0) sur (3.0) ...
Préparation du dépaquetage de libp7-3-doc_3.0_all.deb ...
Dépaquetage de libp7-3-doc (3.0) sur (3.0) ...
Préparation du dépaquetage de libp7-3_3.0_amd64.deb ...
Dépaquetage de libp7-3:amd64 (3.0) sur (3.0) ...
Paramétrage de libp7-3-doc (3.0) ...
Paramétrage de libp7-3:amd64 (3.0) ...
Paramétrage de libp7-3-dev (3.0) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.5-1) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.23-0ubuntu9) ...
make : on quitte le répertoire « /tmp/p7-packaging/libp7 »

Je sais pas si j'ai fait une fausse manip ou non mais j'ai suivi ce qui était indiqué sur le site
ZezombyeHors ligneRédacteurPoints: 1629 Défis: 12 Message

Citer : Posté le 07/03/2018 14:28 | #


Pour une alternative à FA-124, il me faudrait un programme/librairie par lequel je pourrais communiquer avec la calto (cad : un GUI en java, et p7 qui prend des commandes et me donne un output).

Les commandes (ou fonctions, si c'est une lib) seraient :
- Etablir une connexion avec la calculatrice
- Obtenir la liste de tous les fichiers
- Obtenir le contenu d'un fichier (voire de plusieurs en même temps)
- Transférer un fichier sur la calculatrice
- Faire une capture de l'écran (et capture vidéo)
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Dark stormHors ligneMembre d'honneurPoints: 10832 Défis: 176 Message

Citer : Posté le 08/03/2018 10:51 | #


Ben, p7.

Avec p7 pour les transferts, p7gui pour une GUI, p7screen pour la capture d'écran.

Ajouté le 08/03/2018 à 10:52 :
Plus sérieusement, la version actuelle est super bien foutue.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Breizh_craftHors ligneModérateurPoints: 982 Défis: 7 Message

Citer : Posté le 08/03/2018 10:53 | #


En fait, ZZ demande un port de P7 sur Windows, afin de faire une GUI avec l'abominable Java. C'est sûr que si on précise pas ça, P7 correspond déjà à sa demande.
Informagicien professionnel, prestidigitateur système. Tout est possible.
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 25/04/2018 02:58 | #


Sur une réflexion d'un projet parallèle que je fais pour mes études, j'ai déplacé les p7utils dans le dépôt de la libcasio, dont le principal est hébergé sur ma forge (faudra que je fasse un miroir sur la forge de PC un de ces jours) :

https://forge.touhey.fr/casio/libcasio.git/

Les licences sont conservées : les sources et en-têtes de la libcasio sont sous LGPL3 (moins stricte que la GPL pour permettre l'utilisation du composant dans davantage de contextes) et les sources des utilitaires sont sous GPL2. J'ai foutu le reste sous LGPL3 par ~flemme, mais une licence davantage prévue pour la documentation pourrait être sympathique un jour.

Il y a donc actuellement deux dépôts que pour le coup je ne rejoindrai pas : la libcasio avec les utilitaires, et la référence FONTCHARACTER (encore sur Github). Le dépôt indépendant des p7utils est désuet et sera supprimé prochainement, quand je serai sûr d'avoir migré à peu près tout.

Quant à ce que la libcasio et les utilitaires permettent, je ne suis pas encore revenu au niveau de la libp7/libg1m au niveau de tout ce qui est communication et gestion des systèmes de fichiers. Par contre, au niveau du décodage de fichiers, ça roxxe sur les types de fichiers de base, même si pas mal de formats de fichiers sont dans la TODO list (plus ou moins exotiques). Et la documentation est encore en chantier complet, aussi.

Tout ça pour dire que le projet n'est pas mort

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
LephenixnoirHors ligneAdministrateurPoints: 16097 Défis: 140 Message

Citer : Posté le 25/04/2018 21:27 | #


Ah, c'est bien d'avoir up un peu tout ça. Je vais télécharger la version appropriée de p7 parce que je tourne toujours avec une version 2.0-indev dont le timestamp d'accès remonte à janvier 2017...

Edit : Mais qui marche extrêmement bien. Franchement, bravo.
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 25/04/2018 21:28 | #


Pour l'instant t'as rien loupé sur tout ce qui est libcasio, j'en suis à la v0.1-indev et comme dit plus haut, ça n'égale pas ce que tu peux avoir avec la 3.0-indev… pour l'instant

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
LephenixnoirHors ligneAdministrateurPoints: 16097 Défis: 140 Message

Citer : Posté le 25/04/2018 21:34 | #


3.0 ? Je crois qu'il y a méprise.

En parlant de méprise, tu méprisais la version dont je dispose il y a déjà plusieurs mois donc je doute que ça ait changé.
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 25/04/2018 21:39 | # | Fichier joint


En fait l'évolution du projet c'est un peu un bazar, parce que c'est pas mal de créations de projets et de fusions. Grosso modo (je fais de mémoire, y a des détails qui manquent je pense), pour te donner une idée du truc, ça donne ça :


(gimp level pro, je sais)


Je suis pas vraiment le semver, je fonctionne en version majeure/mineure/indev. Les mineures doivent être rétrocompatibles avec mineures plus anciennes de la même majeure, et si c'est de l'indev, balec' (du coup je conseille à personne d'utiliser les versions indev).

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
LephenixnoirHors ligneAdministrateurPoints: 16097 Défis: 140 Message

Citer : Posté le 26/04/2018 18:06 | #


Bon ben j'ai cloné tout ça et je me suis retrouvé avec la fameuse version 0.1-indev, la seule qui existe niveau libcasio. Et là, p7 ne supporte aucune commande... o_o

Je n'ai pas trouvé de bug tracker donc j'ouvre un bug ici si tu le veux bien.

p7screen lance une boucle infinie, mauvais niveau de zoom par défaut
Version : p7screen de p7utils v0.1-indev
Compilation: ./configure; make; make install

Lancer p7screen fraîchement compilé sans options, et donc un niveau de zoom par défaut annoncé de 8, déclenche une boucle infinie qui affiche régulièrement Couldn't create the window: Window is too large. Le programme ne répond alors ni à SIGINT si à SIGTERM et doit être arrêté violemment.

Spécifier le niveau de zoom via p7screen -z 8 fonctionne très bien, ce qui laisse entendre que le niveau de zoom par défaut n'est pas réglé comme annoncé. Je peux spécifier tout niveau jusqu'à 16 sans problème (seules les décorations de fenêtre disparaissent à partir de 12).
Cakeisalie5Hors ligneMembre de CreativeCalcPoints: 1753 Défis: 10 Message

Citer : Posté le 27/04/2018 02:54 | #


Comme dit plus haut, effectivement, p7 est à l'état de chantier et il faut que je réimplémente pas mal de choses de façon propre dans la libcasio concernant le protocole de communication. Je me suis pas mal concentré sur la mémoire principale de base, les archives etc, et moins sur les fichiers de stockage, voilà pourquoi. Mais j'y travaille !

Concernant le niveau de zoom de p7screen, ça m'étonne, c'est à 8 normalement… si tu pouvais m'envoyer le Makefile.cfg en réponse ou via MP, je t'en serais reconnaissant (normalement le zoom par défaut apparaît aussi dans p7screen --help). Concernant les signaux qui ne répondent pas, ça c'est parce que la SDL2 catche les signaux pour les retourner en tant qu'évènements. Je n'ai pas encore trouvé de façon propre pour gérer ça, il faut que je me penche sur la question de façon plus sérieuse. Et p7screen ne se met pas en boucle infinie, il s'est probablement connecté avec ta calto et est en attente du prochain paquet

Autrement, je travaille aussi sur une autre syntaxe pour p7, plus verbeuse et basée sur le positionnel que la précédente. L'idée principale était de pouvoir combiner des actions différentes dans une seule exécution de p7, et de pouvoir adapter l'interface à p7mcs (l'équivalent de p7 pour la mémoire principale). Les mauvaises langues diront que ça s'approche du SQL, mais je leur rétorque qu'il n'y a pas encore de conditions ni de boucles dans ma syntaxe (et qu'en plus elle est trop cool). Voici quelques exemples pour vous donner un aperçu de ce que ça va donner :

p7 help about commands

Affiche de l'aide concernant les sous-commandes disponibles.

p7 optimize device fls0 and list files on crd0

Optimise la mémoire de stockage (sur la flash) et liste les fichiers sur la carte SD.

p7 on serial /dev/ttyUSB1 setting 115200N1 send ~/addin.g1a as ADDIN.g1a in ADDINS

On commence à entrer dans du tordu. Ici, la connexion se passera, comme le préfixe on serial /dev/ttyUSB1 setting 115200N1 l'indique, sur la connexion série dont la liaison est disponible sur /dev/ttyUSB1 (interface USB-série que j'utilise pour me connecter à la calculatrice), sur laquelle on se met d'accord avec la calculatrice pour définir les paramètres de connexions à 115200 bauds, pas de parité, un bit de stop. Sur cette liaison, on envoie le fichier disponible localement sur ~/addin.g1a qu'on renomme ADDIN.g1a sur la calculatrice et qu'on place dans le dossier ADDINS.

De plus, le type de liaison parle aussi du protocole « applicatif » (les protocoles propriétaires utilisés pour les calculatrices CASIO ne sont pas vraiment pensées pour rentrer dans des couches du modèle OSI, mais supposons), donc ici par exemple, serial représente le protocole 7 au-dessus d'une liaison série et usb représente le protocole 7 au-dessus d'une liaison USB. On pourrait tout à fait imaginer l'introduction d'autres types, comme legacy, pour le protocole legacy, ou afx pour les AlgebraFX/Graph 100.

p7 on /dev/ttyUSB1 setting 115200N2 not ending show os version and show product id and on usb show username

L'avantage de cette syntaxe est qu'on peut même faire varier la liaison sur plusieurs sous-commandes. Ici, on commence par définir la couche de liaison comme étant une liaison série sur /dev/ttyUSB1, où on définit les paramètres de connexion 115200 bauds, pas de parité, deux bits de stop, et où on dit à p7 de ne pas terminer la connexion pour qu'on puisse la reprendre plus tard. Sur cette liaison, on affiche la version de l'OS et l'ID de la calculatrice (product ID).

Ensuite, on change de liaison pour une liaison USB, et on récupère et affiche le nom d'utilisateur sur cette nouvelle liaison (la première liaison est fermée).

De plus, mais ce n'est guère plus qu'une idée pour le moment, j'aimerais implémenter une exécution de scripts externes avec quelque chose du type :

p7 execute /my/script.p7

Mais j'ignore totalement ce qui peut se passer si je met un préfixe de liaison, etc. Je me pencherai sur la question quand j'aurai fini d'implémenter le reste.

J'espère avoir pu vous donner une idée de la puissance de la syntaxe que j'implémente au travers de ces quelques commandes. J'essaierai, quand j'aurai fini d'implémenter un décodeur correct pour cette syntaxe, de faire quelque chose de rétrocompatible avec les anciennes options et sous-commandes (en fait, celles du p7 actuel) pour que vos scripts ne soient pas complètement à la ramasse. De plus, on m'a également suggéré de proposer la gestion de chemins complets comportant nom, dossier et appareil de stockage, du type crd0:dossier/fichier.ext, que j'aimerais aussi implémenter en plus de la forme décomposée que j'ai un peu présentée au-dessus. Normalement tout ça devrait cohabiter de façon pas trop mauvaise

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Besoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Pages : Précédente1, 2, 3, 4, 5, 6, 7Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 48 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