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 037f3cb59a Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
debian Removed udev rule 2016-11-16 02:27:16 +01:00
doc Updated manpages with cinit 2016-11-26 12:40:32 +01:00
include Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
src Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
tools Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
.gitignore "reset" debian packaging 2016-09-20 16:26:03 +02:00
LICENSE.md Chose GPLv2 license 2016-08-22 16:52:16 +02:00
Makefile Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
Makefile.msg Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
Makefile.vars Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +01:00
README.md New way of working with streams! Re-added libusb. 2016-12-13 18:07:53 +01:00
TODO.md Corrected README and TODO 2016-09-24 08:57:23 +02:00
configure Corrected quirks and added MS-Windows cross-compilation utilities 2016-12-21 16:30:08 +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 for now.

Screen receiving is only supported for monochrome calculator as the format for other calculators are unknown.

It has been thought to "teach your program to speak P7" as it doesn't communicate with the device directly: everything goes through a filestream your user program provides to it through a handle.

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

Debian Packaging dependencies

Name Version
debhelper >= 9.0
devscripts >= 2.15

Building

To package for Debian, use the deb target. You shouldn't configure before running this target, debian/rules will make it for you. Packages and associated file are created in the parent directory.

If you are making it all yourself, 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.