-This package provides an object-oriented interface for temperature
-monitoring and PID_ control. The idea is that experimentalists
-interested in temperature controlled experiments should not need to
-learn the inner workings of their PID controller before they can
-perform simple temperature control tasks.
+This package provides general PID_ control software in Python with a
+Melcor MTCA backend. The idea is that experimentalists interested in
+temperature controlled experiments or other processes should not need
+to learn the inner workings of their PID controller before they can
+perform simple control tasks.
Module structure
================
effects. Here's an example that shows a reasonable approach with a
bit of integrator overshoot::
- >>> from tempcontrol.backend.test import TestBackend
+ >>> from pypid.backend.test import TestBackend
>>> from time import sleep
>>> from matplotlib import pyplot
>>> from numpy import loadtxt
Gentoo
~~~~~~
-I've packaged `tempcontrol` for Gentoo_. You need layman_ and my `wtk
+I've packaged `pypid` for Gentoo_. You need layman_ and my `wtk
overlay`_. Install with::
# emerge -av app-portage/layman
# layman --add wtk
- # emerge -av dev-python/tempcontrol
+ # emerge -av dev-python/pypid
Dependencies
------------
-If you're installing by hand or packaging `tempcontrol` for another
+If you're installing by hand or packaging `pypid` for another
distribution, you'll need the following dependencies:
========= ===================== ================ ==========================
Installing by hand
------------------
-Tempcontrol is available as a Git_ repository::
+Pypid is available as a Git_ repository::
- $ git clone http://www.physics.drexel.edu/~wking/code/git/tempcontrol.git
+ $ git clone http://www.physics.drexel.edu/~wking/code/git/pypid.git
See the homepage_ for details. To install the checkout, run the
standard::
Run the test suite with::
- $ nosetests --with-doctest --doctest-tests tempcontrol
+ $ nosetests --with-doctest --doctest-tests pypid
Note that you should have your temperature control device connected to
your computer before running this command, as backend tests require a
.. _nose: http://somethingaboutorange.com/mrl/projects/nose/
.. _Git: http://git-scm.com/
.. _homepage:
- http://www.physics.drexel.edu/~wking/unfolding-disasters/posts/tempcontrol/
+ http://www.physics.drexel.edu/~wking/unfolding-disasters/posts/pypid/
.. _GNU General Public License Version 3: http://www.gnu.org/licenses/gpl.txt
# Copyright (C) 2008-2011 W. Trevor King <wking@drexel.edu>
#
-# This file is part of tempcontrol.
+# This file is part of pypid.
#
-# tempcontrol is free software: you can redistribute it and/or
+# pypid is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
-# tempcontrol is distributed in the hope that it will be useful,
+# pypid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with tempcontrol. If not, see
+# License along with pypid. If not, see
# <http://www.gnu.org/licenses/>.
import logging as _logging
__version__ = '0.3'
-LOG = _logging.getLogger('tempcontrol')
+LOG = _logging.getLogger('pypid')
"Temperature-control logger"
#LOG.setLevel(_logging.WARN)
# Copyright (C) 2008-2011 W. Trevor King <wking@drexel.edu>
#
-# This file is part of tempcontrol.
+# This file is part of pypid.
#
-# tempcontrol is free software: you can redistribute it and/or
+# pypid is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
-# tempcontrol is distributed in the hope that it will be useful,
+# pypid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with tempcontrol. If not, see
+# License along with pypid. If not, see
# <http://www.gnu.org/licenses/>.
"""Assorted backends for interfacing with your particular hardware.
def _import_by_name(modname):
"""
- >>> mod = _import_by_name('tempcontrol.backend.melcor')
+ >>> mod = _import_by_name('pypid.backend.melcor')
>>> 'MelcorBackend' in dir(mod)
True
- >>> _import_by_name('tempcontrol.backend.highly_unlikely')
+ >>> _import_by_name('pypid.backend.highly_unlikely')
Traceback (most recent call last):
...
ImportError: No module named highly_unlikely
# Copyright (C) 2008-2011 W. Trevor King <wking@drexel.edu>
#
-# This file is part of tempcontrol.
+# This file is part of pypid.
#
-# tempcontrol is free software: you can redistribute it and/or
+# pypid is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
-# tempcontrol is distributed in the hope that it will be useful,
+# pypid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with tempcontrol. If not, see
+# License along with pypid. If not, see
# <http://www.gnu.org/licenses/>.
import struct as _struct
# Copyright (C) 2011 W. Trevor King <wking@drexel.edu>
#
-# This file is part of tempcontrol.
+# This file is part of pypid.
#
-# tempcontrol is free software: you can redistribute it and/or
+# pypid is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
-# tempcontrol is distributed in the hope that it will be useful,
+# pypid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with tempcontrol. If not, see
+# License along with pypid. If not, see
# <http://www.gnu.org/licenses/>.
import threading as _threading
# Copyright (C) 2008-2011 W. Trevor King <wking@drexel.edu>
#
-# This file is part of tempcontrol.
+# This file is part of pypid.
#
-# tempcontrol is free software: you can redistribute it and/or
+# pypid is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
-# tempcontrol is distributed in the hope that it will be useful,
+# pypid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with tempcontrol. If not, see
+# License along with pypid. If not, see
# <http://www.gnu.org/licenses/>.
import time as _time
class Controller (object):
"""PID temperature control frontend.
- backend: tempcontrol.backend.Backend instance
+ backend: pypid.backend.Backend instance
backend driving your particular harware
setpoint: float
initial setpoint in degrees Celsius
# Copyright (C) 2008-2011 W. Trevor King <wking@drexel.edu>
#
-# This file is part of tempcontrol.
+# This file is part of pypid.
#
-# tempcontrol is free software: you can redistribute it and/or
+# pypid is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
#
-# tempcontrol is distributed in the hope that it will be useful,
+# pypid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with tempcontrol. If not, see
+# License along with pypid. If not, see
# <http://www.gnu.org/licenses/>.
"Basic testing for `Controller`\s and `Backend`\s"
-"""A modular temperature control library.
+"""A modular PID control library.
"""
from distutils.core import setup
import os.path
-from tempcontrol import __version__
+from pypid import __version__
_this_dir = os.path.dirname(__file__)
base_url = 'http://physics.drexel.edu/~wking'
-setup(name='tempcontrol',
+setup(name='pypid',
version=__version__,
maintainer='W. Trevor King',
maintainer_email='wking@drexel.edu',
- url = '{}/unfolding-disasters/posts/tempcontrol'.format(base_url),
- download_url = '{}/code/python/tempcontrol-{}.tar.gz'.format(
+ url = '{}/unfolding-disasters/posts/pypid'.format(base_url),
+ download_url = '{}/code/python/pypid-{}.tar.gz'.format(
base_url, __version__),
license = 'GNU General Public License (GPL)',
platforms = ['all'],
description = __doc__,
long_description = open(os.path.join(_this_dir, 'README'), 'r').read(),
- packages=['tempcontrol', 'tempcontrol.backend'],
+ packages=['pypid', 'pypid.backend'],
classifiers = [
'Development Status :: 2 - Pre-Alpha',
'Intended Audience :: Developers',