summaryrefslogtreecommitdiff
path: root/documentation/pyparallel.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/pyparallel.rst')
-rw-r--r--documentation/pyparallel.rst165
1 files changed, 165 insertions, 0 deletions
diff --git a/documentation/pyparallel.rst b/documentation/pyparallel.rst
new file mode 100644
index 0000000..00c0b95
--- /dev/null
+++ b/documentation/pyparallel.rst
@@ -0,0 +1,165 @@
+============
+ pyParallel
+============
+
+.. note:: This module is in development (since years ;-)
+
+Overview
+========
+This module encapsulates the access for the parallel port. It provides backends
+for Python running on Windows and Linux. Other platforms are possible too but
+not yet integrated.
+
+This module is still under development. But it may be useful for developers.
+
+Copyright (C) 2001-2003 Chris Liechti <cliechti(at)gmx.net>
+
+Here is the `project page on SourceForge`_ and here is the `SVN repository`_.
+
+.. _`project page on SourceForge`: http://sourceforge.net/projects/pyserial/
+.. _`SVN repository`: http://sourceforge.net/svn/?group_id=46487
+
+
+Features
+--------
+* same class based interface on all supported platforms
+* port numbering starts at zero, no need to know the port name in the user program
+* port string (device name) can be specified if access through numbering is inappropriate
+
+
+Requirements
+------------
+* Python 2.2 or newer
+* "Java Communications" (JavaComm) extension for Java/Jython
+
+
+Installation
+------------
+Extract files from the archive, open a shell/console in that directory and let
+Distutils do the rest: ``python setup.py install``
+
+The files get installed in the "Lib/site-packages" directory in newer Python versions.
+
+The windows version needs a compiled extension and the giveio.sys driver for
+Windows NT/2k/XP. The extension module can be compiled with Distutils with
+either MSVC or GCC/mingw32.
+
+It is released under a free software license, see LICENSE.txt for more details.
+
+
+Short introduction
+==================
+::
+
+ >>> import parallel
+ >>> p = parallel.Parallel() # open LPT1
+ >>> p.setData(0x55)
+
+
+Examples
+--------
+Please look in the SVN Repository. There is an example directory where you can
+find a simple terminal and more.
+http://pyserial.svn.sourceforge.net/viewvc/pyserial/trunk/pyparallel/examples/
+
+
+API
+===
+
+.. module:: parallel
+
+.. class:: Parallel
+
+ .. method:: __init__(port)
+
+ Open given parallel port.
+
+ .. method:: setData(value)
+
+ Apply the given byte to the data pins of the parallel port.
+
+ .. method:: setDataStrobe(level)
+
+ Set the "data strobe" line to the given state.
+
+ .. method:: setAutoFeed(level)
+
+ Set "auto feed" line to given state.
+
+ .. method:: setInitOut(level)
+
+ Set "initialize" line to given state.
+
+ .. method: setSelect(level)
+
+ Set "select" line to given state.
+
+ .. method:getInError()
+
+ Set "Error" line to given state.
+
+ .. method:: getInSelected()
+
+ Read level of "select" line.
+
+ .. method:: getInPaperOut()
+
+ Read level of "paper out" line.
+
+ .. method:: getInAcknowledge()
+
+ Read level of "Acknowledge" line.
+
+ .. method: getInBusy()
+
+ Read level of "busy" line.
+
+
+.. module:: parallel.parallelutil
+
+.. class:: BitaccessMeta
+
+ This mix-in class adds a few properties that allow easier bit access to the
+ data lines. (D0 .. D7) e.g. p.D0 refers to the first bit of the data
+ lines.
+
+.. class:: VirtualParallelPort
+
+ This class provides a virtual parallel port implementation, useful
+ for tests and simulations without real hardware.
+
+
+Notes
+=====
+
+Linux
+-----
+1. The :manpage:`lp(4)` module must be unloaded, ``rmmod lp``. ``lp`` claims
+ exclusive access to the port and other programs won't be able to use it.
+
+2. The :manpage:`ppdev(4)` module needs to be loaded, ``modprobe ppdev``. When
+ ``udev`` is in use, (default with 2.6 kernels) this will create a
+ ``/dev/parport0``.
+
+3. The user needs to have write permissions to ``/dev/parport0``. Many
+ distributions have an ``lp`` group that owns the device; the simplest is to
+ add the user account to this group. Simply changing permissions on the
+ device is not the best strategy as they will be reverted to their defaults
+ next time the driver is loaded.
+
+
+Windows
+-------
+The giveio driver must be installed as the module needs direct access to the
+hardware. This also means that USB parallel port adapters won't be supported.
+
+
+Misc
+====
+References
+----------
+* Python: http://www.python.org/
+* Jython: http://www.jython.org/
+* Java@IBM: http://www-106.ibm.com/developerworks/java/jdk/ (JavaComm links are
+ on the download page for the respective platform JDK)
+* Java@SUN: http://java.sun.com/products/