00001 """A shakedown application for the use of the dstp server. Maybe out of date"""
00002 _rcsid="$Id: dstp_data_fit.py,v 1.4 2003/05/30 13:31:55 mendenhall Release-20030716 $"
00003
00004 import sys
00005 import os
00006
00007 sys.path.append(os.path.join(os.path.dirname(__file__),"data acquisition"))
00008
00009 import time
00010 import threading
00011 import array
00012 import traceback
00013 import Numeric
00014 import math
00015
00016 import nati_dstp_basics
00017 import tagged_data
00018 import dstp_async
00019
00020
00021 nati_dstp_basics.UseNumericArray(1)
00022
00023 print "go!"
00024
00025 s=dstp_async.DSTPServer()
00026
00027 data=tagged_data.tagged_data_system()
00028
00029
00030
00031
00032 data.define_field("XY", s, ("xyvals", [array.array('d',[]), array.array('d',[])]), writable=0)
00033 data.define_field("fitparms", s, ("parms", [0,array.array('d'),0.0,array.array('d')]), writable=1)
00034 data.define_field("quit_server", s, ("quit_server", 0), writable=0)
00035
00036
00037 def quit_server(string):
00038 if data.quit_server:
00039 s.close()
00040
00041 s.listen("quit_server", quit_server)
00042
00043 try:
00044 loopcount=0
00045
00046 def run_fit(string):
00047 global loopcount
00048
00049 try:
00050
00051 (xl,x),(yl,y)=data.XY
00052
00053
00054 loopcount += 1
00055
00056 y*=7.0
00057
00058 data.fitparms=[loopcount,y,math.sqrt(Numeric.sum((y-1)*(y-1))), y-1]
00059
00060 except:
00061 traceback.print_exc()
00062 s.close()
00063
00064
00065 s.listen("xyvals", run_fit)
00066
00067
00068 s.serve()
00069
00070 finally:
00071 s.close()
00072 time.sleep(1)