Forums Casio - Projets de programmation

Index du Forum | Projets de programmation | [GNU/Linux] P7, pour des transferts à repasser
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Posté le 22/08/2016 12:13

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

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.




Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Dernier message de la page précédente :Posté le 06/02/2017 00:12 | Fichier joint
La version 3.0 de la libp7 et des p7utils est sortie !



La majorité des modifications ont été faites dans la libp7, les utilitaires n'ont été qu'adaptés à cette nouvelle version. Les nouvelles de la libp7, constituées en bordel car j'ai la flemme de hiérarchiser et en même temps que je regarde le git diff 2.0 :

- La libp7 est désormais sous LGPL, et est désormais hébergée sur Github (pas de miroirs pour le moment) ;
- Correction du build pour Microsoft Windows (Cygwin n'est pas encore géré correctement), correction de la gestion du driver CESG502 sous cette plateforme ;
- Ré-ajout de la règle udev dans le projet, activable par l'option --udev du configure script ;
- Ajout d'utilitaires de build (libp7-config) et d'une configuration (libp7/config.h, contenant les options utiles au compilation-time des projets utilisant la lib, ainsi que la version de cette dernière) ;
- Simplification des noms de fonctions (p7_copyfile -> p7_copy, p7_lsfiles -> p7_list, ...) ;
- Ajout d'un système de buffers pour un échange de fichiers plus versatile (j'ai tout de même gardé les FILE dans d'autres fonctions pour ne pas devoir tout implémenter soi-même) ;
- Ajout de p7_cominit pour centraliser et rendre cross-platform l'initialisation avec un port série, ajout de p7_setcomm, même si en fait le port série ne marche pas encore, je compte le corriger dans les prochaines sous-versions ;
- Remplacement des constantes d'initialisation et d'exit par des flags d'initialisation (man p7_init) ;
- Ajout de la détection de l'interruption de l'utilisateur ;
- Correction de la détection d'infos (je ne décodais pas correctement la taille de la ROM et de la RAM, ainsi que les versions) ;
- Amélioration du serveur (non encore documenté pour le moment, je risque encore de changer tout le système autour de ça) ;
- Ajout d'un système public de streams ;
- Correction, lorsque supporté par la calculatrice, du backup des composants système ;
- Ajout d'un système de logs un poil plus sophistiqué (pour afficher genre le nom du handle, utile lorsque l'on manipule deux handles sur deux threads d'un même processus, pour tester l'interaction client/serveur par exemple) ;
- Ajout du backup de l'entrée CASIOWIN (pour les calculatrices le supportant) ;
- Ajout de fonctions pour récupérer le nombre de bytes libres pour un filesystem ;
- Suppression du warning dans le dmesg de l'usage de la libusb (je fais ce qu'il faut maintenant) ;

Le site principal a été mis à jour avec la nouvelle version. Les tarballs ont bien entendu été uploadées ici. Le packaging Debian des p7utils semble avoir un problème pour le moment, je le résous dès que je trouve de quoi il s'agit. Aussi, le packaging pour Arch/Manjaro est fait (Julese50 s'en est chargé).

J'en profite pour attirer votre attention sur pyp7, un portage Python 3.x de la libp7. Il ne peut pas faire grand chose, mais si vous aimez le Python et que vous voulez scripter des comportements pour communiquer avec votre calculatrice, c'est idéal !

Aussi, Intelligide, je m'attends à ce que tu mettes à jour p7gui.
----------------------------------



Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 08/02/2017 02:29 | # | Fichier joint
Voici, sous vos yeux ébahis, l'une des premières communications avec ma calculatrice en série (à l'aide du câble d'Util-Pocket) !

