def collect_data():
    global reads
    global current_data
    starttime = time.clock()
    for x in range(0,numReaders):
        XBeeStatus[x]=0                                                                                                                                                                              
    for x in range(0,numReaders):
        #xbee.send('tx',dest_addr_long=XBeeAddress[x],dest_addr=UNKNOWN,data=b't')
        time.sleep(1)
        current_data=''
        xbee.send('tx',dest_addr_long=XBeeAddress[x],dest_addr=UNKNOWN,data=b'D')
        start = time.clock()
        time.sleep(2)
        while XBeeStatus[x] != 12:
            if (time.clock()-start)>30:
                #xbee.send('tx',dest_addr_long=XBeeAddress[x],dest_addr=UNKNOWN,data=b'D')
                #XBeeStatus[x]=0
                #current_data=''
                #start = time.clock()
                #print ("Re-sent DATA_SEND to {0}".format(x))
                #time.sleep(2)
                print "Did not recieve data"
                XBeeStatus[x] = 12
                #xbee.send('tx',dest_addr_long=XBeeAddress[x],dest_addr=UNKNOWN,data=b't')
                current_data=1594*'0'
            if (time.clock()-starttime)>115:
                print ("Exceeded time limit")
                return
            try:
                if packets.qsize() > 0:
                    newPacket = packets.get_nowait()
                    handlePacket(newPacket)
            except KeyboardInterrupt:
                break      
        # Save to database
        db = Database(dbname)
        for res in range(0,4):
            data = current_data[res*394:res*394+394]
            well_data = ''
            for well in range(0,96):
                well_data = well_data+','+str(int(data[12+well*4:14+well*4]+data[10+well*4:12+well*4],16))
                current_time = int(data[6:8]+data[4:6]+data[2:4]+data[0:2],16)       
            db.add_data(exp_id,XBeeID[x],current_time,data[8:10],well_data) 
        db.close()

        # Save to text file
        save_path = '/media/usbhdd'
        filename = os.path.join(save_path,XBeeFilenames[x])  
        current_file = open(filename,'a')
        current_file.write(current_data)
        current_file.write('\n')
        current_file.close()
    reads = reads+1
    print ("Recieved data: {0}".format(reads))
    return
示例#2
0
#
#############################################

import cgi
import cgitb
cgitb.enable()

from Database import Database

print "Content-Type: text/html\n\n"

form = cgi.FieldStorage()

db = Database(form.getvalue("db"))
db.add_data(experiment=form.getvalue("experiment"),
	plate=form.getvalue("plate"),
	time=form.getvalue("time"),     
	data=form.getvalue("data"))  	

db.close()

# "time" refers to the number of milliseconds from the experiment start
# that the data was gathered

print """
<pre><b>Insert complete:</b>
     Database: {0}
   Experiment: {1}
        Plate: {2}
	 Time: {3}
         Data: {4}</pre>
""".format(form.getvalue("db"),form.getvalue("experiment"),