- import os
-
-
- class Run():
- def __init__(self, r, a, b, d, bl, ad, aod):
- self.RUN = r
- self.ANGLE = a
- self.BIAS = b
- self.DUT = d
- self.BLOCK = bl
- absad = os.path.abspath( ad )
- if not os.path.exists(absad):
- os.system('mkdir -p %s' % absad)
- absaod = os.path.abspath( aod )
- if not os.path.exists(absaod):
- os.system('mkdir -p %s' % absaod)
- self.ALIGNFILE = absad+'/Alignment'+self.RUN+'.dat'
- self.ALIGNOUTFILE = absaod+'/Alignment'+self.RUN+'.dat'
-
- def createAlignFile(self):
- devs = ['', 'W0002_J06','W0002_B05','W0002_C05','W0002_D05',self.DUT,'W0002_G05','W0002_F05','W0002_H07','W0002_E05']
- s = ''
- zfile = open('ZPos.txt','r')
- for ll in zfile.readlines():
- l = ll.split()
- if '#' in l[0]:
- continue
- if l[0] == self.BLOCK:
- z = l
- for i in range(9):
- if i < 4:
- s+= '%s 14.03 14.03 %s 2.9845 3.299 0.\n' % (devs[i+1], z[i+1])
- elif i == 4:
- s+= '%s 0.0 14.03 %s 3.141 %f 0.\n' % (devs[i+1], z[i+1], float(self.ANGLE)*3.141/180. )
- else:
- s+= '%s 0.0 14.03 %s 3.299 0.157 0.\n' % (devs[i+1], z[i+1])
-
- af = open(self.ALIGNFILE, 'w')
- af.write(s)
- af.close
-
- class Runs():
- def __init__(self, b, type):
- self.BLOCKS = b
- if type == 'survey':
- ad = 'init'
- elif type == 'mille':
- ad = 'survey'
- elif type == 'dut':
- ad = 'mille'
- else:
- ad = 'dut'
- self.TYPE = type
- self.ALIGNDIR = "Alignments/%s/" % (ad)
- print self.ALIGNDIR
- self.ALIGNOUTDIR = "Alignments/%s/" % (type)
- self.RUNS = self.defRuns()
- self.OUTPUTDIR = ''
-
- def defRuns(self):
- rs = {}
- f = open('runList.txt','r')
- for ll in f.readlines():
- l = ll.split()
- if '#' in l[0]:
- continue
- r = l[0]
- a = l[1]
- b = l[2]
- d = l[3]
- bl= l[4]
- if bl in self.BLOCKS:
- run = Run(r,a,b,d, bl, self.ALIGNDIR, self.ALIGNOUTDIR)
- if bl in rs:
- rs[bl].append(run)
- else:
- rs[bl] = [run]
- f.close()
- return rs
-
- def findRun(self, rn):
- for b in self.RUNS:
- for r in self.RUNS[b]:
- if r.RUN == rn:
- return r
-
- def setOutputDir(self, od):
- self.OUTPUTDIR = od