cake@66 :: p7utils/public » ./p7 info --com 2
[libp7 info]  p7_fdcominit: Looking for specific Linux devices.
[libp7 info]  p7_fdinit: Initializing STREAMS stream with fds: (3,3)
[libp7 info]  p7_sinit: looks like the handle wasn't allocated! let's make one.
[libp7 info]  p7_sinit: handle prepared, masta!
[libp7 info]  p7_sinit: initializing stream settings
[libp7 info]  p7_streams_setcomm: Setting terminal properties: 9600 baud/s, 2 stop bits, NONE parity
[libp7 info]  start: so we're active? let's do what active people do then!
[libp7 info]  start: sending initial check packet
[libp7 info]  p7_send_ini_check: sending check packet...
[libp7 info]  p7_send_basic: sending the following basic packet :
[libp7 info]  0530 3030 3730                          .00070
[libp7 info]  p7_recv_main: receiving packet...
[libp7 info]  p7_recv_main: received the following [normal] packet (6o) :
[libp7 info]  0630 3030 3730                          .00070
[libp7 info]  p7_recv_main: packet was interpreted as an ack one
[libp7 info]  start: checkin' up da environment
[libp7 info]  p7_send_basic: sending the following basic packet :
[libp7 info]  0130 3130 3646                          .0106F
[libp7 info]  p7_recv_main: receiving packet...
[libp7 info]  p7_recv_main: received the following [normal] packet (174o) :
[libp7 info]  0630 3231 3030 4134 4779 3336 3330 3037 .02100A4Gy363007
[libp7 info]  5245 4E45 5341 5320 5348 3733 3535 3031 RENESAS SH735501
[libp7 info]  3030 3030 3030 3030 3030 3030 3430 3936 0000000000004096
[libp7 info]  3030 3030 3035 3132 FFFF FFFF FFFF FFFF 00000512........
[libp7 info]  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ................
[libp7 info]  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ................
[libp7 info]  FFFF FFFF FFFF FFFF 3032 2E30 352E 3232 ........02.05.22
[libp7 info]  3031 FFFF FFFF FFFF 3030 3031 3030 3030 01......00010000
[libp7 info]  3030 3030 3234 3332 372E 3030 4A56 5151 000024327.00JVQQ
[libp7 info]  444D 6E68 FFFF FFFF FFFF FFFF 4F4D 47FF DMnh........OMG.
[libp7 info]  FFFF FFFF FFFF FFFF FFFF FFFF 3046      ............0F
[libp7 info]  p7_recv_main: packet was interpreted as an ack one
[libp7 info]  p7_decode_ack: ack packet is extended
[libp7 info]  p7_decode_ack: hardware identifier is 'Gy363007'
[libp7 info]  p7_decode_ack: cpu identifier is 'RENESAS SH735501'
[libp7 info]  p7_decode_ack: Preprogrammed ROM information looks wiped out!
[libp7 info]  p7_decode_ack: preprogrammed ROM capacity is 0o
[libp7 info]  p7_decode_ack: preprogrammed ROM version is 1348.1348.135548
[libp7 info]  p7_decode_ack: flash ROM capacity is 4096KiB
[libp7 info]  p7_decode_ack: RAM capacity is 512KiB
[libp7 info]  p7_decode_ack: Bootcode information looks wiped out!
[libp7 info]  p7_decode_ack: bootcode version is 1348.1348.135548
[libp7 info]  p7_decode_ack: bootcode offset is 0xd55555548
[libp7 info]  p7_decode_ack: bootcode size is 555055548KiB
[libp7 info]  p7_decode_ack: OS version is 02.05.2201
[libp7 info]  p7_decode_ack: OS offset is 0x00010000
[libp7 info]  p7_decode_ack: OS size is 2432KiB
[libp7 info]  p7_decode_ack: product ID is JVQQDMnh
[libp7 info]  p7_decode_ack: username is OMG
[libp7 info]  start: environment is 'fx-9860GII-2 (Graph 75 SH4)'
Warning: Preprogrammed ROM information looks wiped out !
Warning: Bootcode information looks wiped out !
CPU ID (probably out of date): RENESAS SH735501
Environnement ID: Gy363007
Product ID: JVQQDMnh
ROM capacity: 4096KiB
RAM capacity: 512KiB
OS version: 02.05 (2201)
OS offset: 0x00010000
OS size: 2432KiB
Username: OMG
[libp7 info]  p7_exit: exit is called.
[libp7 info]  p7_exit: and handle is still there, so let's go!
[libp7 info]  p7_exit: we were active, send sending terminate packet
[libp7 info]  p7_send_basic: sending the following basic packet :
[libp7 info]  1830 3030 3730                          .00070
[libp7 info]  p7_recv_main: receiving packet...
[libp7 info]  p7_recv_main: received the following [normal] packet (6o) :
[libp7 info]  0630 3030 3730                          .00070
[libp7 info]  p7_recv_main: packet was interpreted as an ack one
[libp7 info]  p7_exit: freeing the handle!


