1 '''
2 Introduction
3 ============
4
5 Welcome to B{TacVal}, the noble gas extraction line controller for the New Mexico Geochronology Research Laboratory
6
7 Feature List
8 ============
9 1. Interactive 2D and 3D (implemented with U{OpenGL <http://www.opengl.org>}) extraction line schematics
10 2. Serial Communications with Ion and MicroPirani gauges and Agilent
11 3. Realtime streaming graphs of transducer pressures
12 4. Communicates with an embedding http server to post extraction line info to the web U{CherryPy <http://www.cherrypy.org/>}
13 5. Can post updates to the NMGRL twitter page
14 6. MySQL, Postgresql,Oracle,MSSQL,Firebird,SQLite database read/write access U{SQLAlchemy <http://www.sqlalchemy.org/>}
15 7. Thread safe run manager to execute runscripts
16 8. Controllable by other programs
17 using python sockets the extraction line controller listens to a specified port for incoming commands to add to the command
18 queue. sockets also provide the means of communication between the http server and extraction line controller
19 9. HDF5 read/write capabilities U{PyTables <http://www.pytables.org>}. With a RDBMS these hierarchal data files can be very powerful
20 10. System monitor that listens for problems with the extraction line and alerts the user. If no user action is taken after a specified
21 time the program performs a default action.
22
23 Description
24 ===========
25 Tacval is currently used to view and record extraction line pressures (see L{GaugeManager}) and actuate
26 (open/close) pneumatic vacuum valves (see L{ValveManager}).
27
28 The basic structure of tacval is as follows
29
30 An L{ExtractionLineManager} has a set of managers
31 1. a collection of L{BaseGauge} are managed by a L{GaugeManager}
32 - Gauge manager has a L{ScanThread} the contains a C{Queue} object. The Gauge manager processes commands from
33 the queue one at a time passing control to the L{BaseGauge} to actually complete the requested task
34 2. a collection of L{Valve}s are managed by a L{ValveManager}
35 - the valve manager uses a L{Actuator} to open and close the Agilent GP switch channels
36 3. a collection of L{Laser}s are managed by a L{LaserManager}
37
38 and two display canvases
39
40 1. L{ExtractionLineCanvas2D}
41 2. L{ExtractionLineCanvas3D}
42 - the 3D interface is designed as a virtual representation of the physical extraction line. Valves are represented
43 by spheres. A red sphere indicates the valve is closed and a green sphere equals open. If the sphere is decorated by
44 smaller indicator spheres then the valve is in manual control and any commands from a runscript are blocked. Clicking
45 on the sphere will perform the current tool action
46 - the 3D interface has three tool states and two view states for the mouse.
47 - View States
48 - Rotate, the view can be changed in 3 dimensions
49 - Pan, the view can be changed in only the X and Y dimensions
50 - Tool States
51 - Auto, set the valve to auto control. Does not actuate the valve
52 - Manual, open or close the valve
53 - Sample, open the valve for a specified time and close. B{note: Cannot sample an open valve}
54
55
56 Gauge Manager
57 -------------
58 The L{GaugeManager} is composed of two views
59
60 1. Gauge Table.
61 - list of the currently configured gauges
62 2. LED Panel Meters
63 - display the pressure (default units torr) for the associated gauge
64
65 @author: Jake Ross
66 @copyright: 2009
67 @license: Educational Community License 1.0
68
69
70
71 '''
72