Changeset 744 in ETALON


Ignore:
Timestamp:
Nov 2, 2017, 12:38:09 PM (7 years ago)
Author:
delerue
Message:

CLIO control system updated

Location:
CLIO/control
Files:
1 added
9 edited
1 copied

Legend:

Unmodified
Added
Removed
  • CLIO/control/CLIO_graphical_interface.py

    r691 r744  
    1515import os
    1616import subprocess
     17import urllib2
    1718
    1819#from motor_function import *
     
    2627from clio_constants import *
    2728
    28 INSERTED_VALUE1=4000000
     29INSERTED_VALUE1=5500000
    2930INSERTED_VALUE2=5000000
    3031
     
    3233threshold_old=      100
    3334
    34 ImagesDisplaySize=(600,400)
     35ImagesDisplaySize=(400,300)
     36N_IMAGES_LINES=2
     37N_IMAGES_COLS=3
     38N_IMAGES=N_IMAGES_LINES*N_IMAGES_COLS
    3539
    3640PROCESSES_REFRESH_INTERVAL=10
    3741
    3842imageNames=[]
    39 imageNames.append(code_directory+"no_data.png")
    40 imageNames.append(code_directory+"no_data.png")
     43for iimage in range(N_IMAGES):
     44    imageNames.append(code_directory+"no_data.png")
     45   
     46URI='http://'+IP_POWER_IP+'/Set.cmd'
     47auth_handler=urllib2.HTTPBasicAuthHandler()
     48auth_handler.add_password(realm='IP9258',uri=URI,user='admin',passwd='12345678')
     49opener= urllib2.build_opener(auth_handler)
     50urllib2.install_opener(opener)
    4151
    4252#This is used for variables that are not updated on each refresh cycle
     
    5868        self.terminate=0
    5969        self.refresh_loop=0
    60         print(data_directory)
    6170        # canvas for image
    62         self.canvas = Canvas(self.parent, width=800, height=400)
     71        self.canvas = Canvas(self.parent, width=800, height=800)
    6372        self.frameImages = Frame(self.parent, borderwidth=10)
    6473        self.frameImages.grid(row=1, column=0)
    6574        self.my_images=[]
    66         self.my_images.append(ImageTk.PhotoImage(Image.open(imageNames[0]).resize(ImagesDisplaySize, Image.ANTIALIAS)))
    67         self.my_images.append(ImageTk.PhotoImage(Image.open(imageNames[1]).resize(ImagesDisplaySize, Image.ANTIALIAS)))
    68         self.imageLabel1=Label(self.frameImages,image=self.my_images[0])
    69         self.imageLabel1.pack(side = "left", fill = "both", expand = "yes")
    70         self.imageLabel2=Label(self.frameImages,image=self.my_images[1])
    71         self.imageLabel2.pack(side = "right", fill = "both", expand = "yes")
     75        self.imageLabel=[]
     76        self.newImage=[]       
     77        for iline in range(N_IMAGES_LINES):
     78            for icol in range(N_IMAGES_COLS):
     79                iimage=iline*N_IMAGES_COLS+icol
     80                self.my_images.append(ImageTk.PhotoImage(Image.open(imageNames[iimage]).resize(ImagesDisplaySize, Image.ANTIALIAS)))
     81                self.imageLabel.append(Label(self.frameImages,image=self.my_images[iimage]))
     82                self.imageLabel[iimage].grid(row=iline,column=icol)
    7283
    7384        #Control buttons
     
    98109        self.labelAcquisitionStatus=Label(self.frameAcquisition,text='Status: unkown', bg='magenta')
    99110        self.labelAcquisitionStatus.grid(row=3,column=0)
     111        self.labelAcquisitionRate=Label(self.frameAcquisition,text='Rate: unkown', bg='magenta')
     112        self.labelAcquisitionRate.grid(row=4,column=0)
     113        self.labelAcquisitionPause=Label(self.frameAcquisition,text='Pause: unkown', bg='magenta')
     114        self.labelAcquisitionPause.grid(row=5,column=0)
    100115     
    101            
     116        #Power status
     117        self.framePower = Frame(self.frameAllControls, borderwidth=10, relief=SUNKEN)
     118        self.framePower.pack(side=LEFT)
     119        labelPower=Label(self.framePower,text='IP Power')
     120        labelPower.grid(row=0,column=0,columnspan=2)
     121        self.buttonPower=[ Button(self.framePower, text=str(ipower), command= lambda v=ipower: self.onButtonPower(v)) for ipower in range(4) ]
     122        for ipower in range(4):
     123            self.buttonPower[ipower].grid(row=ipower+1,column=0)
     124            #self.buttonPower[ipower].pack(side=BOTTOM)
     125        self.buttonPower[0].config(text="Camera")
     126        self.buttonPower[1].config(text="Blinker")
     127        self.buttonPower[2].config(text="Amplifier")
     128        self.buttonPower[3].config(text="Wago+Pot")
     129                   
    102130        #Motor function
    103131        self.frameMotors = Frame(self.frameAllControls, borderwidth=10, relief=SUNKEN)
     
    135163        self.frameProcesses = Frame(self.frameAllControls, borderwidth=10, relief=SUNKEN)
    136164        self.frameProcesses.pack(side=LEFT)
     165        self.labelProcessIPPower=Label(self.frameProcesses,text='IP Power', bg='blue')
     166        self.labelProcessIPPower.grid(row=0,column=0,columnspan=1)
    137167        self.labelProcessWago=Label(self.frameProcesses,text='WAGO', bg='blue')
    138         self.labelProcessWago.grid(row=0,column=0,columnspan=1)
     168        self.labelProcessWago.grid(row=1,column=0,columnspan=1)
    139169        self.labelProcessMotorMonitor=Label(self.frameProcesses,text='Motor monitor', bg='blue')
    140         self.labelProcessMotorMonitor.grid(row=1,column=0,columnspan=1)
     170        self.labelProcessMotorMonitor.grid(row=2,column=0,columnspan=1)
    141171        self.labelProcessSaveData=Label(self.frameProcesses,text='Savedata', bg='blue')
    142         self.labelProcessSaveData.grid(row=2,column=0,columnspan=1)
     172        self.labelProcessSaveData.grid(row=3,column=0,columnspan=1)
    143173        self.labelProcessProcessRecent=Label(self.frameProcesses,text='Process recent', bg='blue')
    144         self.labelProcessProcessRecent.grid(row=3,column=0,columnspan=1)
     174        self.labelProcessProcessRecent.grid(row=4,column=0,columnspan=1)
    145175       
    146176        #Exit
     
    165195            if (time.time()-filetime)<threshold_recent:
    166196                bgcolortxt='green'
     197                fgcolortxt='black'
    167198            elif (time.time()-filetime)<threshold_old:
    168199                bgcolortxt='blue'
    169             else:
    170                 bgcolortxt='red'
    171             self.latestFileAcquired.config(text=os.path.basename(latest_file_acquired),bg=bgcolortxt)
     200                fgcolortxt='white'
     201            else:
     202                bgcolortxt='red'
     203                fgcolortxt='black'
     204            self.latestFileAcquired.config(text=os.path.basename(latest_file_acquired),bg=bgcolortxt,fg=fgcolortxt)
    172205
    173206        list_of_files_processed = glob.glob(data_directory+"data_CLIO*.png")
    174207        #print(list_of_files_processed)
    175208        if (len(list_of_files_processed)>0):
    176             latest_file_processed = max(list_of_files_processed, key=os.path.getctime)
     209            #latest_file_processed = max(list_of_files_processed, key=os.path.getctime)
     210            latest_file_processed = max(sorted(list_of_files_processed))
    177211            filetime=os.path.getctime(latest_file_processed)
    178212            if (time.time()-filetime)<threshold_recent:
    179213                bgcolortxt='green'
     214                fgcolortxt='black'
    180215            elif (time.time()-filetime)<threshold_old:
    181216                bgcolortxt='blue'
    182             else:
    183                 bgcolortxt='red'
    184             self.latestFileProcessed.config(text=os.path.basename(latest_file_processed),bg=bgcolortxt)
     217                fgcolortxt='white'
     218            else:
     219                bgcolortxt='red'
     220                fgcolortxt='black'
     221            self.latestFileProcessed.config(text=os.path.basename(latest_file_processed),bg=bgcolortxt,fg=fgcolortxt)
    185222            imageNames[0]=latest_file_processed;
    186223
     
    189226        #print(list_of_files_with_signal)
    190227        if (len(list_of_files_with_signal)>0):
    191             latest_file_with_signal = max(list_of_files_with_signal, key=os.path.getctime)
     228            #latest_file_with_signal = max(list_of_files_with_signal, key=os.path.getctime)
     229            latest_file_with_signal = max(sorted(list_of_files_with_signal))
    192230            filetime=os.path.getctime(latest_file_with_signal)
    193231            if (time.time()-filetime)<threshold_recent:
    194232                bgcolortxt='green'
     233                fgcolortxt='black'
    195234            elif (time.time()-filetime)<threshold_old:
    196235                bgcolortxt='blue'
    197             else:
    198                 bgcolortxt='red'
    199             self.latestFileWithSignal.config(text=os.path.basename(latest_file_with_signal),bg=bgcolortxt)
    200 
    201             imageNames[0]=latest_file_with_signal.replace(".sig","_zoom.png")
    202             imageNames[1]=latest_file_with_signal.replace(".sig","_signal.png")
     236                fgcolortxt='white'
     237            else:
     238                bgcolortxt='red'
     239                fgcolortxt='black'
     240            self.latestFileWithSignal.config(text=os.path.basename(latest_file_with_signal),bg=bgcolortxt,fg=fgcolortxt)
     241
     242            imageNames[0]=latest_file_with_signal.replace(".sig",".png")
     243            imageNames[1]=latest_file_with_signal.replace(".sig","_zoom.png")
     244            imageNames[2]=latest_file_with_signal.replace(".sig","_signal.png")
    203245            time.sleep(0.1)
    204             try:
    205                 self.newImage2=ImageTk.PhotoImage(Image.open(imageNames[1]).resize(ImagesDisplaySize, Image.ANTIALIAS))
    206             except:
    207                 print("An error occurred while opening the image")
    208             self.imageLabel2.configure(image=self.newImage2)
    209             self.imageLabel2.image=self.newImage2
    210         time.sleep(0.1)
    211         try:
    212                 self.newImage1=ImageTk.PhotoImage(Image.open(imageNames[0]).resize(ImagesDisplaySize, Image.ANTIALIAS))
    213         except:
    214                 print("An error occurred while opening the image")
    215         self.imageLabel1.configure(image=self.newImage1)
    216         self.imageLabel1.image=self.newImage1
    217 
     246
     247            self.newImage=[]
     248            for iimage in range(N_IMAGES):
     249                try:
     250                    self.newImage.append(ImageTk.PhotoImage(Image.open(imageNames[iimage]).resize(ImagesDisplaySize, Image.ANTIALIAS)))
     251                    self.imageLabel[iimage].configure(image=self.newImage[iimage])
     252                    self.imageLabel[iimage].image=self.newImage[iimage]
     253                except:
     254                    print("An error occurred while opening the image: "+imageNames[iimage]+" image "+str(iimage))
     255                time.sleep(0.1)
     256
     257       
    218258        self.getMotorPosition()
    219259        #Check acquisition status
     
    221261        pause_file = glob.glob(FILE_PAUSE)
    222262        if (len(stop_file)):
    223             self.labelAcquisitionStatus.config(text="Stop",bg='red')
     263            self.labelAcquisitionStatus.config(text="Stop",bg='red',fg='black')
    224264            self.buttonAcqPause.config(text="Program stopped!")
    225265        elif (len(pause_file)):
    226             self.labelAcquisitionStatus.config(text="Pause", bg='blue')
     266            self.labelAcquisitionStatus.config(text="Pause", bg='blue',fg='white')
    227267            self.buttonAcqPause.config(text="Restart")
    228268        else:
    229             self.labelAcquisitionStatus.config(text="Enabled", bg='green')
     269            self.labelAcquisitionStatus.config(text="Enabled", bg='green',fg='black')
    230270
    231271        #check remote processes
     
    270310        if (self.refresh_loop%PROCESSES_REFRESH_INTERVAL==4):
    271311            try:
    272                 response=subprocess.check_output("ps -edf | grep -v grep | grep -c process_recent_files",shell=True)
     312#                response=subprocess.check_output("ps -edf | grep -v grep | grep -c process_recent_files",shell=True)
     313                response=subprocess.check_output("ps -edf | grep -v grep | grep -c makefile_recent",shell=True)
    273314            except:
    274315                response='0'
     
    283324                self.after(500, self.update_clock)
    284325
    285 
    286 
     326        if (self.refresh_loop%PROCESSES_REFRESH_INTERVAL==5):
     327            response=os.system("ping -c 1 "+IP_POWER_IP)
     328            if response==0:
     329                self.labelProcessIPPower.config(bg='green')
     330            else:
     331                self.labelProcessIPPower.config(bg='red')
     332
     333        if (self.refresh_loop%PROCESSES_REFRESH_INTERVAL==6):
     334            self.set_power_buttons_color()
     335
     336        if (self.refresh_loop%PROCESSES_REFRESH_INTERVAL==7):
     337            fid=open(FILE_ACQ_INFO,'r')
     338            fileline=fid.readline()
     339            print fileline
     340            key_values={}
     341            while len(fileline)>0:
     342                print fileline
     343                entries=fileline.replace('\n','').split(' ')
     344                key_values[entries[0]]=entries[1]
     345                fileline=fid.readline()
     346            fid.close()
     347            if (key_values['RATE']):
     348                rate_value=36000./float(key_values['RATE'])
     349                self.labelAcquisitionRate.config(text='Rate= '+str(rate_value)+'kS/s',bg='white')
     350           
     351            if (key_values['PAUSE']):
     352                self.labelAcquisitionPause.config(text='Wait= '+key_values['PAUSE']+' ms',bg='white')
     353           
    287354    def getMotorPosition(self):
    288355        if (len(glob.glob(motor_position_info))>0):
     
    291358            key_values={}
    292359            while len(fileline)>0:
    293                 #print fileline
     360                print fileline
    294361                entries=fileline.replace('#','').replace(' ','').replace('\n','').split('=')
    295362                key_values[entries[0]]=entries[1]
     
    298365            if key_values['motor_value']:
    299366                self.labelPositionStep.config(text=key_values['motor_value']);
    300                 self.labelPositionStep.config(bg='green');
    301             else:
    302                 self.labelPositionStep.config(bg='red');
     367                self.labelPositionStep.config(bg='green',fg='black');
     368            else:
     369                self.labelPositionStep.config(bg='red',fg='black');
    303370
    304371            if key_values['current_value']:
    305372                self.labelPositionCurrent.config(text=key_values['current_value']);
    306                 self.labelPositionCurrent.config(bg='green');
    307             else:
    308                 self.labelPositionCurrent.config(bg='red');
     373                self.labelPositionCurrent.config(bg='green',fg='black');
     374            else:
     375                self.labelPositionCurrent.config(bg='red',fg='black');
    309376        else:
    310             self.labelPositionCurrent.config(bg='blue');
    311             self.labelPositionStep.config(bg='blue');
     377            self.labelPositionCurrent.config(bg='blue',fg='white');
     378            self.labelPositionStep.config(bg='blue',fg='white');
     379
     380    def set_power_buttons_color(self):
     381        power_request=urllib2.urlopen(URI+'?CMD=GetPower')
     382        values=power_request.read().replace('<html>','').replace('</html>\r\n','').replace('p6','').split(',')
     383        #            print repr(values)
     384        for ipower in range(4):
     385            print values[ipower].split('=')[1]
     386            if (values[ipower].split('=')[1]=='1'):
     387                self.buttonPower[ipower].config(bg='green')
     388            else:
     389                self.buttonPower[ipower].config(bg='cyan')       
    312390               
    313391    #----------------
     
    360438        self.moveMotor(1,1000000)
    361439
     440    def onButtonPower(self,value):
     441        print('Power value='+str(value))
     442        print(repr(self.buttonPower[value].cget("bg")))
     443        power_state=0
     444        if (self.buttonPower[value].cget("bg")=='green'):
     445            power_state=1
     446        self.buttonPower[value].config(bg='blue')
     447        power_request=urllib2.urlopen(URI+'?CMD=SetPower+P6'+str(value+1)+'='+str(1-power_state))
     448        values=power_request.read().replace('<html>','').replace('</html>\r\n','').replace('p6','').split(',')
     449        self.after(2000, self.set_power_buttons_color)
    362450
    363451    #----------------
  • CLIO/control/clio_constants.py

    r691 r744  
    4848    motor_position_request=basedir+'acquisition_data/motor_requested_position.txt';
    4949    data_directory_base="/var/www/html/CLIO/"
     50    FILE_ACQ_INFO=basedir+'acquisition_data/acquisition_info.txt'
    5051#    data_dir="/home/etalon-admin/acquisition_data"   
    5152
     
    6869
    6970
    70 #Scope IPs
    71 SCOPE1_IP='129.175.202.193'
    72 SCOPE2_IP='129.175.202.14'
     71##Scope IPs
     72#SCOPE1_IP='129.175.202.193'
     73#SCOPE2_IP='129.175.202.14'
    7374
    74 motor_controller_IP='129.175.202.187'
     75IP_POWER_IP='10.20.60.10'
     76
     77motor_controller_IP='10.20.60.7'
    7578motor_controller_port=30000
    7679
  • CLIO/control/initialise_motors.py

    r691 r744  
    4444            value=isign*float(result[3:12])
    4545            valueOK=1
    46         except:
    47             print 'Result with error '+result
     46        except:           
     47            print 'Result with error '+result+'; message was ' +message
    4848            valueOK=0
    4949            result=''
     
    268268    "Sends ca_va query to the motor and display reply"
    269269    #    write_to_motor("ça_va?",1)
    270     ret=write_to_motor("ca_va?", 0)
     270    ret=write_to_motor("ca_va?", 1)
    271271    print "controller returned: ",ret
    272272    return ret
  • CLIO/control/makefile

    r691 r744  
    11DATAFILES=$(wildcard data_CLIO_*.txt)
    22
    3 all: all_png
     3.PHONY: all all_done clean_done
    44
    5 all_gz: $(DATAFILES:.txt=.gz)
    6 all_png: $(DATAFILES:.txt=.png)
     5all: all_done clean_done
    76
    8 %.png: %.txt
     7all_done: $(DATAFILES:.txt=.done)
     8
     9%.done: %.txt
    910        touch ~/acquisition_data/makefile_runing.date
    10         python ~/control/run_read_data.py $?
     11        echo $?
     12        mv $? ../processed/
     13        cd ../processed && python ~/control/run_read_data.py $?
     14        cd ../processed && ls -lart | tail -8
     15        pwd
     16        ls -lart | tail -5
    1117
    12 
    13 %.gz: %.png
    14         gzip -9 $*.txt
    15 
     18clean_done:
     19        rm -f *.done  ../processed/*.done
  • CLIO/control/motor_go_in_and_out_wait_for_data_narrow_scan.py

    r691 r744  
    77global data_directory
    88
    9 WAIT_FOR_N_DATA_TAKEN=1
     9WAIT_FOR_N_DATA_TAKEN=5
    1010
    1111filedata=data_directory+'position_calibration.txt'
     
    1414
    1515position_list=[4200000, 4500000]
    16 position_list.extend(range(5000000,6000000,100000))
     16position_list.extend(range(4800000,5700000,100000))
    1717position_list.append(4000000)
    1818print repr(position_list)
  • CLIO/control/motor_go_in_and_out_wait_for_data_wide_scan.py

    r691 r744  
    77global data_directory
    88
    9 WAIT_FOR_N_DATA_TAKEN=3
     9WAIT_FOR_N_DATA_TAKEN=5
    1010
    1111filedata=data_directory+'position_calibration.txt'
     
    1414
    1515#position_list=range(0,5000000,2500000)
    16 position_list=range(0000000,6000000,500000)
    17 position_list.extend(range(6000000,0000000,-200000))
     16position_list=range(0000000,5500000,500000)
     17position_list.extend(range(5600000,0000000,-200000))
    1818position_list.append(0)
    1919print repr(position_list)
  • CLIO/control/read_plot_data.py

    r691 r744  
    1 <<<<<<< .mine
    21# -*- coding: utf-8 -*-
    32"""
     
    1110import matplotlib.pyplot as plt
    1211#from time import sleep
    13 from shutil import copyfile
     12from shutil import copyfile,move
    1413import os.path
    15 
     14from scipy.fftpack import fft, ifft
     15from scipy import signal
    1616
    1717def read_plot_data(filename):
     
    2121    #electron_signal
    2222    electrons_channel=26
    23     electrons_signal_scaling=0.05
    24     electrons_threshold=-50
     23    electrons_signal_scaling=0.02
     24    electrons_threshold=-1000
     25    electrons_threshold_peak=200.
    2526    electrons_half_width=1
    2627
    2728    data_start=1
    28     data_length=7035
     29    data_length=8000
    2930    electron_pretrig=5   
    3031#    electron_trig_stop=500
     
    3940    #channels_mapping=[17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
    4041    data_mapping=[ 0,   111,   83,   76,   48,
    41                    55,   104,   69,   62,   0,
    42                    97,   90,   0,   118,   0,
    43                    0,  125,  0,  0,  0,
    44                   0,  0, 0, 0, 0,
    45                  0, 0,   0,   0,   0,
     42                   55,  104,   69,   62,    0,
     43                   97,   90,    0,  118,    0,
     44                   0,   125,    0,    0,    0,
     45                   0,     0,    0,    0,    0,
     46                   0,     0,    0,    0,    0,
    4647                   0,   0 ]
    4748
    48    
    49     #code
     49
     50    fft_depth=150#lower value -- lower number of freq.
     51
     52    #figure_size (in inches, that is 100*pixels with dpi=100)
     53    figure_size=(8, 6)
     54    figure_dpi=100
     55   
     56    #sort the angles and find corresponding channels
    5057    angles_sorted=[]
    5158    idx_angles_sorted=[]
     
    6168                idx_angles_sorted.append(data_mapping.index(angle))
    6269            idx_data_mapping[data_mapping.index(angle)]=int(len(angles_sorted))
    63    
    64     key_values={}
     70    #Check if the filename contains the path or not
    6571    if (len(os.path.dirname(filename))==0):
    6672        filename="./"+filename
    67        
     73    dayname=os.path.basename(filename).replace("-","").split("_")[2]
     74    target_directory=os.path.dirname(filename)+"/../"+dayname+"/"
     75    target_filename=target_directory+os.path.basename(filename)
     76   
     77    #read parameters   
     78    key_values={}
    6879    with open(filename,'r') as fid:
    6980        fileline=fid.readline()
     
    7485    fid.close()
    7586       
    76     print(key_values)        
    77        
     87    for p in key_values: print p,'=', key_values[p]       
     88    #read data   
    7889    alldata=np.loadtxt(filename, dtype='int32', comments='#', delimiter='  ', usecols=range(0,nchannels), converters={ _:lambda s:  int(s , 16)  for _ in range(0,nchannels) })
    7990   
    8091    #converting the data in the correct format
    81     alldata=alldata%(2**16)
    82     alldata=(2**15)-alldata
    83     data_scaling_factor=(float(key_values['amplitude'])*5.)/(2.**15)
    84     time_scaling_factor=(36./float(key_values['acquisition_rate']))*1.e-3
    85 
    86     #Looking for electrons
     92    alldata=alldata%(2**16)-2**15;
     93
     94        #Scaling
     95    #data_scaling_factor=(float(key_values['amplitude'])*5.)/(2.**15)
     96    data_scaling_factor=1;
     97    time_scaling_factor=(float(key_values['acquisition_rate'])/36.)*1.e-3
     98
     99        #remove constant components from electron signal
     100    FFT_spectrum=fft(alldata[1:data_length,electrons_channel]);
     101    Amplitude=abs(FFT_spectrum);
     102    Amplitude[0]=0;#remove constant component
     103    alldata[1:data_length,electrons_channel]=np.real(ifft(Amplitude*np.exp(1j*np.angle(FFT_spectrum))));
     104
     105
     106        #look for the electrons
     107    elec=alldata[1:data_length,electrons_channel]
     108    pos_elec=[];
     109    Elec_sig_val_arr=[];
     110    step=round(data_length/(2*(data_length*time_scaling_factor/40.)))#40 ms repetition rate
     111    for c in range(1,int(round(data_length/step)+1)):
     112        llim=int((c-1)*step);
     113        hlim=int(step*c);
     114        if hlim>data_length:
     115            hlim=int(data_length)
     116        if (max(elec[llim:hlim])>electrons_threshold_peak):
     117            pos_elec.append(llim+np.argmax(elec[llim:hlim]))
     118            Elec_sig_val_arr.append(min(elec[llim:hlim]));
     119    #print Elec_sig_val_arr
     120
    87121    electrons_found=False
    88     if (min(alldata[:,electrons_channel])<electrons_threshold):
    89         elec=alldata[:,electrons_channel]
    90         pos_elec=elec.argmin()
    91         while ((pos_elec>100)and(elec[pos_elec]<electrons_threshold)):
    92             pos_elec=pos_elec-1
    93         if ((elec[pos_elec+electrons_half_width]<electrons_threshold)or(elec[pos_elec-electrons_half_width]<electrons_threshold)):       
    94             electrons_found=True
    95             electron_data_start=pos_elec-electron_pretrig           
    96             electron_data_stop=pos_elec+electron_trig_stop
    97             print('electrons found')
    98 
    99     #Mean position value   
    100 #    mean_position=np.mean(alldata[:,electrons_channel])
    101 #    print('Mean position: ', mean_position)
    102 #    filename_position=filename.replace('.txt','.pos')
    103 #    fid=open(filename_position,'w')
    104 #    fid.write("pos: "+str(round(mean_position,3)))
    105 #    fid.close()
    106 
    107 
     122
     123        # fft filtering
     124    for c in range(0,11):
     125                FFT_spectrum=fft(alldata[1:data_length,idx_angles_sorted[c]]);
     126                Phase=np.angle(FFT_spectrum);
     127                Amplitude=abs(FFT_spectrum);
     128                Amplitude[(1+fft_depth):(data_length-fft_depth)]=0;
     129                Amplitude[0]=0;#remove constant component
     130                Signal=ifft(Amplitude*np.exp(1j*Phase));
     131                alldata[1:data_length,idx_angles_sorted[c]]=np.real(Signal);
     132
     133        #Find the amplitude of the signal
     134    Sig = [0 for x in range(len(pos_elec))]
     135    Sig_mean=[0 for x in range(12)]
     136    Sig_std=[0 for x in range(12)]
     137    Elec_sig_val=0;
     138    Elec_sig_val_err=0;
     139    if (len(pos_elec)>0.):
     140        electrons_found=True
     141        if (pos_elec[0]-50)>0:
     142            electron_data_start=pos_elec[0]-50
     143        else:
     144            electron_data_start=0
     145        if (pos_elec[0]+50)<data_length:
     146            electron_data_stop=pos_elec[0]+50
     147        else:
     148            electron_data_stop=(data_length-1)       
     149        Elec_sig_val=np.mean(Elec_sig_val_arr);
     150        Elec_sig_val_err=np.std(Elec_sig_val_arr);
     151        print 'electrons found:', Elec_sig_val,'+/-', Elec_sig_val_err
     152                # Signal amplitude
     153        for c in range(0,12):
     154            for k in range(0,len(pos_elec)):
     155                Sig[k]=alldata[(pos_elec[k]+14),idx_angles_sorted[c]]-alldata[(pos_elec[k]-14),idx_angles_sorted[c]]
     156            Sig_mean[c]=-np.mean(Sig)#mean of signal in one file
     157            Sig_std[c]=np.std(Sig)#std in one file
     158
     159        move(filename,target_filename)
     160           
     161    #print Sig_mean, Sig_std
     162
     163 
    108164    #prepare the figures   
    109     fig=plt.figure(1,figsize=(12, 8))
     165    fig=plt.figure(1,figsize=figure_size,dpi=figure_dpi)
    110166    if electrons_found:
    111         figzoom=plt.figure(2,figsize=(12, 8))
    112         figsignal=plt.figure(3,figsize=(12, 8))
    113         datasignal=np.zeros(len(angles_sorted))
    114         filename_zoom_txt=filename.replace('.txt','.zoom_txt')
    115         fidz=open(filename_zoom_txt,'w')
    116         for jdata in range(electron_data_start,electron_data_stop):
    117             fidz.write(str(jdata*time_scaling_factor))
    118             fidz.write(" ")
    119         fidz.write("\n")
    120 
     167        figzoom=plt.figure(2,figsize=figure_size,dpi=figure_dpi)
     168        figsignal=plt.figure(3,figsize=figure_size,dpi=figure_dpi)
     169
     170        #set channels to plot
     171    plotch=data_mapping;
     172    plotch[electrons_channel]=1;
     173    plotch[16]=0;
     174   # plotch[electrons_channel+1]=1001;
    121175
    122176    for idata in range(0,nchannels-1):
    123         this_data_scaling_factor=data_scaling_factor*-1
     177       
     178        this_data_scaling_factor=data_scaling_factor
    124179        txtline='r'
    125         if idata%12==0:
    126             txtline='b'
    127         if data_mapping[idata] >0:
     180        linestyle='-';
     181        if data_mapping[idata] >0:
    128182            txtline='r'
    129         else:
    130             txtline='b'
    131 
    132         linestyle='-'
    133         if idata==electrons_channel:
    134             txtline='k'
    135             this_data_scaling_factor=this_data_scaling_factor*electrons_signal_scaling
    136 
    137         if ((idata!=position_channel)and(idata!=22)and(idata!=21)):
    138             #        data_start=9022
    139             #        data_length=9035
     183            if data_mapping[idata] >1000:
     184                txtline='b'
     185               
     186            if idata==electrons_channel:
     187                        txtline='k'
     188                        this_data_scaling_factor=this_data_scaling_factor*electrons_signal_scaling
    140189            plt.figure(1)
    141             plt.plot(np.arange(data_start,data_length)*time_scaling_factor,alldata[range(data_start,data_length),idata].astype(np.float)*this_data_scaling_factor, txtline+linestyle)
    142             #    plt.show()
    143            
     190            plt.plot(np.arange(data_start,data_length)*time_scaling_factor,alldata[range(data_start,data_length),idata]*this_data_scaling_factor, txtline+linestyle)
    144191            if (electrons_found):
    145                 plt.figure(2)
    146                 this_channel_baseline=0
    147                 baseline_offset=100
    148                 baseline_length=100
    149                 if (pos_elec>1000):
    150                     this_channel_baseline=np.mean(alldata[range(electron_data_start-baseline_offset-baseline_length,electron_data_stop-baseline_offset),idata])
    151                     this_channel_baseline_rms=np.std(alldata[range(electron_data_start-baseline_offset-baseline_length,electron_data_stop-baseline_offset),idata])*-1
    152                 else:
    153                     this_channel_baseline=np.mean(alldata[range(electron_data_start+baseline_offset,electron_data_stop+baseline_offset+baseline_length),idata])
    154                     this_channel_baseline_rms=np.sqrt(np.std(alldata[range(electron_data_start+baseline_offset,electron_data_stop+baseline_offset+baseline_length),idata]))*-1
    155                    
    156                 plt.plot(np.arange(electron_data_start,electron_data_stop)*time_scaling_factor,(alldata[range(electron_data_start,electron_data_stop),idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor, txtline+linestyle)
    157                 plt.plot(np.arange(electron_data_start,electron_data_stop)*time_scaling_factor,np.zeros(len(range(electron_data_start,electron_data_stop)))+(this_channel_baseline_rms*this_data_scaling_factor), txtline+":")
    158                 for jdata in range(electron_data_start,electron_data_stop):
    159                     fidz.write('{:06.5e}'.format((alldata[jdata,idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor))
    160                     fidz.write(" ")
    161                 fidz.write("\n")
    162                    
    163                 if data_mapping[idata]>0:
    164                     plt.figure(3)
    165                     txtline=txtline+'^'                   
    166 #                    datasignal[idx_data_mapping[idata]-1]=np.mean(alldata[range(pos_elec+electron_post_trig_integration_start,pos_elec+electron_post_trig_integration_stop),idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor
    167                     datasignal[idx_data_mapping[idata]-1]=np.mean(alldata[range(pos_elec+electron_post_trig_integration_start,pos_elec+electron_post_trig_integration_stop),idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor
    168                     plt.plot(data_mapping[idata], -1*datasignal[idx_data_mapping[idata]-1], txtline+linestyle)
     192                plt.figure(2)                       
     193                plt.plot(np.arange(electron_data_start,electron_data_stop)*time_scaling_factor, (alldata[range(electron_data_start,electron_data_stop),idata]-alldata[(pos_elec[0]-14),idata])*this_data_scaling_factor, txtline+linestyle)
     194
    169195           
    170196    plt.figure(1)
    171197    plt.title(key_values['date']+ ' ---  Motor value:  '+key_values['motor_value']+ ' ---  Current:  '+key_values['current_value'])
    172     plt.ylabel('Signal amplitude [V]')
     198    plt.ylabel('Signal amplitude [a.u.]')
    173199    plt.xlabel('Time [ms]')
    174200    plt.grid(True)
    175     imagename=filename.replace('.txt','.png')
     201    imagename=target_filename.replace('.txt','.png')
    176202    print(imagename)
    177203    fig.savefig(imagename)
    178204    plt.close(fig)
    179205    imagename_no_path=os.path.basename(imagename)
    180     fid=open('list.html','a');
     206
     207
     208    fid=open(target_directory+'list.html','a');
    181209    fid.write("<A HREF=")
    182210    fid.write(imagename_no_path)
     
    191219
    192220    if (electrons_found):
    193         fidz.close()
    194221        plt.figure(2)
    195222        plt.title(key_values['date']+ ' ---  Motor value:  '+key_values['motor_value']+ ' ---  Current:  '+key_values['current_value'])
    196         plt.ylabel('Signal amplitude [V] - pedestal removed')
     223        plt.ylabel('Signal amplitude [a.u] - pedestal removed')
    197224        plt.xlabel('Time [ms]')
    198225        plt.grid(True)       
    199         imagenamezoom=filename.replace('.txt','_zoom.png')
     226        imagenamezoom=target_filename.replace('.txt','_zoom.png')
    200227        figzoom.savefig(imagenamezoom)
    201228        plt.close(figzoom)
     
    215242       
    216243        plt.figure(3)
    217         plt.plot(angles_sorted,-1*datasignal,'b--')
     244        plt.plot(range(48,132,7), Sig_mean,'r^-')
    218245        plt.title(key_values['date']+ ' ---  Motor value:  '+key_values['motor_value']+ ' ---  Current:  '+key_values['current_value'])
    219         plt.ylabel('Signal amplitude [V]')
    220         plt.xlabel('Detector angle (degree)')
     246        plt.ylabel('Signal amplitude [a.u.]')
     247        plt.xlabel('Detector angle [deg.]')
    221248        plt.grid(True)       
    222         imagenamesignal=filename.replace('.txt','_signal.png')
     249        imagenamesignal=target_filename.replace('.txt','_signal.png')
    223250        figsignal.savefig(imagenamesignal)
    224251        plt.close(figsignal)
    225252        copyfile(imagenamesignal,os.path.dirname(imagename)+'/last_signal.png')
    226253
    227        
    228         filenamesig=filename.replace('.txt','.sig')
    229         fid=open(filenamesig,'w');       
    230         for idata in range(0,len(datasignal)):
    231             fid.write(str(angles_sorted[idata])+" "+str(datasignal[idata])+"\n")
    232         fid.write("\n")
    233         fid.close()
    234 
    235         filenameval=filename.replace('.txt','.val')
    236         fid=open(filenameval,'w');
    237         for key in key_values:
    238             fid.write(key+" = "+key_values[key]+" \n");
    239         fid.close()
    240    
    241254        imagenamesignal_no_path=os.path.basename(imagenamesignal)
    242255        fid=open('signal_list.html','a');
     
    251264        fid.close()
    252265       
     266    filenamesig=target_filename.replace('.txt','.sig')
     267    fid=open(filenamesig,'w');
     268    for key in key_values:
     269            fid.write("#" +key+" = "+key_values[key]+" \n");
     270    fid.write("#electronsig = "+ str(Elec_sig_val)+" \n"); 
     271    fid.write("#electronstd = "+ str(Elec_sig_val_err)+" \n");     
     272    for idata in range(0,len(Sig_mean)):
     273        fid.write(str(angles_sorted[idata])+"\t"+str(Sig_mean[idata])+"\t"+str(Sig_std[idata])+"\n")
     274    fid.write("\n")
     275    fid.close()
     276
     277    filenamedone=filename.replace('.txt','.done')
     278    fid=open(filenamedone,'a');
     279    fid.write("done")
     280    fid.close()
     281   
    253282    return;
    254283
    255 
    256 #read_plot_data('/Users/delerue/Downloads/CLIO/data_CLIO_2017-02-08_17-26-53.txt')
    257 #read_plot_data('/Users/delerue/Downloads/CLIO_tmp/20170227/data_CLIO_2017-02-27_12-01-14.txt')
    258 #read_plot_data('/Users/delerue/Downloads/CLIO_tmp/20170227/data_CLIO_2017-02-27_12-43-46.txt')
    259 #HWaddr 64:00:6a:3a:6f:1c
    260 ||||||| .r0
    261 =======
    262 # -*- coding: utf-8 -*-
    263 """
    264 Created on Mon Feb  6 15:47:25 2017
    265 
    266 @author: delerue
    267 """
    268 
    269 
    270 import numpy as np
    271 import matplotlib.pyplot as plt
    272 #from time import sleep
    273 from shutil import copyfile
    274 import os.path
    275 
    276 
    277 def read_plot_data(filename):
    278     #Definitions
    279     nchannels=32
    280        
    281     #electron_signal
    282     electrons_channel=30
    283     electrons_signal_scaling=0.05
    284     electrons_threshold=-5000
    285     electrons_half_width=5
    286 
    287     data_start=1
    288     data_length=9035
    289     electron_pretrig=5   
    290 #    electron_trig_stop=500
    291     electron_trig_stop=20
    292     electron_post_trig_integration_start=1
    293     electron_post_trig_integration_stop=5
    294 
    295     #position signal
    296     position_channel=28
    297 
    298     #channels mapping
    299     #channels_mapping=[17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
    300     data_mapping=[ 0,   0,   0,   0,   0,
    301                    0,   0,   0,   0,   0,
    302                    0,   0,   0,   0,   0,
    303                    30,  40,  50,  60,  70,
    304                   80,  90, 100, 110, 120,
    305                  130, 140,   0,   0,   0,
    306                    0,   0 ]
    307 
    308    
    309     #code
    310     key_values={}
    311     if (len(os.path.dirname(filename))==0):
    312         filename="./"+filename
    313        
    314     with open(filename,'r') as fid:
    315         fileline=fid.readline()
    316         while fileline[0]=='#':               
    317             entries=fileline.replace('#','').replace(' ','').replace('\n','').split('=')
    318             key_values[entries[0]]=entries[1]
    319             fileline=fid.readline()
    320     fid.close()
    321        
    322     print(key_values)       
    323        
    324     alldata=np.loadtxt(filename, dtype='int32', comments='#', delimiter='  ', usecols=range(0,nchannels), converters={ _:lambda s:  int(s , 16)  for _ in range(0,nchannels) })
    325    
    326     #converting the data in the correct format
    327     alldata=alldata%(2**16)
    328     alldata=(2**15)-alldata
    329     data_scaling_factor=(float(key_values['amplitude'])*5.)/(2.**15)
    330     time_scaling_factor=(36./float(key_values['acquisition_rate']))*1.e-3
    331 
    332     #Looking for electrons
    333     electrons_found=False
    334     if (min(alldata[:,electrons_channel])<electrons_threshold):
    335         elec=alldata[:,electrons_channel]
    336         pos_elec=elec.argmin()
    337         while ((pos_elec>100)and(elec[pos_elec]<electrons_threshold)):
    338             pos_elec=pos_elec-1
    339         if ((elec[pos_elec+electrons_half_width]<electrons_threshold)or(elec[pos_elec-electrons_half_width]<electrons_threshold)):       
    340             electrons_found=True
    341             electron_data_start=pos_elec-electron_pretrig           
    342             electron_data_stop=pos_elec+electron_trig_stop
    343             print('electrons found')
    344             print elec[pos_elec]
    345             print pos_elec
    346            
    347        
    348 
    349     #Mean position value   
    350     mean_position=np.mean(alldata[:,electrons_channel])
    351     print('Mean position: ', mean_position)
    352     filename_position=filename.replace('.txt','.pos')
    353     fid=open(filename_position,'w')
    354     fid.write("pos: "+str(round(mean_position,3)))
    355     fid.close()
    356 
    357 
    358     #prepare the figures   
    359     fig=plt.figure(1,figsize=(12, 8))
    360     if electrons_found:
    361         figzoom=plt.figure(2,figsize=(12, 8))
    362         figsignal=plt.figure(3,figsize=(12, 8))
    363         datasignal=np.zeros(11)
    364         filename_zoom_txt=filename.replace('.txt','.zoom_txt')
    365         fidz=open(filename_zoom_txt,'w')
    366         for jdata in range(electron_data_start,electron_data_stop):
    367             fidz.write(str(jdata*time_scaling_factor))
    368             fidz.write(" ")
    369         fidz.write("\n")
    370 
    371 
    372     for idata in range(17,nchannels):
    373         this_data_scaling_factor=data_scaling_factor*-1
    374         txtline='r'
    375         if idata%6==0:
    376             txtline='b'
    377         if idata%6==1:
    378             txtline='g'
    379         if idata%6==2:
    380             txtline='k'
    381         if idata%6==3:
    382             txtline='c'
    383         if idata%6==4:
    384             txtline='m'
    385         if idata%6==5:
    386             txtline='y'
    387         if idata==17:
    388             txtline='r'
    389         if idata==20:
    390             txtline='r'
    391         if idata==22:
    392             txtline='r'
    393         if idata==30:
    394             txtline='bs'
    395         linestyle='-'
    396         if idata==electrons_channel:
    397             this_data_scaling_factor=this_data_scaling_factor*electrons_signal_scaling
    398 
    399         if ((idata!=position_channel)):
    400             #        data_start=9022
    401             #        data_length=9035
    402             plt.figure(1)
    403             plt.plot(np.arange(data_start,data_length)*time_scaling_factor,alldata[range(data_start,data_length),idata].astype(np.float)*this_data_scaling_factor, txtline+linestyle)
    404             #    plt.show()
    405            
    406             if (electrons_found):
    407                 plt.figure(2)
    408                 this_channel_baseline=0
    409                 baseline_offset=100
    410                 baseline_length=100
    411                 if (pos_elec>1000):
    412                     this_channel_baseline=np.mean(alldata[range(electron_data_start-baseline_offset-baseline_length,electron_data_stop-baseline_offset),idata])
    413                     this_channel_baseline_rms=np.std(alldata[range(electron_data_start-baseline_offset-baseline_length,electron_data_stop-baseline_offset),idata])*-1
    414                 else:
    415                     this_channel_baseline=np.mean(alldata[range(electron_data_start+baseline_offset,electron_data_stop+baseline_offset+baseline_length),idata])
    416                     this_channel_baseline_rms=np.sqrt(np.std(alldata[range(electron_data_start+baseline_offset,electron_data_stop+baseline_offset+baseline_length),idata]))*-1
    417                    
    418                 plt.plot(np.arange(electron_data_start,electron_data_stop)*time_scaling_factor,(alldata[range(electron_data_start,electron_data_stop),idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor, txtline+linestyle)
    419                 plt.plot(np.arange(electron_data_start,electron_data_stop)*time_scaling_factor,np.zeros(len(range(electron_data_start,electron_data_stop)))+(this_channel_baseline_rms*this_data_scaling_factor), txtline+":")
    420                 for jdata in range(electron_data_start,electron_data_stop):
    421                     fidz.write('{:06.5e}'.format((alldata[jdata,idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor))
    422                     fidz.write(" ")
    423                 fidz.write("\n")
    424                    
    425                 if data_mapping[idata]>0:
    426                     plt.figure(3)
    427                     txtline=txtline+'^'
    428                     datasignal[(data_mapping[idata]/10)-4]=np.mean(alldata[range(pos_elec+electron_post_trig_integration_start,pos_elec+electron_post_trig_integration_stop),idata].astype(np.float)-this_channel_baseline)*this_data_scaling_factor
    429                     plt.plot(data_mapping[idata], datasignal[(data_mapping[idata]/10)-4], txtline+linestyle)
    430            
    431     plt.figure(1)
    432     plt.title(key_values['date']+ ' ---  Position:  '+str(round(mean_position,2)))
    433     plt.ylabel('Signal amplitude [V]')
    434     plt.xlabel('Time [ms]')
    435     plt.grid(True)
    436     imagename=filename.replace('.txt','.png')
    437     print(imagename)
    438     fig.savefig(imagename)
    439     plt.close(fig)
    440     imagename_no_path=os.path.basename(imagename)
    441     fid=open('list.html','a');
    442     fid.write("<A HREF=")
    443     fid.write(imagename_no_path)
    444     fid.write("><IMG SRC=")
    445     fid.write(imagename_no_path)
    446     fid.write(" width=600>")
    447     fid.write("</A><BR/>")
    448     fid.write(imagename_no_path)
    449     fid.write("<BR/><BR/>\n")
    450     fid.close()
    451     copyfile(imagename,os.path.dirname(imagename)+'/last.png')
    452 
    453     if (electrons_found):
    454         fidz.close()
    455         plt.figure(2)
    456         plt.title(key_values['date']+ ' ---  Position:  '+str(round(mean_position,2)))
    457         plt.ylabel('Signal amplitude [V] - pedestal removed')
    458         plt.xlabel('Time [ms]')
    459         plt.grid(True)       
    460         imagenamezoom=filename.replace('.txt','_zoom.png')
    461         figzoom.savefig(imagenamezoom)
    462         plt.close(figzoom)
    463         copyfile(imagenamezoom,os.path.dirname(imagename)+'/last_zoom.png')
    464    
    465         imagenamezoom_no_path=os.path.basename(imagenamezoom)
    466         fid=open('zoom_list.html','a');
    467         fid.write("<A HREF=")
    468         fid.write(imagenamezoom_no_path)
    469         fid.write("><IMG SRC=")
    470         fid.write(imagenamezoom_no_path)
    471         fid.write(" width=600>")
    472         fid.write("</A><BR/>")
    473         fid.write(imagenamezoom_no_path)
    474         fid.write("<BR/><BR/>\n")
    475         fid.close()
    476        
    477         plt.figure(3)
    478         plt.plot(range(40,150,10),datasignal,'b--')
    479         plt.title(key_values['date']+ ' ---  Position:  '+str(round(mean_position,2)))
    480         plt.ylabel('Signal amplitude [V]')
    481         plt.xlabel('Detector angle (degree)')
    482         plt.grid(True)       
    483         imagenamesignal=filename.replace('.txt','_signal.png')
    484         figsignal.savefig(imagenamesignal)
    485         plt.close(figsignal)
    486         copyfile(imagenamesignal,os.path.dirname(imagename)+'/last_signal.png')
    487 
    488         filenamesig=filename.replace('.txt','.sig')
    489         fid=open(filenamesig,'w');
    490         fid.write(str(datasignal))
    491         fid.close()
    492    
    493         imagenamesignal_no_path=os.path.basename(imagenamesignal)
    494         fid=open('signal_list.html','a');
    495         fid.write("<A HREF=")
    496         fid.write(imagenamesignal_no_path)
    497         fid.write("><IMG SRC=")
    498         fid.write(imagenamesignal_no_path)
    499         fid.write(" width=600>")
    500         fid.write("</A><BR/>")
    501         fid.write(imagenamesignal_no_path)
    502         fid.write("<BR/><BR/>\n")
    503         fid.close()
    504        
    505     return;
    506 
    507 
    508 #read_plot_data('/Users/delerue/Downloads/CLIO/data_CLIO_2017-02-08_17-26-53.txt')
    509 #read_plot_data('/Users/delerue/Downloads/CLIO_tmp/20170227/data_CLIO_2017-02-27_12-01-14.txt')
    510 #read_plot_data('/Users/delerue/Downloads/CLIO_tmp/20170227/data_CLIO_2017-02-27_12-43-46.txt')
    511 #HWaddr 64:00:6a:3a:6f:1c
    512 >>>>>>> .r690
  • CLIO/control/run_acq.sh

    r639 r744  
    44
    55#create directory for today
    6 cd /var/www/html/CLIO/
    7 mkdir `date  +%Y%m%d`
    8 cd  `date  +%Y%m%d`
     6cd /var/www/html/CLIO/new
     7#mkdir `date  +%Y%m%d`
     8#cd  `date  +%Y%m%d`
    99#check that acquisition is running
    1010rm /home/etalon-admin/acquisition_data/stop_acquisition
  • CLIO/control/run_all.sh

    r638 r744  
    1616fi
    1717
     18if [ -eq `ps -edf | grep motor_monitor | grep -cv grep ` 0 ];
     19   echo "To start the motors monitor type cd control ; python motor_monitor.py "
     20   exit -1
     21fi
     22
     23
     24if [ -eq `ps -edf | grep run_makefile_recent | grep -cv grep ` 0 ];
     25   echo "To start the files process type /home/etalon-admin/control/run_makefile_recent.sh "
     26   exit -1
     27fi
     28
     29
     30   
    1831#launch makefile
    1932# run_makefile
  • CLIO/control/run_makefile.sh

    r638 r744  
    11#!/bin/bash
    22
    3 
    4 
    5 #create directory for today
    6 cd /var/www/html/CLIO/
    7 mkdir `date  +%Y%m%d`
    8 cd  `date  +%Y%m%d`
    9 
    10 while true; do
    11     make -f /home/etalon-admin/control/makefile;
    12     sleep 5
    13 done
     3./run_makefile_recent.sh
Note: See TracChangeset for help on using the changeset viewer.