This page is also available in English!
Pour toute question, demande d'aide ou autre, il y a planète casio le topic officiel sur Planète Casio !

Introduction

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.

Ce projet représente également, en compagnie d'autres, une libération du domaine : en effet, jusqu'ici, les logiciels produits par CASIO pour interagir avec ses calculatrices ne sont que pour Microsoft Windows. Le projet P7 n'est pas le premier projet dans le domaine, mais il est le premier à être aussi complet et sous licence libre (LGPL3).

Le projet est composé d'une bibliothèque, avec une interface aisée et une autre plus avancée, la icône libp7 libp7 (actuellement en version 3.0), ainsi que d'un set d'utilitaires en ligne de commande, les icône p7utils p7utils (actuellement en version 3.0). Il n'y a actuellement pas de logiciel avec une interface graphique.

Construction et installation

icône debian Debian, icône ubuntu Ubuntu, icône linux mint Linux Mint et dérivés

Le dépôt Debian hébergeant les paquets a eu quelques soucis récemment, et un autre sera mis en place dans un moment (probablement en avril 2017, vu le temps que j'ai). En attendant, vous pouvez construire vous-mêmes les paquets et les installer en utilisant les commandes suivantes :

sudo apt install devscripts debhelper libusb-1.0-0-dev libsdl1.2-dev asciidoc
cd /tmp && git clone https://github.com/cakeisalie5/p7-packaging
cd p7-packaging
make -C libp7 && sudo make -C libp7 install
make -C p7utils && sudo make -C p7utils install

Désolé pour la gêne occasionée !

icône arch linux Arch Linux, icône manjaro Manjaro

Breizh_craft s'est chargé de mettre la lib et les utilitaires sur l'AUR, disponibles via la commande yaourt (non installée de base sur Arch). Pour installer les deux utilitaires, vous pouvez simplement faire :

yaourt -S p7 p7screen
Détail du paquet p7 - Détail du paquet p7screen - Détail du paquet libp7

icône linux Autres distributions GNU/Linux

S'il n'y a aucun paquet cité ici pour votre distributions et que vous en avez fait un, contactez-moi, j'y ajouterai une mention ici !

Avant de construire, vous devez installer ces logiciels (pré-requis) :

Name Version
make >= 4.0
curl n'importe
gcc >= 4.9
binutils n'importe
asciidoc n'importe
gzip >= 1.6
libusb >= 1.0
libsdl == 1.2.15
pkg-config >= 0.27

Pour télécharger, construire et installer la lib :

cd /tmp
curl -o libp7-3.0.tar.gz https://p7.planet-casio.com/pub/libp7-3.0.tar.gz
tar xzf libp7-3.0.tar.gz && cd libp7-3.0
./configure --udev && make && sudo make install

Pour télécharger, construire et installer les utilitaires :

cd /tmp
curl -o p7utils-3.0.tar.gz https://p7.planet-casio.com/pub/p7utils-3.0.tar.gz
tar xzf p7utils-3.0.tar.gz && cd p7utils-3.0
./configure && make && sudo make install

Usage

À noter qu'afin de ne pas devoir lancer les utilitaires en root, il est conseillé d'ajouter votre compte utilisateur au groupe uucp :

sudo usermod -a -G uucp <votre nom d'utilisateur>

icône p7 P7

Pour le moment, avec p7, on peut :

Pour envoyer un fichier :

# Envoi d'un addin, confirmation interactive en cas d'overwrite
p7 send addin.g1a

# La même, avec une jolie barre de chargement
p7 send -# addin.g1a

# Envoi d'un addin sous un autre nom et dans un dossier
# - confirmation interactive en cas d'overwrite
p7 send -o autrenom.g1a -d dossier addin.g1a

# Envoi d'un addin, forcer l'overwrite
p7 send -f addin.g1a

Pour demander un fichier :

# Réception simple
p7 get addin.g1a

# Réception d'un addin d'un dossier distant
p7 get -d dossier addin.g1a

# Réception d'un fichier et affichage de celui-ci dans la sortie standard
p7 get -o - doc.txt

Pour copier un fichier distant dans un autre fichier distant :

# Copie d'un fichier texte d'un dossier à la racine
p7 copy -d hidden file.txt VISIBLE.txt

# Copie d'un addin dans un dossier
p7 copy addin.g1a -t disabled addin.g1a

Pour supprimer un fichier distant :

# Suppression d'un fichier distant la racine
p7 del addin.g1a

# La même, mais dans un dossier
p7 del -d dossier info.txt

Pour lister les fichiers distants :

p7 ls

Pour optimiser la mémoire :

p7 optimize

Pour dumper des informations concernant la calculatrice :

p7 info

A noter qu'il est possible d'utiliser un autre filesystem que celui par défaut (fls0). Par exemple, pour les calculatrices dotées d'un lecteur de carte SD, il est possible d'y accéder via le système de fichiers crd0 avec l'option --device crd0.

icône p7screen P7SCREEN

Pour afficher l'écran distant avec p7screen, il faut :

Et voilà, normalement, une fenêtre s'est créée avec l'écran de votre calculatrice ! À noter que si vous allez dans "CAPT" et que vous sélectionnez Projector, cela ne marchera pas, il faut vraiment sélectionner Projector au moment de brancher votre calculatrice.

Diverses informations

Le projet P7, ainsi que les projets l'ayant précédé, ont demandé beaucoup de rétro-ingénierie, de formalisation et de tests avant d'en arriver à ce stade. Merci à :

Clin d'oeil aux projets ayant précédé le projet P7 :

J'ai écrit quelques notes en plus, si ça peut aider les éventuelles personnes qui souhaitent comprendre le protocole et son implémentation plus en profondeur.

Cette page a été réalisée à l'aide de pandoc. La source de ce site est disponible ici.