Update runtime LED modes
This commit is contained in:
39
run.py
39
run.py
@@ -415,22 +415,34 @@ def mainloop_server(pool):
|
||||
global cable_list
|
||||
global mainloop_get
|
||||
global cable_list_state
|
||||
|
||||
global scan_value
|
||||
print(" ***** Running main system loop ***** ")
|
||||
if killme.value > 0:
|
||||
killall()
|
||||
|
||||
if True:
|
||||
|
||||
# do every loop!
|
||||
if ring_animation is not None and ledsys.mode != "idle":
|
||||
ledsys.mainloop(None, ring_animation)
|
||||
elif ring_animation is not None:
|
||||
ledsys.mainloop(led_set_mode, ring_animation)
|
||||
led_set_mode = None
|
||||
else:
|
||||
fprint("Not triggering LED loop: no ring animation")
|
||||
|
||||
if mode == "Startup":
|
||||
#counter = 54 # remove for demo
|
||||
if counter < 54:
|
||||
# scanning cables
|
||||
ring_animation = counter
|
||||
led_set_mode = "GrabA"
|
||||
if arm_state is None:
|
||||
#pool.apply_async(arm_start_callback, ("",))
|
||||
arm_ready = False
|
||||
pool.apply_async(ur5_control.to_camera, (arm,counter), callback=arm_start_callback, error_callback=handle_error)
|
||||
pool.apply_async(ur5_control.holder_to_camera, (arm,counter), callback=arm_start_callback, error_callback=handle_error)
|
||||
fprint("Getting cable index " + str(counter) + " and scanning...")
|
||||
arm_state = "GET"
|
||||
ring_animation = counter
|
||||
led_set_mode = "GrabA"
|
||||
#ur5_control.to_camera(arm, counter)
|
||||
#arm_ready = True
|
||||
|
||||
@@ -440,6 +452,8 @@ def mainloop_server(pool):
|
||||
arm_ready = False
|
||||
|
||||
elif camera_ready:
|
||||
ring_animation = counter
|
||||
led_set_mode = "GrabC"
|
||||
fprint("Adding cable to list...")
|
||||
global scan_value
|
||||
if scan_value is False:
|
||||
@@ -449,7 +463,7 @@ def mainloop_server(pool):
|
||||
else:
|
||||
cable_list.append(scan_value)
|
||||
fprint(scan_value)
|
||||
pool.apply_async(ur5_control.return_camera, (arm,counter), callback=arm_start_callback, error_callback=handle_error)
|
||||
pool.apply_async(ur5_control.camera_to_holder, (arm,counter), callback=arm_start_callback, error_callback=handle_error)
|
||||
#ur5_control.return_camera(arm, counter)
|
||||
#arm_ready = True
|
||||
arm_state = "RETURN"
|
||||
@@ -571,14 +585,14 @@ def mainloop_server(pool):
|
||||
spot = get_open_spot(sensors)
|
||||
if spot is not False:
|
||||
arm_ready = False
|
||||
pool.apply_async(ur5_control.pick_up_routine, (arm, get_cable, True, spot), callback=arm_start_callback, error_callback=handle_error)
|
||||
pool.apply_async(ur5_control.holder_to_tray, (arm, get_cable, spot), callback=arm_start_callback, error_callback=handle_error)
|
||||
mode = "Pickup"
|
||||
cable_list_state[get_cable] = False # mark as removed
|
||||
get_sensors(sensors,flag=get_open_spot(sensors))
|
||||
|
||||
if action == "return":
|
||||
arm_ready = False
|
||||
pool.apply_async(ur5_control.return_routine, (arm, get_cable), callback=arm_start_callback, error_callback=handle_error)
|
||||
pool.apply_async(ur5_control.tray_to_camera, (arm, get_cable), callback=arm_start_callback, error_callback=handle_error)
|
||||
mode = "ReturnC"
|
||||
else:
|
||||
# LED idle anim
|
||||
@@ -610,7 +624,6 @@ def mainloop_server(pool):
|
||||
|
||||
if mode == "Scan":
|
||||
if camera_ready == True:
|
||||
global scan_value
|
||||
if scan_value is False:
|
||||
# unable to scan ???? not good
|
||||
fprint("Unable to scan cable. Gonna retry.")
|
||||
@@ -627,7 +640,7 @@ def mainloop_server(pool):
|
||||
if cable == scan_value and cable_list_state[idx] == False:
|
||||
cable_list_state[idx] = True # mark cable as returned
|
||||
arm_ready = False
|
||||
pool.apply_async(ur5_control.return_camera, (arm, idx), callback=arm_start_callback, error_callback=handle_error)
|
||||
pool.apply_async(ur5_control.camera_to_holder, (arm, idx), callback=arm_start_callback, error_callback=handle_error)
|
||||
mode = "Return"
|
||||
break
|
||||
|
||||
@@ -644,12 +657,7 @@ def mainloop_server(pool):
|
||||
# led animation
|
||||
pass
|
||||
|
||||
if True:
|
||||
# do every loop!
|
||||
if ring_animation is not None and ledsys.mode != "idle":
|
||||
ledsys.mainloop(None, ring_animation)
|
||||
elif ring_animation is not None:
|
||||
ledsys.mainloop(led_set_mode, ring_animation)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -803,6 +811,7 @@ if __name__ == "__main__":
|
||||
while(keeprunning):
|
||||
start = uptime()
|
||||
mainloop_server(pool)
|
||||
#sleep(0.01)
|
||||
# limit to certain "framerate"
|
||||
while start + 1.0/speed < uptime():
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user