Package tacval
[hide private]
[frames] | no frames]

Source Code for Package tacval

 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