def sendwater(node,wtime,rate): xbee = cmanager.beemanager("/dev/ttyUSB0",4) ran = False errcount = 0 #print chr(0) + chr(int(node)) while((ran != True) and (errcount < 10)): response = xbee.sendwater((wtime * 2),chr(0) + chr(int(node))) if(response != "no reply"): ran = True else: errcount = errcount + 1 print response with open(paths.basepath + "wlog.htm", 'a') as logfile: logfile.write(time.strftime("%d/%m-%H:%M") + "," + str(node) + "," + str(wtime) + "," + str(rate)+ "," + str(response) + "\n")
def sendwater(node, wtime, rate): xbee = cmanager.beemanager("/dev/ttyUSB0", 4) ran = False errcount = 0 #print chr(0) + chr(int(node)) while ((ran != True) and (errcount < 10)): response = xbee.sendwater((wtime * 2), chr(0) + chr(int(node))) if (response != "no reply"): ran = True else: errcount = errcount + 1 print response with open(paths.basepath + "wlog.htm", 'a') as logfile: logfile.write( time.strftime("%d/%m-%H:%M") + "," + str(node) + "," + str(wtime) + "," + str(rate) + "," + str(response) + "\n")
px = x coefs = thetas[1:] # remove constant term for val in coefs: total = total + (val * px) px = px * x return total + thetas[0] # add constant term x = np.array([0.08, 0.67, 0.82, 1.1, 1.42, 1.58, 2.0, 2.19, 2.5, 2.7]) y = np.array([0, 5.6, 8.1, 13.5, 20.0, 25.4, 35.0, 40.0, 45.0, 50.0]) p = np.polyfit(x, y, 6) theta = [2.497237134237162, 3.1272141051382456, 3.76424478871247, 3.492216475657672, -1.0697925500533265] repeats = 10 thisbee = cmanager.beemanager("/dev/ttyUSB0", 2) with open(paths.basepath + "nodelist", "r") as nodfile: # read list of nodes nodereader = csv.reader(nodfile) # required = nodereader.next() for required in nodereader: # for each node response = False error = True errors = 0 timeout = 0 theta = [float(required[4]), float(required[5]), float(required[6]), float(required[7]), float(required[8])] print required while (error == True) and (errors < 1): # try transmit unit ack recieved or failed 3 times error = False while (response == False) and (timeout < repeats): # try the transmission up to 10 times response = thisbee.readmoisture(chr(0) + chr(int(required[1])))
for val in coefs: total = total + (val * px) px = px * x return total + thetas[0] #add constant term x = np.array([0.08, 0.67, 0.82, 1.1, 1.42, 1.58, 2.0, 2.19, 2.5, 2.7]) y = np.array([0, 5.6, 8.1, 13.5, 20.0, 25.4, 35.0, 40.0, 45.0, 50.0]) p = np.polyfit(x, y, 6) theta = [ 2.497237134237162, 3.1272141051382456, 3.76424478871247, 3.492216475657672, -1.0697925500533265 ] repeats = 10 thisbee = cmanager.beemanager('/dev/ttyUSB0', 2) with open(paths.basepath + "nodelist", "r") as nodfile: #read list of nodes nodereader = csv.reader(nodfile) #required = nodereader.next() for required in nodereader: #for each node response = False error = True errors = 0 timeout = 0 theta = [ float(required[4]), float(required[5]), float(required[6]), float(required[7]), float(required[8])
taillist = thelist[-1] volts = float(taillist[1]) #take last entry for volts and response response = taillist[0] with open(paths.basepath + "errors.htm", 'a') as outfile: outfile.write("unable to read, defaulting to last value," + time.strftime("%d/%m-%H:%M") + "\n") else: #set volts value volts = float(response) * 0.00318 #convert response to voltage print theta print str(Htheta(theta, volts)) return volts, response, theta #return voltage , slave response and the coefficients used fo this node repeats = 10 #set repeats limit thisbee = cmanager.beemanager('/dev/ttyUSB0', 2) #create xbee manager with open(paths.basepath + "nodelist", "r") as nodfile: #read list of nodes nodereader = csv.reader(nodfile) for required in nodereader: #for each node volts, response, theta = getvolts(required) try: with open(paths.basepath + "levels" + required[0] + ".csv", 'a') as outfile: #write log to file outfile.write( str(response.rstrip("\r\n")) + "," + str(volts) + "," + str(Htheta(theta, volts)) + "," + str(required[2]) + time.strftime(",%Y,%m,%e,%H,%M") + "\n") except Exception, e: print str(e)