/* Copyright 2010, Michael Jordan */ http://calcutils.tuxfamily.org May 31, 2010 Welcome to the calcutils project The purpose of this project is to provide a simple set of command line utilities for use on a unix style system. The utilities' purpose will be to work with TI calculators and accomplish everything that is provided by the OEM on the windows and mac side. As of the date of this writing, the only supported calculator is a TI89 Titanium on the USB link. The utilities which are provided are as follows: calcbackup - backup all of the vars on the calculator to files on the PC calcclockset - set the real time clock to a chosen date/time calcget - backup an individual var on the calculator to a file on the PC calcgetinfo - get device information from the calculator calcgetscreen - save a screenshot to the PC calcput - send an individual var to the calculator calcrestore - send all of the variables contained in files in a given directory to the calculator calcrm - remove an individual var from the calculator The programs provide help via the --help option where required. Precompiled binaries are included in the directory bin. If your system is one running a kernel with USB support and you have libusb-1.0 installed then you should be able to simply run the compiled binary. No compiling and installing should be necessary. If you would like after verifying functionality the binary can simply be copied to somewhere on the system path (/usr/bin, /usr/local/bin, etc.) from the bin directory and just run from any command line. The sources are laid out in a simple manner and the build system is simple. Just go to the root directory of the project and type 'make'. Or if you wish to compile an individual element, just enter that particular subdirectory and type 'make'. One point to note is in regard to permissions. When the calculator is plugged into the USB bus, it creates a node on your system. In order to run these utilities you will have to check this node to make sure you have read/write permission. This can be done a number of ways. One possibility would be to run the utility as sudo (the superuser) or else locate and change the permissions on the created node (usually in /proc/bus/usb or /dev/bus/usb - depending on your system) so that you will be able to read/write to it. An attempt is being made to make these utilities script friendly. In particular the return codes have been scoured to return meaningful values so that scripts can respond accordingly. The return codes are delineated when running the utilities with the -h or --help option.