{ "info": { "author": "Andrew Straw", "author_email": "strawman@astraw.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Win32 (MS Windows)", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Manufacturing", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: Microsoft :: Windows", "Programming Language :: Python", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries" ], "description": "==================\nPyUniversalLibrary\n==================\n\nPyUniversalLibrary is a Python wrapper for Measurement Computing's\nUniversal Library for data acquisition on Microsoft Windows operating\nsystems.\n\nThis document is both the `webpage for PyUniversalLibrary`_ and the\nREADME.txt file (distributed with the source code of\nPyUniversalLibrary). It is in reStructuredText_ format.\n\n.. _webpage for PyUniversalLibrary: http://www.its.caltech.edu/~astraw/pyul.html\n.. _reStructuredText: http://docutils.sourceforge.net/rst.html\n\n.. contents::\n\nWork in Progress\n----------------\n\nCurrently PyUniversalLibrary is incomplete. I have so far wrapped\nanalog I/O, digital I/O, and temperature functions. Some of these I\nhave not personally needed, so please be aware of potential bugs. If\nyou need more functionality, you will hopefully find that the start I\nhave made in wrapping this library useful. I welcome your changes and\nadditions. I will include them with the next release with appropriate\ncredit.\n\nRelease 20061020\n````````````````\n\n**Current version**\n\nRewrote as a pure-Python implementation, which uses ctypes and numpy\n(new requirements). There is no longer a requirement on Numeric, and\nthis should work with any reasonably backwards-compatible future\nversions of Python, ctypes, and numpy. The analog output examples were\nchanged to work on USB PMD-1208FS devices.\n\nRelease 20050624 \n````````````````\n\nLots of Universal Library is now covered, including all analog I/O,\ndigital I/O, and temperature input functions.\n\nRelease 20050623\n````````````````\n\nFirst public release.\n\nAlso of interest\n----------------\n\nVarious Python wrappers for data acquisition are available. Here are a few I know of:\n\n * National Instruments NI-DAQ: http://sourceforge.net/projects/uncpythontools/\n * Data Translation: `Martin Spacek`_ has indicated (personal commication) he has drivers\n * Comedi apparently comes with Python wrappers: http://www.comedi.org/\n * `Dr. Warren Jasper's`_ `Measurement Computing USB drivers for Linux`_ (Andrew Straw has written Python wrappers for these - contact him for further information)\n\n.. _Martin Spacek: http://www.ece.ualberta.ca/~mspacek/\n.. _Dr. Warren Jasper's: http://www.tx.ncsu.edu/faculty_center/directory/detail.cfm?id=57\n.. _Measurement Computing USB drivers for Linux: ftp://lx10.tx.ncsu.edu/pub/Linux/drivers\n\nInstallation and Download\n-------------------------\n\nYou must download and install InstaCal_ from `Measurement Computing`_.\nThis contains the various libraries needed to access your hardware.\n\nYou must have Python_ installed.\n\nYou must have ctypes_ installed (this is included with Python 2.5),\nbut can be downloaded for older versions of Python.\n\nYou must have numpy_ installed.\n\n**Download PyUniversalLibrary:** Grab a binary installer or the source\ncode from the `download directory`_.\n\n*To get the examples, download the source code.* You can still install\nthe binaries.\n\nOptional\n````````\n\nIf you intend make significant use of PyUniversalLibrary, I suggest\nyou buy `Universal Library`_ C API. It costs $50 and includes\nextensive documentation and example code.\n\n.. _Measurement Computing: http://measurementcomputing.com/\n.. _InstaCal: ftp://ftp.computerboards.com/DAQ_Software_CD/swinstall.exe\n.. _Python: http://www.python.org\n.. _numpy: http://www.scipy.org/NumPy/\n.. _ctypes: http://sourceforge.net/projects/ctypes/\n.. _download directory: http://www.its.caltech.edu/~astraw/PyUniversalLibrary\n.. _Pyrex: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/\n.. _Universal Library: http://www.measurementcomputing.com/cbicatalog/cbiproduct.asp?dept%5Fid=261&pf%5Fid=1084&mscssid=RDNUK9VN7L3L8PL34QF282AX3F987098\n\nExamples\n--------\n\nHere is ulai01.py from the example directory. It is a direct\ntranslation of the essentials of ulai01.c, included with `Universal\nLibrary`_. Error checking occurs automatically through Python\nexceptions.\n\n::\n\n import UniversalLibrary as UL\n\n BoardNum = 0\n Gain = UL.BIP5VOLTS\n Chan = 0\n\n while 1:\n DataValue = UL.cbAIn(BoardNum, Chan, Gain)\n EngUnits = UL.cbToEngUnits(BoardNum, Gain, DataValue)\n\n print DataValue, EngUnits\n\n\nFurther examples are included, including a simple\nwxPython_/matplotlib_ based oscilloscope.\n\n.. _wxPython: http://wxpython.org/\n.. _matplotlib: http://matplotlib.sourceforge.net/\n\nUsage notes\n-----------\n\nNaming conventions\n``````````````````\n\n'PyUL' is used here to mean the UniversalLibray Python module. Because\nUniversalLibrary is cumbersome to type, the example programs actually\nuse \"import UniversalLibrary as UL\".\n\nPyUniversalLibrary endeavors to keep function signatures identical to\nthe C API. These sometimes result in non-Pythonic quirks: some\narguments to a function have no effect on that function because in C\nthey are output variables. In these cases, they are returned as\noutputs from the function.\n\nError handling\n``````````````\n\nThe PyUL checks for errors upon every call and raises a\nUniversalLibraryError if an error was encountered. Instances of\nUniversalLibraryError have an errno attribute which can be converted\nto a string with a call to _get_error_message(errno).\n\nInitialization\n``````````````\n\nThe short story is that importing PyUL (\"import UniversalLibrary\")\nwill do all initialization necessary.\n\nThe long story is that C programs call the cbDeclareRevision() and\ncbErrHandling() functions upon initialization. PyUL calls\ncbDeclareRevision() automatically, and calling cbErrHandling() is not\nneeded because the default state DONTPRINT, DONTSTOP, which is exactly\nwhat PyUL expects, because PyUL checks all the error codes anyhow.\n\nLicense\n-------\n\nBSD license. See the file LICENSE.txt distributed with the source\ncode.\n\nOwner: `California Institute of Technology`_\nAuthor: `Andrew Straw`_\n\n.. _California Institute of Technology: http://www.caltech.edu\n.. _Andrew Straw: http://www.its.caltech.edu/~astraw", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/astraw/PyUniversalLibrary", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "PyUniversalLibrary", "package_url": "https://pypi.org/project/PyUniversalLibrary/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/PyUniversalLibrary/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/astraw/PyUniversalLibrary" }, "release_url": "https://pypi.org/project/PyUniversalLibrary/20061020/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "20061020" }, "last_serial": 1224696, "releases": { "20061020": [ { "comment_text": "", "digests": { "md5": "9a339e5912322c3125f634b798e31682", "sha256": "632a9d4fd181e74bec9c8b2d3fede33d701df7f38be7869377edf55f72d9751f" }, "downloads": -1, "filename": "PyUniversalLibrary-20061020.win32.exe", "has_sig": false, "md5_digest": "9a339e5912322c3125f634b798e31682", "packagetype": "bdist_wininst", "python_version": "2.5", "requires_python": null, "size": 74984, "upload_time": "2014-09-15T10:35:55", "url": "https://files.pythonhosted.org/packages/a4/a6/789b44f2c753c331b127dc21e4a02255d433b1e6e204913c786b57a615fe/PyUniversalLibrary-20061020.win32.exe" }, { "comment_text": "", "digests": { "md5": "30825002ca14730e23c5e468c0fa2122", "sha256": "5053cadb396faa9d7cf7b1bf6ba04463036a52769f6781c0cc31734eba94a559" }, "downloads": -1, "filename": "PyUniversalLibrary-20061020.zip", "has_sig": false, "md5_digest": "30825002ca14730e23c5e468c0fa2122", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34351, "upload_time": "2014-09-15T10:34:26", "url": "https://files.pythonhosted.org/packages/df/91/6fbdda3a795c71ca22f9ad471db58343101d7bbd7c079ff87445abbc2cdc/PyUniversalLibrary-20061020.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a339e5912322c3125f634b798e31682", "sha256": "632a9d4fd181e74bec9c8b2d3fede33d701df7f38be7869377edf55f72d9751f" }, "downloads": -1, "filename": "PyUniversalLibrary-20061020.win32.exe", "has_sig": false, "md5_digest": "9a339e5912322c3125f634b798e31682", "packagetype": "bdist_wininst", "python_version": "2.5", "requires_python": null, "size": 74984, "upload_time": "2014-09-15T10:35:55", "url": "https://files.pythonhosted.org/packages/a4/a6/789b44f2c753c331b127dc21e4a02255d433b1e6e204913c786b57a615fe/PyUniversalLibrary-20061020.win32.exe" }, { "comment_text": "", "digests": { "md5": "30825002ca14730e23c5e468c0fa2122", "sha256": "5053cadb396faa9d7cf7b1bf6ba04463036a52769f6781c0cc31734eba94a559" }, "downloads": -1, "filename": "PyUniversalLibrary-20061020.zip", "has_sig": false, "md5_digest": "30825002ca14730e23c5e468c0fa2122", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34351, "upload_time": "2014-09-15T10:34:26", "url": "https://files.pythonhosted.org/packages/df/91/6fbdda3a795c71ca22f9ad471db58343101d7bbd7c079ff87445abbc2cdc/PyUniversalLibrary-20061020.zip" } ] }