Le temps de développer certains points et de voir si ça marche sous MS-Windows, et ce sera possiblement prêt pour la 3.1 !
----------------------------------
Lephenixnoir
En ligne
Administrateur
Niveau: Confirmé
Points: 9832
Défis: 130
Message
Citer : Posté le 08/02/2017 12:15 | #
Tu as utilisé LINK en 3-pin donc ? Un moment j'ai cru que tu avais implémenté un driver pour le port série...
Bien joué sinon ! À quand le support de la Graph 25 ?
----------------------------------
La sagesse est la prunelle de tes yeux, et la gloire l’enveloppe de ton cœur.
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 08/02/2017 12:19 | #
Oui, j'ai bien utilisé LINK (et juste avant ça, c'est grâce à Serial Monitor que des informations s'échangeaient effectivement, alors qu'avant, non).

Pour un support complet de la Graph 25(+Pro), il me faut son model ID et une idée de ce qu'elle peut ou ne peut pas faire. J'ai déjà contacté Critor à ce sujet (n'en ayant pas moi-même)

By the way, grâce à cet article, je me suis rendu compte que je gérais le listing et l'ouverture de ports série d'une façon incomplète/approximative, et je ne peux pas corriger ça sans introduire d'incompatibilité (mineure) avec l'interface précédente... donc la prochaine version sera une 4.0. Désolé si ça en fait grincer certains, mais pour ne pas faire ça, il aurait fallu que je sache tout dès le début, donc lol.

Ajouté le 12/02/2017 à 18:24 :
SI, LA RÈGLE UDEV FONCTIONNE.
sudo usermod -a -G uucp <votre nom d'utilisateur>
PUIS DÉCONNECTEZ/RECONNECTEZ-VOUS (pas besoin de redémarrer votre ordinateur). MERCI.
----------------------------------
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 10/03/2017 22:24 | # | Fichier joint
P7screen gère à présent la diffusion d'écran "Projector" sur les Prizm (fx-CG 10/20) ! Merci à Nemhardy pour son temps et sa patience (parce que comme je suis malin, je n'ai pas de Prizm ), et à Lephenixnoir d'avoir poussé mon cerveau dans la montée !


Retrouvez l'album de l'avancement du truc avec Nemhardy ICI.
Inclue les tubes "cpasmal" et "Rouge comme le sang de l'ouvrier" !

Tout ça sera dans la release 4.0, qui risque hélas d'arriver dans un bout de temps puisque j'introduis de grosses features... à côté de celle-ci
----------------------------------
Lephenixnoir
En ligne
Administrateur
Niveau: Confirmé
Points: 9832
Défis: 130
Message
Citer : Posté le 11/03/2017 07:28 | #
Hé, bien joué ! Donc en fin se compte le projecteur c'est du grayscale à 4 couleurs ?
----------------------------------
La sagesse est la prunelle de tes yeux, et la gloire l’enveloppe de ton cœur.
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 11/03/2017 10:53 | #
C'est ce qu'on suppose, yep. Sans doute une sorte de mode de compatibilité (?). Il faut encore qu'on bosse sur les autres modes, l'un d'entre eux est sans doute couleur.
----------------------------------
Lephenixnoir
En ligne
Administrateur
Niveau: Confirmé
Points: 9832
Défis: 130
Message
Citer : Posté le 11/03/2017 15:42 | #
Pendant que j'y pense, le fait qu'il y a deux buffers en 1-bit et pas un seul en 2-bit c'est sans doute par la compatibilité avec les projecteurs noir et blanc.

