Make movement wait for gripper to finish and vice versa
authorNick Downing <nick.downing@lifx.co>
Wed, 18 Mar 2020 20:55:16 +0000 (07:55 +1100)
committerNick Downing <nick.downing@lifx.co>
Wed, 18 Mar 2020 20:58:38 +0000 (07:58 +1100)
js/mirobot.js

index dd356e3..5d02c13 100644 (file)
@@ -110,6 +110,9 @@ let axes = [
 ]
 let setToolboxTimeout;
 let move_axis = async (axis, speed, value) => {
+  text = `${String.fromCharCode(97 + axis)}${speed}`
+  for (let i = 0; i < axis; ++i)
+    text += String.fromCharCode(65 + i)
   if (value < axes[axis].min_degrees)
     value = axes[axis].min_degrees
   else if (value > axes[axis].max_degrees)
@@ -123,11 +126,11 @@ let move_axis = async (axis, speed, value) => {
       (value - axes[axis].min_degrees) *
       (axes[axis].max_position - axes[axis].min_position) /
       (axes[axis].max_degrees - axes[axis].min_degrees))
+  text += `${String.fromCharCode(65 + axis)}${axes[axis].position}`
+  for (let i = axis + 1; i < 6; ++i)
+    text += String.fromCharCode(65 + i)
   if (device !== undefined)
-    await tx_wait(
-      device,
-      `${String.fromCharCode(97 + axis)}${speed}${String.fromCharCode(65 + axis)}${axes[axis].position}\n`
-    )
+    await tx_wait(device, text + '\n')
   if (setToolboxTimeout !== undefined)
     setToolboxTimeout()
 }
@@ -151,6 +154,8 @@ let move_axes = async (speeds, values) => {
         (axes[i].max_degrees - axes[i].min_degrees))
     text += `${String.fromCharCode(65 + i)}${axes[i].position}`
   }
+  for (let i = values.length; i < 6; ++i)
+    text += String.fromCharCode(65 + i)
   if (device !== undefined)
     await tx_wait(device, text + '\n')
   if (setToolboxTimeout !== undefined)