cake
/
libp7
Archived
1
0
Fork 1
Dépôt historique de la libp7.
This repository has been archived on 2024-03-16. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Thomas Touhey 55a3892d50 Updated doc, and here we are, v2! 2017-01-06 15:14:30 +01:00
doc Updated doc, and here we are, v2! 2017-01-06 15:14:30 +01:00
include Corrected some packet I/O thingies for compatibility 2017-01-06 14:24:04 +01:00
src Corrected some packet I/O thingies for compatibility 2017-01-06 14:24:04 +01:00
tools Added manpage for configuration tool, and corrected it imitating sdl-config 2017-01-04 17:13:26 +01:00
.gitignore Corrected cross-platform targets. 2016-12-21 23:19:16 +01:00
AUTHORS.md Added thanks 2016-12-27 16:11:12 +01:00
LICENSE.md Chose GPLv2 license 2016-08-22 16:52:16 +02:00
Makefile Author -> Maintainer 2017-01-05 23:04:17 +01:00
Makefile.msg Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
Makefile.vars Updated doc, and here we are, v2! 2017-01-06 15:14:30 +01:00
README.md Removed mention to Debian 2017-01-05 01:17:28 +01:00
TODO.md Corrected docs 2016-12-21 16:38:10 +01:00
configure Author -> Maintainer 2017-01-05 23:04:17 +01:00

README.md

libp7 - Casio Communication Protocol 7.00 implementation

Introduction

Protocol 7.00 (or "Protocol 7") is the communication protocol used by CASIO FX calculators, between them and with a PC (serial and USB). It allows model identification, file interaction (with main memory and flash/SD storage devices), screenstreaming and OS updating.

This library brings functions to send and receive packets, and packet flows such as file getting/sending, remote file interaction (listing, copying, deleting), filesystem optimization, screen receiving and OS Update-related (backup, executable sending). No interaction with the main memory is implemented yet.

Screen receiving is only supported for monochrome calculator as the format for other calculators are yet to be known.

This library has two main parts: find the devices to communicate with, through cross-platform streams (P7 streams, a superset of local streams, including libc and libusb ones), and talk P7 with them.

This library require environment knowledges because of protocol failure. Those are hardcoded; for each newly discovered environment (new calculator, ...), entry must be added in the src/core/devices.c file, in the known_environments list, using and updating command masks if necessary. A precise environment listing is required to have a clean detection of what commands and devices we can or cannot run so we don't have any surprise.

More on the P7 homepage.

Prerequisites

Side note: the library might work with older versions of these dependencies, I took these as a reference because these are the ones I work with.

Making-only dependencies

Name Version
make >= 4.0
gcc >= 4.9
binutils >= 2.25
asciidoc >= 8.6.9
gzip >= 1.6

Making and runtime dependencies

Name Version
libusb >= 1.0

Building

Just ./configure then make. To install, use make install.

To build and install only the lib, use all-lib and install-lib.
To build and install only the docs, use all-doc and install-doc.

Other useful targets:

  • uninstall, uninstall-lib, uninstall-bin uninstall-doc : will try to uninstall using the current configuration;
  • mostlyclean, clean, clean-doc, mclean-lib, clean-lib: remove built files at different levels;
  • re, re-lib, re-doc : regenerate built files at different levels (clean and build) -- useful when configuration changes.