Il y avait l'air d'y avoir plusieurs modes différents dans ce que j'ai lu de ton implémentation du protocole ; peut-être qu'il y a moyen d'obtenir les couleurs.
----------------------------------
La sagesse est la prunelle de tes yeux, et la gloire l’enveloppe de ton cœur.
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1868
Défis: 0
Message
Citer : Posté le 11/03/2017 20:23 | #
Yup !
J'ai un petit soucis au niveau de l'installation :

onytis@Matt-Omen /tmp $ cd p7-packaging
onytis@Matt-Omen /tmp/p7-packaging $ make -C libp7 && sudo make -C libp7 installmake : on entre dans le répertoire « /tmp/p7-packaging/libp7 »
make: *** Aucune règle pour fabriquer la cible « linuxmint », nécessaire pour « all ». Arrêt.
make : on quitte le répertoire « /tmp/p7-packaging/libp7 »

Tout s'est bien déroulé avant ça. Etant un noob total de Linux quelqu'un peut m'aider svp ?
----------------------------------
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 11/03/2017 20:29 | #
C'est juste ma méthode de packaging qui ne connaît pas ta plateforme (Linux Mint). En l'occurrence, Linux Mint utilise APT, donc techniquement, il faudrait que tu fasses la méthode suivante, mais comme je n'ai pas encore corrigé le packaging Debian, ne la fais pas, je corrigerai (je la mets pour les autres qui débarqueront plus tard avec leur distribution).

Dans distribution.mk, nous avons les correspondances de distributions, à savoir d_<distribution dérivée> := <distribution source>. Donc comme Mint utilise les paquets Debian, ici, il faut rajouter l'équivalence d_linuxmint := debian.

Seulement, le paquet Debian ne se faisait pas la dernière fois que j'ai testé, donc ça va être l'occasion de corriger ça. En attendant, je te conseille de construire et d'installer from source, depuis les tar.gz de la libp7 3.0.
----------------------------------
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1868
Défis: 0
Message
Citer : Posté le 11/03/2017 21:33 | #
D'accord je réessaierai une fois corrigé

Je sais pas trop ce que je fais mais j'ai cliqué droit sur le dossier décompressé, ouvrir dans le terminal. Puis j'ai fait :

onytis@Matt-Omen ~/Documents/libp7-master $ ./configure
Configuration loaded, you can make now.
onytis@Matt-Omen ~/Documents/libp7-master $ make
> mkdir obj/core
> cc obj/core/devices.o
In file included from ./include/libp7.h:25:0,
from ./include/libp7/internals.h:31,
from src/core/devices.c:24:
./include/libp7/types.h:23:22: fatal error: libg1m.h: Aucun fichier ou dossier de ce type
compilation terminated.
Makefile:105 : la recette pour la cible « obj/core/devices.o » a échouée
make: *** [obj/core/devices.o] Erreur 1
onytis@Matt-Omen ~/Documents/libp7-master $ make install
> cc obj/core/devices.o
In file included from ./include/libp7.h:25:0,
from ./include/libp7/internals.h:31,
from src/core/devices.c:24:
./include/libp7/types.h:23:22: fatal error: libg1m.h: Aucun fichier ou dossier de ce type
compilation terminated.
Makefile:105 : la recette pour la cible « obj/core/devices.o » a échouée
make: *** [obj/core/devices.o] Erreur 1

