def cb_generic(name, data): global now, interference original = data.data edited = data edited.data = (original if not interference else interference.edit( name, original)) tester_update_var(name, original) if (name == 'light'): # Integrate light levels global last_light_reading, insolation now = rospy.get_time() if (last_light_reading > 0): light_level = (original[0] + original[1]) / 2.0 dt = now - last_light_reading insolation += dt * light_level / 3600.0 #print("INSOLATION: %.2f %d %.2f" %(insolation, light_level, dt)) tester_update_var('insolation', insolation) if (time_since_midnight(now) < time_since_midnight(last_light_reading)): #print("INSOLATION TODAY: %.1f" %insolation) insolation = 0 # Reset daily last_light_reading = now publishers[name].publish(edited) if (log): log_file = log_files[name] log_file.write( clock_time(now) + ", internal: " + str(original) + ", edited: " + str(edited.data) + "\n") log_file.flush() if (verbose): log_print("Logging %s data" % name)
def notify_user(): global args, password, num_restarts if (args.email != None): print("Sending email regarding restarts to " + args.email) send_email.send( "*****@*****.**", password, args.email, "Problem with your TerraBot agent", ("Your autonomous agent has had to be restarted %d times. The current Terrabot time is %s.\r\n\r\nYou should probably contact the instructors to upload a new version.\r\n\r\nSincerely,\r\nTerraBot\r\n" % (num_restarts, clock_time(rospy.get_time()))))
def camera_cb(data): global simulate, images print("Taking an image at %s, storing it in %s" % (clock_time(now), data.data)) if simulate: publishers['cam'].publish(data.data) else: # sp.call("raspistill -n -md 2 -awb off -awbg 1,1 -ss 30000 -o %s" sp.call("raspistill -n -md 4 -awb auto -ss 30000 -rot 180 -o %s" % data.data, shell=True) tester_update_var('camera', data.data)
def cb_generic(name, data): global now, grader, interference original = data.data edited = data edited.data = (original if not interference else interf_mod.edit( name, original)) #edited.data = data.data # Why is this here? if grade: grader.update(name, edited.data) publishers[name].publish(edited) if (log): log_file = log_files[name] log_file.write( clock_time(now) + ", internal: " + str(original) + ", edited: " + str(edited.data) + "\n") log_file.flush() if (verbose): log_print("Logging %s data" % name)
def ping_cb(data): global last_ping last_ping = rospy.get_time() print(" PING! %s" % clock_time(last_ping))