J'ai donc eu des erreurs, a quoi correspondent-elles ? Ai-je fait la bonne manip ?
----------------------------------
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 11/03/2017 21:37 | #
Ne clônes pas depuis le git, utilises les instructions dans la partie "Autres distributions GNU/Linux" du site officiel !
https://p7.planet-casio.com/

Dans la version en développement, la libp7 dépend d'une autre lib à moi.
----------------------------------
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1868
Défis: 0
Message
Citer : Posté le 11/03/2017 21:42 | #
Makefile:224 : la recette pour la cible « man/man1/libp7-config.1 » a échouée
make: *** [man/man1/libp7-config.1] Erreur 1
----------------------------------
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 11/03/2017 21:44 | #
Si j'ai marqué les dépendances, c'est pas pour les oublier ! Il te manque asciidoc, sudo apt install asciidoc devrait faire l'affaire (sudo apt-get install asciidoc si tu n'as pas apt). Mais ouais, il faut que je rende cette erreur plus claire.
----------------------------------
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1868
Défis: 0
Message
Citer : Posté le 11/03/2017 21:46 | #
J'avais déjà asciidoc d'installer :/
----------------------------------
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 11/03/2017 21:48 | #
Au pire, utilises make all-lib puis sudo make install-lib au lieu de rien et install pour la libp7. T'auras pas les manpages, mais au pire, ça marchera. Désolé que t'aies tout ça, j'essaierai de clarifier tout ça pour la prochaine version
----------------------------------
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1868
Défis: 0
Message
Citer : Posté le 11/03/2017 21:49 | #
Mais j'ai pas libsdl et quand je fais apt install libsdl ça me met :
onytis@Matt-Omen ~ $ sudo apt-get install libsdl
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet libsdl
----------------------------------
Xavier59
En ligne
Membre de CreativeCalc
Niveau: Intermédiaire
Points: 1318
Défis: 12
Message
Citer : Posté le 11/03/2017 21:50 | #
Matt36230 a écrit :
Mais j'ai pas libsdl et quand je fais apt install libsdl ça me met :
onytis@Matt-Omen ~ $ sudo apt-get install libsdl
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet libsdl


C'est normal c'est libsdl1.2-dev
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 1868
Défis: 0
Message
Citer : Posté le 11/03/2017 21:52 | #
Ah bah je l'ai alors
Je réessaie demain merci

Ajouté le 12/03/2017 à 11:14 :
J'ai réussi à installer p7 mais la même manip ne fonctionne pas pour les utilitaires

onytis@Matt-Omen /tmp/p7utils-3.0 $ make all-lib
make: *** Aucune règle pour fabriquer la cible « all-lib ». Arrêt.
onytis@Matt-Omen /tmp/p7utils-3.0 $ make
> 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


Et aussi comment on le lance ?
----------------------------------
Cakeisalie5
En ligne
Administrateur
Niveau: Confirmé
Points: 1281
Défis: 6
Message
Citer : Posté le 12/03/2017 11:30 | #
Ça me paraît quand même vachement curieux qu'asciidoc (a2x) soit installé et que ça te fasse cette erreur, vérifie que le paquet asciidoc est installé... et s'il est bel et bien installé, utilises ./configure --no-manpages puis make && sudo make install.
----------------------------------
Matt36230
Hors ligne
Membre
Niveau: Intermédiaire
Points: 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
----------------------------------

Pages: Précédente | 1, 2, 3, 4, 5 | Suivante

Index du Forum | Projets de programmation | [GNU/Linux] P7, pour des transferts à repasser
Publicité et partenaires
Casio Education
Casio éducation

TI-Planet
Casiopeia
Casiopeia
CasioFan, la communauté ClassPad
CasioFan
CodeWalrus
CodeWalrus

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2015 | Il y a 38 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Rugby Manager | Jeu de basket | Jeu de handball | Jeu de tennis | Nova Raider | Réparation téléphone | Soccer Rush | Tasty Tale

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd