From b507af76fb95f86a216ba228205fa39d09cb82c3 Mon Sep 17 00:00:00 2001 From: phil <me@filou.se> Date: Sat, 18 Jun 2022 13:45:53 +0200 Subject: [PATCH] elaine, test patch and fixes --- control-patches/OSC-test.maxpat | 516 ++- control-patches/SMS_Control_Elaine.maxpat | 4445 +++++++++++++++++++ control-patches/SMS_TargetSelect_sub.maxpat | 5 +- src/motor.cpp | 4 + src/motor.hpp | 2 + src/rpi-osc-stepper.cpp | 54 +- src/utils/motor-cmd.cpp | 24 + 7 files changed, 5013 insertions(+), 37 deletions(-) create mode 100755 control-patches/SMS_Control_Elaine.maxpat diff --git a/control-patches/OSC-test.maxpat b/control-patches/OSC-test.maxpat index c0fcea2..46f1c7c 100644 --- a/control-patches/OSC-test.maxpat +++ b/control-patches/OSC-test.maxpat @@ -10,7 +10,7 @@ } , "classnamespace" : "box", - "rect" : [ 377.0, 178.0, 640.0, 480.0 ], + "rect" : [ 272.0, 130.0, 788.0, 746.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, @@ -38,6 +38,272 @@ "style" : "", "subpatcher_template" : "", "boxes" : [ { + "box" : { + "id" : "obj-53", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 561.0, 438.0, 65.0, 22.0 ], + "text" : "append $1" + } + + } +, { + "box" : { + "id" : "obj-54", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 561.0, 410.0, 182.0, 22.0 ], + "text" : "prepend /motor/move-to-position" + } + + } +, { + "box" : { + "id" : "obj-51", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 552.0, 312.0, 65.0, 22.0 ], + "text" : "append $1" + } + + } +, { + "box" : { + "id" : "obj-52", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 552.0, 284.0, 173.0, 22.0 ], + "text" : "prepend /motor/move-by-angle" + } + + } +, { + "box" : { + "id" : "obj-50", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 528.0, 75.0, 165.0, 22.0 ], + "text" : "prepend /motor/reset-position" + } + + } +, { + "box" : { + "id" : "obj-48", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 550.0, 174.0, 65.0, 22.0 ], + "text" : "append $1" + } + + } +, { + "box" : { + "id" : "obj-49", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 550.0, 146.0, 170.0, 22.0 ], + "text" : "prepend /motor/move-to-angle" + } + + } +, { + "box" : { + "id" : "obj-47", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 57.0, 375.0, 103.0, 22.0 ], + "text" : "/motor/rotate 2 $1" + } + + } +, { + "box" : { + "id" : "obj-45", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 124.0, 242.0, 59.0, 22.0 ], + "text" : "append 4" + } + + } +, { + "box" : { + "id" : "obj-35", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 124.0, 214.0, 113.0, 22.0 ], + "text" : "prepend /motor/msr" + } + + } +, { + "box" : { + "id" : "obj-34", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 109.0, 150.0, 109.0, 22.0 ], + "text" : "prepend /motor/init" + } + + } +, { + "box" : { + "id" : "obj-31", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 117.0, 80.0, 116.0, 22.0 ], + "text" : "prepend /motor/stop" + } + + } +, { + "box" : { + "id" : "obj-29", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 141.0, 345.0, 65.0, 22.0 ], + "text" : "append $1" + } + + } +, { + "box" : { + "id" : "obj-28", + "maxclass" : "number", + "maximum" : 3, + "minimum" : 0, + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 54.0, 27.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-24", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 141.0, 317.0, 124.0, 22.0 ], + "text" : "prepend /motor/rotate" + } + + } +, { + "box" : { + "id" : "obj-23", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 304.0, 273.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-18", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 31.0, 591.0, 105.0, 22.0 ], + "text" : "host 192.168.0.73" + } + + } +, { + "box" : { + "id" : "obj-14", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 31.0, 563.0, 105.0, 22.0 ], + "text" : "host 192.168.0.72" + } + + } +, { + "box" : { + "id" : "obj-10", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 31.0, 526.0, 105.0, 22.0 ], + "text" : "host 192.168.0.71" + } + + } +, { + "box" : { + "id" : "obj-6", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 31.0, 489.0, 85.0, 22.0 ], + "text" : "host 127.0.0.1" + } + + } +, { + "box" : { + "id" : "obj-1", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 419.0, 438.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-3", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 419.0, 471.0, 161.0, 22.0 ], + "text" : "/motor/move-to-position 2 $1" + } + + } +, { "box" : { "id" : "obj-21", "maxclass" : "number", @@ -47,7 +313,7 @@ "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, - "patching_rect" : [ 443.0, 287.0, 50.0, 22.0 ] + "patching_rect" : [ 419.0, 312.0, 50.0, 22.0 ] } } @@ -58,9 +324,8 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 443.0, 320.0, 152.0, 22.0 ], - "presentation_linecount" : 2, - "text" : "/motor/move-by-angle 0 $1" + "patching_rect" : [ 419.0, 345.0, 152.0, 22.0 ], + "text" : "/motor/move-by-angle 2 $1" } } @@ -74,7 +339,7 @@ "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, - "patching_rect" : [ 443.0, 198.0, 50.0, 22.0 ] + "patching_rect" : [ 419.0, 177.0, 50.0, 22.0 ] } } @@ -85,8 +350,8 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 443.0, 235.0, 149.0, 22.0 ], - "text" : "/motor/move-to-angle 0 $1" + "patching_rect" : [ 419.0, 214.0, 149.0, 22.0 ], + "text" : "/motor/move-to-angle 2 $1" } } @@ -97,8 +362,8 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 388.0, 161.0, 128.0, 22.0 ], - "text" : "/motor/reset-position 0" + "patching_rect" : [ 419.0, 111.0, 128.0, 22.0 ], + "text" : "/motor/reset-position 2" } } @@ -119,8 +384,8 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 233.0, 224.0, 79.0, 22.0 ], - "text" : "/motor/stop 0" + "patching_rect" : [ 57.0, 111.0, 79.0, 22.0 ], + "text" : "/motor/stop 2" } } @@ -134,19 +399,7 @@ "numoutlets" : 2, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, - "patching_rect" : [ 237.0, 129.0, 50.0, 22.0 ] - } - - } -, { - "box" : { - "id" : "obj-9", - "maxclass" : "message", - "numinlets" : 2, - "numoutlets" : 1, - "outlettype" : [ "" ], - "patching_rect" : [ 237.0, 161.0, 103.0, 22.0 ], - "text" : "/motor/rotate 0 $1" + "patching_rect" : [ 57.0, 345.0, 50.0, 22.0 ] } } @@ -157,8 +410,8 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 84.0, 161.0, 86.0, 22.0 ], - "text" : "/motor/msr 0 4" + "patching_rect" : [ 57.0, 273.0, 86.0, 22.0 ], + "text" : "/motor/msr 2 4" } } @@ -169,8 +422,8 @@ "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], - "patching_rect" : [ 73.0, 122.0, 71.0, 22.0 ], - "text" : "/motor/init 0" + "patching_rect" : [ 57.0, 182.0, 71.0, 22.0 ], + "text" : "/motor/init 2" } } @@ -180,7 +433,7 @@ "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 0, - "patching_rect" : [ 80.0, 357.0, 138.0, 22.0 ], + "patching_rect" : [ 175.0, 663.0, 138.0, 22.0 ], "text" : "udpsend 127.0.0.1 9292" } @@ -188,7 +441,21 @@ ], "lines" : [ { "patchline" : { - "destination" : [ "obj-9", 0 ], + "destination" : [ "obj-3", 0 ], + "source" : [ "obj-1", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-47", 0 ], "source" : [ "obj-11", 0 ] } @@ -199,6 +466,13 @@ "source" : [ "obj-13", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-14", 0 ] + } + } , { "patchline" : { @@ -213,6 +487,13 @@ "source" : [ "obj-17", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-18", 0 ] + } + } , { "patchline" : { @@ -234,6 +515,140 @@ "source" : [ "obj-21", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-29", 0 ], + "source" : [ "obj-24", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "order" : 4, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-31", 0 ], + "order" : 6, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-34", 0 ], + "order" : 7, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-35", 0 ], + "order" : 5, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-49", 0 ], + "order" : 2, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-50", 0 ], + "order" : 3, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "order" : 1, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-54", 0 ], + "order" : 0, + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-47", 1 ], + "source" : [ "obj-29", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-3", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-13", 1 ], + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 1 ], + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-45", 0 ], + "source" : [ "obj-35", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-7", 1 ], + "source" : [ "obj-45", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-47", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-17", 1 ], + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-48", 0 ], + "source" : [ "obj-49", 0 ] + } + } , { "patchline" : { @@ -241,18 +656,53 @@ "source" : [ "obj-5", 0 ] } + } +, { + "patchline" : { + "destination" : [ "obj-15", 1 ], + "source" : [ "obj-50", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-20", 1 ], + "source" : [ "obj-51", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-51", 0 ], + "source" : [ "obj-52", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 1 ], + "source" : [ "obj-53", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-53", 0 ], + "source" : [ "obj-54", 0 ] + } + } , { "patchline" : { "destination" : [ "obj-2", 0 ], - "source" : [ "obj-7", 0 ] + "source" : [ "obj-6", 0 ] } } , { "patchline" : { "destination" : [ "obj-2", 0 ], - "source" : [ "obj-9", 0 ] + "source" : [ "obj-7", 0 ] } } diff --git a/control-patches/SMS_Control_Elaine.maxpat b/control-patches/SMS_Control_Elaine.maxpat new file mode 100755 index 0000000..0e2cadf --- /dev/null +++ b/control-patches/SMS_Control_Elaine.maxpat @@ -0,0 +1,4445 @@ +{ + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 8, + "minor" : 1, + "revision" : 3, + "architecture" : "x64", + "modernui" : 1 + } +, + "classnamespace" : "box", + "rect" : [ 175.0, 162.0, 856.0, 781.0 ], + "bglocked" : 0, + "openinpresentation" : 1, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 1, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 1, + "objectsnaponopen" : 1, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "lefttoolbarpinned" : 0, + "toptoolbarpinned" : 0, + "righttoolbarpinned" : 0, + "bottomtoolbarpinned" : 0, + "toolbars_unpinned_last_save" : 0, + "tallnewobj" : 0, + "boxanimatetime" : 200, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "style" : "", + "subpatcher_template" : "", + "boxes" : [ { + "box" : { + "id" : "obj-138", + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 1404.0, 1132.0, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 493.625, 123.0, 100.0, 20.0 ], + "text" : "Stop" + } + + } +, { + "box" : { + "id" : "obj-136", + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 1378.0, 1170.0, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 493.625, 98.0, 100.0, 20.0 ], + "text" : "Down" + } + + } +, { + "box" : { + "id" : "obj-135", + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 1293.0, 1124.0, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 493.625, 71.5, 100.0, 20.0 ], + "text" : "Up" + } + + } +, { + "box" : { + "id" : "obj-133", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1392.5, 1213.0, 29.5, 22.0 ], + "text" : "-50" + } + + } +, { + "box" : { + "id" : "obj-131", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1339.75, 1213.0, 29.5, 22.0 ], + "text" : "0" + } + + } +, { + "box" : { + "id" : "obj-126", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1293.0, 1213.0, 29.5, 22.0 ], + "text" : "100" + } + + } +, { + "box" : { + "id" : "obj-119", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1325.5, 1280.0, 103.0, 22.0 ], + "text" : "/motor/rotate 2 $1" + } + + } +, { + "box" : { + "id" : "obj-105", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1525.0, 1180.0, 117.0, 22.0 ], + "text" : "scale 0 100 0 30000" + } + + } +, { + "box" : { + "bgcolor" : [ 0.815686274509804, 0.815686274509804, 0.815686274509804, 1.0 ], + "id" : "obj-104", + "knobcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 1.0 ], + "knobshape" : 5, + "maxclass" : "slider", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 1525.0, 1004.0, 20.0, 140.0 ], + "presentation" : 1, + "presentation_rect" : [ 619.0, 527.5, 20.0, 140.0 ], + "size" : 100.0 + } + + } +, { + "box" : { + "id" : "obj-102", + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 1277.5, 1031.0, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 493.625, 184.0, 100.0, 20.0 ], + "text" : "Kalibrieren" + } + + } +, { + "box" : { + "id" : "obj-97", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1525.0, 1234.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-98", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1525.0, 1267.0, 161.0, 22.0 ], + "text" : "/motor/move-to-position 2 $1" + } + + } +, { + "box" : { + "id" : "obj-99", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1277.5, 1063.0, 128.0, 22.0 ], + "text" : "/motor/reset-position 2" + } + + } +, { + "box" : { + "fontsize" : 10.0, + "id" : "obj-90", + "linecount" : 15, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 448.5, 33.5, 127.0, 174.0 ], + "presentation" : 1, + "presentation_linecount" : 12, + "presentation_rect" : [ 448.5, 32.5, 233.0, 141.0 ], + "text" : "1. Mit Motoren Direktsteuerung Elevation auf fast ganz unten einstellen\n\n\n\n\n\n\n\n\n\n2. Drücke Taste Kalibrieren", + "textcolor" : [ 0.396078431372549, 0.396078431372549, 0.396078431372549, 1.0 ] + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-80", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 444.25, 19.5, 159.0, 33.0 ], + "presentation" : 1, + "presentation_rect" : [ 441.25, 16.5, 261.0, 20.0 ], + "text" : "8 Elevations-Basis kalibrieren" + } + + } +, { + "box" : { + "id" : "obj-69", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 155.0, 60.0, 150.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 34.5, 41.5, 150.0, 20.0 ], + "text" : "PS(R) Gamepad!" + } + + } +, { + "box" : { + "id" : "obj-96", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 961.5, 418.0, 39.0, 22.0 ], + "text" : "+ 128" + } + + } +, { + "box" : { + "id" : "obj-94", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 928.5, 346.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-87", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "int" ], + "patching_rect" : [ 865.0, 285.0, 29.5, 22.0 ], + "text" : "t b i" + } + + } +, { + "box" : { + "id" : "obj-48", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 924.5, 255.0, 150.0, 20.0 ], + "text" : "channel (Elaine 3/4)" + } + + } +, { + "box" : { + "id" : "obj-81", + "maxclass" : "newobj", + "numinlets" : 3, + "numoutlets" : 3, + "outlettype" : [ "", "", "" ], + "patching_rect" : [ 865.0, 255.0, 56.0, 22.0 ], + "text" : "route 3 4" + } + + } +, { + "box" : { + "id" : "obj-79", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 924.5, 219.0, 150.0, 34.0 ], + "text" : "expression pedal\n" + } + + } +, { + "box" : { + "id" : "obj-65", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 865.0, 316.5, 29.5, 22.0 ], + "text" : "- 1" + } + + } +, { + "box" : { + "id" : "obj-64", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 865.0, 219.0, 46.0, 22.0 ], + "text" : "route 7" + } + + } +, { + "box" : { + "id" : "obj-50", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 865.0, 188.0, 55.0, 22.0 ], + "text" : "$2 $3 $1" + } + + } +, { + "box" : { + "id" : "obj-67", + "maxclass" : "newobj", + "numinlets" : 3, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 865.0, 160.5, 40.0, 22.0 ], + "text" : "join 3" + } + + } +, { + "box" : { + "id" : "obj-68", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "int", "int" ], + "patching_rect" : [ 865.0, 127.0, 40.0, 22.0 ], + "presentation" : 1, + "presentation_rect" : [ 226.0, 71.5, 40.0, 22.0 ], + "text" : "ctlin" + } + + } +, { + "box" : { + "id" : "obj-27", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 937.0, 1290.0, 156.0, 22.0 ], + "text" : "/motor/standby-current 2 32" + } + + } +, { + "box" : { + "id" : "obj-145", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 1404.0, 708.0, 29.5, 22.0 ], + "text" : "* 1" + } + + } +, { + "box" : { + "id" : "obj-144", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1581.0, 700.0, 29.5, 22.0 ], + "text" : "1" + } + + } +, { + "box" : { + "id" : "obj-142", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1547.0, 700.0, 29.5, 22.0 ], + "text" : "-1" + } + + } +, { + "box" : { + "id" : "obj-140", + "maxclass" : "newobj", + "numinlets" : 3, + "numoutlets" : 3, + "outlettype" : [ "bang", "bang", "" ], + "patching_rect" : [ 1562.0, 650.0, 44.0, 22.0 ], + "text" : "sel 0 1" + } + + } +, { + "box" : { + "id" : "obj-139", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 1616.0, 744.0, 150.0, 20.0 ] + } + + } +, { + "box" : { + "id" : "obj-137", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 1562.0, 610.0, 24.0, 24.0 ] + } + + } +, { + "box" : { + "id" : "obj-134", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1562.0, 574.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-130", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 1461.0, 574.0, 36.0, 22.0 ], + "text" : "- 128" + } + + } +, { + "box" : { + "id" : "obj-114", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 1461.0, 601.0, 30.0, 22.0 ], + "text" : "* 15" + } + + } +, { + "box" : { + "id" : "obj-113", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 1460.0, 626.0, 46.0, 22.0 ], + "text" : "+ 2047" + } + + } +, { + "box" : { + "id" : "obj-110", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1460.0, 654.0, 32.0, 22.0 ], + "text" : "$1 0" + } + + } +, { + "box" : { + "id" : "obj-84", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 953.0, 883.0, 45.0, 22.0 ], + "text" : "/ 1000." + } + + } +, { + "box" : { + "cantchange" : 1, + "format" : 6, + "id" : "obj-82", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 953.0, 916.0, 81.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-70", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1086.0, 854.0, 74.0, 22.0 ], + "text" : "pack 2047 0" + } + + } +, { + "box" : { + "id" : "obj-66", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 1189.5, 762.0, 19.0, 22.0 ], + "text" : "t i" + } + + } +, { + "box" : { + "id" : "obj-60", + "maxclass" : "newobj", + "numinlets" : 3, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "patching_rect" : [ 1103.0, 897.0, 57.0, 22.0 ], + "text" : "line 2047" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-59", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 441.25, 271.5, 159.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 441.25, 274.5, 261.0, 20.0 ], + "text" : "Fuse-Check & Go Online" + } + + } +, { + "box" : { + "fontsize" : 10.0, + "id" : "obj-112", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 269.0, 1324.0, 127.0, 18.0 ], + "presentation" : 1, + "presentation_rect" : [ 252.0, 694.0, 88.0, 18.0 ], + "text" : "Trigger fuse (test)", + "textcolor" : [ 0.556862745098039, 0.556862745098039, 0.556862745098039, 1.0 ] + } + + } +, { + "box" : { + "id" : "obj-31", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 320.0, 1417.5, 34.0, 22.0 ], + "text" : "sel 0" + } + + } +, { + "box" : { + "id" : "obj-40", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 367.5, 1417.5, 57.0, 22.0 ], + "text" : "active $1" + } + + } +, { + "box" : { + "bgcolor" : [ 0.368627450980392, 0.980392156862745, 0.462745098039216, 1.0 ], + "bgoncolor" : [ 0.556862745098039, 0.556862745098039, 0.556862745098039, 1.0 ], + "id" : "obj-53", + "maxclass" : "textbutton", + "mode" : 1, + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 367.5, 1387.5, 140.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 456.125, 311.0, 126.75, 59.0 ], + "text" : "Insert battery fuse", + "textcolor" : [ 1.0, 0.501960784313725, 0.643137254901961, 1.0 ], + "texton" : "Battery fuse OK :)", + "textoncolor" : [ 0.325490196078431, 0.694117647058824, 0.384313725490196, 1.0 ] + } + + } +, { + "box" : { + "bgcolor" : [ 0.815686274509804, 0.815686274509804, 0.815686274509804, 0.0 ], + "blinkcolor" : [ 0.556862745098039, 0.556862745098039, 0.556862745098039, 1.0 ], + "id" : "obj-58", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "outlinecolor" : [ 0.556862745098039, 0.556862745098039, 0.556862745098039, 1.0 ], + "parameter_enable" : 0, + "patching_rect" : [ 367.5, 1318.0, 24.0, 24.0 ], + "presentation" : 1, + "presentation_rect" : [ 342.25, 694.0, 17.0, 17.0 ] + } + + } +, { + "box" : { + "id" : "obj-61", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 367.5, 1353.0, 29.5, 22.0 ], + "text" : "0" + } + + } +, { + "box" : { + "id" : "obj-51", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 269.0, 1031.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-35", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 269.0, 1060.0, 99.0, 22.0 ], + "text" : "/volt testtest 0 $1" + } + + } +, { + "box" : { + "id" : "obj-1", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 208.5, 1315.0, 67.0, 22.0 ], + "save" : [ "#N", "thispatcher", ";", "#Q", "end", ";" ], + "text" : "thispatcher" + } + + } +, { + "box" : { + "id" : "obj-43", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 506.0, 199.0, 58.0, 22.0 ], + "text" : "loadbang" + } + + } +, { + "box" : { + "id" : "obj-42", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 514.0, 325.0, 50.0, 22.0 ], + "text" : "40" + } + + } +, { + "box" : { + "id" : "obj-39", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 453.0, 457.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-37", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 514.0, 457.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-33", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 406.0, 385.0, 82.0, 22.0 ], + "text" : "expr 128 - $i1" + } + + } +, { + "box" : { + "id" : "obj-32", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 500.0, 385.0, 85.0, 22.0 ], + "text" : "expr 128 + $i1" + } + + } +, { + "box" : { + "id" : "obj-30", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 460.0, 325.0, 50.0, 22.0 ], + "presentation" : 1, + "presentation_rect" : [ 207.0, 190.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-25", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 413.0, 325.0, 39.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 211.5, 168.5, 39.0, 20.0 ], + "text" : "range" + } + + } +, { + "box" : { + "id" : "obj-261", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 124.5, 813.0, 32.0, 22.0 ], + "text" : "gate" + } + + } +, { + "box" : { + "id" : "obj-260", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 115.5, 778.5, 33.0, 22.0 ], + "text" : "== 0" + } + + } +, { + "box" : { + "id" : "obj-255", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 159.0, 778.5, 19.0, 22.0 ], + "text" : "t l" + } + + } +, { + "box" : { + "id" : "obj-254", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 240.0, 810.0, 97.0, 22.0 ], + "text" : "/motor/rotate 3 0" + } + + } +, { + "box" : { + "id" : "obj-253", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 226.0, 778.5, 97.0, 22.0 ], + "text" : "/motor/rotate 2 0" + } + + } +, { + "box" : { + "id" : "obj-252", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 207.25, 748.0, 97.0, 22.0 ], + "text" : "/motor/rotate 1 0" + } + + } +, { + "box" : { + "id" : "obj-251", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 192.25, 717.0, 97.0, 22.0 ], + "text" : "/motor/rotate 0 0" + } + + } +, { + "box" : { + "bgcolor" : [ 0.396078431372549, 0.396078431372549, 0.396078431372549, 0.51 ], + "bgoncolor" : [ 1.0, 0.0, 0.0, 1.0 ], + "fontface" : 1, + "fontsize" : 18.0, + "id" : "obj-249", + "maxclass" : "textbutton", + "mode" : 1, + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "outputmode" : 0, + "parameter_enable" : 0, + "patching_rect" : [ 30.0, 658.5, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 590.125, 311.0, 127.0, 59.0 ], + "text" : "OFFLINE", + "textcolor" : [ 0.0, 0.0, 0.0, 1.0 ], + "texton" : "ONLINE", + "textoncolor" : [ 1.0, 0.0, 0.0, 1.0 ] + } + + } +, { + "box" : { + "id" : "obj-227", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 59.0, 700.5, 32.0, 22.0 ], + "text" : "gate" + } + + } +, { + "box" : { + "fontsize" : 10.0, + "id" : "obj-226", + "linecount" : 3, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 50.0, 93.0, 127.0, 40.0 ], + "presentation" : 1, + "presentation_linecount" : 2, + "presentation_rect" : [ 190.5, 41.5, 233.0, 29.0 ], + "text" : "Allenfalls anderes Gerät auswählen, dann nochmals", + "textcolor" : [ 0.396078431372549, 0.396078431372549, 0.396078431372549, 1.0 ] + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-208", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 429.0, 688.0, 158.0, 33.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 422.0, 215.0, 20.0 ], + "text" : "6 Updates aktivieren + Überprüfen" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-206", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 460.0, 772.0, 160.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 385.0, 160.0, 20.0 ], + "text" : "5 Motoren initialisieren" + } + + } +, { + "box" : { + "id" : "obj-205", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 386.0, 829.0, 29.5, 22.0 ], + "text" : "2" + } + + } +, { + "box" : { + "id" : "obj-198", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 72.0, 629.5, 19.0, 22.0 ], + "text" : "t l" + } + + } +, { + "box" : { + "id" : "obj-197", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 370.75, 1064.0, 46.0, 22.0 ], + "text" : "port $1" + } + + } +, { + "box" : { + "id" : "obj-195", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 370.75, 1031.0, 60.0, 22.0 ], + "text" : "route port" + } + + } +, { + "box" : { + "bgmode" : 0, + "border" : 0, + "clickthrough" : 0, + "enablehscroll" : 0, + "enablevscroll" : 0, + "id" : "obj-194", + "lockeddragscroll" : 0, + "maxclass" : "bpatcher", + "name" : "SMS_Volt-Temp_sub.maxpat", + "numinlets" : 2, + "numoutlets" : 3, + "offset" : [ 0.0, 0.0 ], + "outlettype" : [ "", "", "bang" ], + "patching_rect" : [ 47.0, 1103.0, 342.0, 200.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 484.5, 351.0, 199.0 ], + "viewvisibility" : 1 + } + + } +, { + "box" : { + "bgmode" : 0, + "border" : 0, + "clickthrough" : 0, + "enablehscroll" : 0, + "enablevscroll" : 0, + "id" : "obj-191", + "lockeddragscroll" : 0, + "maxclass" : "bpatcher", + "name" : "SMS_TargetSelect_sub.maxpat", + "numinlets" : 2, + "numoutlets" : 2, + "offset" : [ 0.0, 0.0 ], + "outlettype" : [ "", "" ], + "patching_rect" : [ 30.0, 868.0, 375.0, 84.0 ], + "presentation" : 1, + "presentation_rect" : [ 29.5, 274.5, 364.0, 87.0 ], + "viewvisibility" : 1 + } + + } +, { + "box" : { + "id" : "obj-189", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 93.5, 1031.0, 150.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 226.0, 452.0, 150.0, 20.0 ], + "text" : "Enable automatic updates", + "textcolor" : [ 0.556862745098039, 0.556862745098039, 0.556862745098039, 1.0 ] + } + + } +, { + "box" : { + "bgcolor" : [ 0.301961, 0.301961, 0.301961, 1.0 ], + "checkedcolor" : [ 0.470588235294118, 1.0, 0.552941176470588, 1.0 ], + "id" : "obj-29", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 59.0, 1031.0, 24.0, 24.0 ], + "presentation" : 1, + "presentation_rect" : [ 190.5, 450.0, 24.0, 24.0 ], + "uncheckedcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 1.0 ] + } + + } +, { + "box" : { + "id" : "obj-20", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 59.0, 1064.0, 76.0, 22.0 ], + "text" : "metro 15000" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-248", + "linecount" : 2, + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 419.25, 269.0, 159.0, 33.0 ], + "text" : "7 Rotationstempo- Presets einstellen/prüfen" + } + + } +, { + "box" : { + "id" : "obj-247", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1237.0, 382.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-238", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1272.0, 628.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-239", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1272.0, 574.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "B3", + "parameter_initial_enable" : 1, + "parameter_mmax" : 2000.0, + "parameter_initial" : [ 0 ], + "parameter_shortname" : "B3", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[4]" + } + + } +, { + "box" : { + "id" : "obj-240", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1293.0, 716.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-241", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1293.0, 662.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "B2", + "parameter_initial_enable" : 1, + "parameter_mmax" : 2000.0, + "parameter_initial" : [ 0 ], + "parameter_shortname" : "B2", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[5]" + } + + } +, { + "box" : { + "id" : "obj-242", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1293.0, 543.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-243", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1293.0, 489.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "B4", + "parameter_initial_enable" : 1, + "parameter_mmax" : 2000.0, + "parameter_initial" : [ 1300 ], + "parameter_shortname" : "B4", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[6]" + } + + } +, { + "box" : { + "id" : "obj-244", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 1392.5, 754.0, 46.0, 22.0 ], + "text" : "!- 2047" + } + + } +, { + "box" : { + "id" : "obj-245", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1329.5, 628.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-246", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1329.5, 574.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "B1", + "parameter_initial_enable" : 1, + "parameter_mmax" : 2000.0, + "parameter_initial" : [ 0 ], + "parameter_shortname" : "B1", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[7]" + } + + } +, { + "box" : { + "id" : "obj-236", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1146.5, 628.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-237", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1146.5, 574.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "L", + "parameter_initial_enable" : 1, + "parameter_mmax" : 10000.0, + "parameter_initial" : [ 4 ], + "parameter_shortname" : "L", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[3]" + } + + } +, { + "box" : { + "id" : "obj-234", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1167.5, 716.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-235", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1167.5, 662.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "Down", + "parameter_initial_enable" : 1, + "parameter_mmax" : 10000.0, + "parameter_initial" : [ 2000 ], + "parameter_shortname" : "Down", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[2]" + } + + } +, { + "box" : { + "id" : "obj-232", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1167.5, 543.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-233", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1167.5, 489.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "Up", + "parameter_initial_enable" : 1, + "parameter_mmax" : 10000.0, + "parameter_initial" : [ 10000 ], + "parameter_shortname" : "Up", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial[1]" + } + + } +, { + "box" : { + "id" : "obj-230", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1204.0, 628.5, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-228", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 1204.0, 574.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "R", + "parameter_initial_enable" : 1, + "parameter_mmax" : 10000.0, + "parameter_initial" : [ 0 ], + "parameter_shortname" : "R", + "parameter_type" : 0, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "live.dial" + } + + } +, { + "box" : { + "id" : "obj-218", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1130.0, 343.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-217", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1126.5, 415.0, 45.0, 22.0 ], + "text" : "2047 0" + } + + } +, { + "box" : { + "id" : "obj-215", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1230.0, 328.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-214", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1214.0, 299.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-213", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1199.0, 269.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-212", + "maxclass" : "newobj", + "numinlets" : 5, + "numoutlets" : 5, + "outlettype" : [ "", "", "", "", "" ], + "patching_rect" : [ 1184.0, 349.0, 76.0, 22.0 ], + "text" : "route 2 4 6 0" + } + + } +, { + "box" : { + "id" : "obj-211", + "maxclass" : "newobj", + "numinlets" : 11, + "numoutlets" : 11, + "outlettype" : [ "", "", "", "", "", "", "", "", "", "", "" ], + "patching_rect" : [ 1137.0, 232.0, 175.0, 22.0 ], + "text" : "route 14 12 13 22 6 7 8 9 18 11" + } + + } +, { + "box" : { + "id" : "obj-210", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 1137.0, 269.0, 34.0, 22.0 ], + "text" : "sel 1" + } + + } +, { + "box" : { + "id" : "obj-203", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 767.5, 1144.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-202", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 768.0, 1083.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-201", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 1144.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-200", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 1083.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-193", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "float" ], + "patching_rect" : [ 677.5, 727.0, 29.5, 22.0 ], + "text" : "t b f" + } + + } +, { + "box" : { + "id" : "obj-192", + "maxclass" : "live.slider", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 629.75, 304.5, 39.0, 95.0 ], + "presentation" : 1, + "presentation_rect" : [ 275.25, 117.5, 39.0, 95.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "tempo", + "parameter_mmax" : 255.0, + "parameter_shortname" : "tempo", + "parameter_type" : 1, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "tempo" + } + + } +, { + "box" : { + "id" : "obj-186", + "maxclass" : "live.dial", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "float" ], + "parameter_enable" : 1, + "patching_rect" : [ 582.0, 316.0, 41.0, 48.0 ], + "presentation" : 1, + "presentation_rect" : [ 211.5, 113.0, 41.0, 48.0 ], + "saved_attribute_attributes" : { + "valueof" : { + "parameter_longname" : "steuerrad", + "parameter_mmax" : 255.0, + "parameter_shortname" : "steuerrad", + "parameter_type" : 1, + "parameter_unitstyle" : 0 + } + + } +, + "varname" : "steuerrad" + } + + } +, { + "box" : { + "id" : "obj-171", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 582.0, 245.0, 53.0, 22.0 ], + "text" : "route 36" + } + + } +, { + "box" : { + "id" : "obj-41", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 818.0, 1346.0, 87.0, 22.0 ], + "text" : "/motor/msr 2 4" + } + + } +, { + "box" : { + "id" : "obj-148", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 711.0, 1346.0, 86.0, 22.0 ], + "text" : "/motor/msr 1 4" + } + + } +, { + "box" : { + "id" : "obj-169", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 609.5, 1346.0, 86.0, 22.0 ], + "text" : "/motor/msr 0 4" + } + + } +, { + "box" : { + "id" : "obj-168", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 725.25, 1432.0, 19.0, 22.0 ], + "text" : "t l" + } + + } +, { + "box" : { + "id" : "obj-167", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 818.0, 1290.0, 71.0, 22.0 ], + "text" : "/motor/init 2" + } + + } +, { + "box" : { + "id" : "obj-166", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 711.0, 1290.0, 71.0, 22.0 ], + "text" : "/motor/init 1" + } + + } +, { + "box" : { + "id" : "obj-155", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 609.5, 1290.0, 71.0, 22.0 ], + "text" : "/motor/init 0" + } + + } +, { + "box" : { + "id" : "obj-149", + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 697.0, 1204.0, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 190.5, 385.0, 100.0, 20.0 ], + "text" : "Init Motors" + } + + } +, { + "box" : { + "id" : "obj-127", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 672.0, 245.0, 157.0, 22.0 ], + "text" : "13 0" + } + + } +, { + "box" : { + "id" : "obj-71", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1092.5, 982.0, 35.0, 22.0 ], + "text" : "2047" + } + + } +, { + "box" : { + "id" : "obj-108", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 1092.5, 1196.0, 103.0, 22.0 ], + "text" : "/motor/rotate 2 $1" + } + + } +, { + "box" : { + "id" : "obj-111", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 1092.5, 1163.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "bgcolor" : [ 0.815686274509804, 0.815686274509804, 0.815686274509804, 1.0 ], + "id" : "obj-115", + "knobcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 1.0 ], + "knobshape" : 5, + "maxclass" : "slider", + "min" : -2047.0, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 1092.5, 1012.0, 20.0, 140.0 ], + "size" : 4095.0 + } + + } +, { + "box" : { + "bgcolor" : [ 0.996078431372549, 0.0, 0.0, 1.0 ], + "fontsize" : 24.0, + "id" : "obj-128", + "maxclass" : "textbutton", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "", "", "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 183.25, 658.5, 100.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 456.125, 376.0, 261.0, 59.0 ], + "text" : "STOP" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-124", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 447.5, 163.5, 161.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 441.25, 484.5, 260.75, 20.0 ], + "text" : "Motoren Direktsteuerung" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-122", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 338.75, 232.0, 160.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 244.0, 160.0, 20.0 ], + "text" : "4 Mobil auswählen" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-120", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 158.5, 148.0, 163.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 113.0, 163.0, 20.0 ], + "text" : "3 Steuerrad testen" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-118", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 58.0, 110.0, 163.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 72.0, 163.0, 20.0 ], + "text" : "2 Steuerrad aktivieren" + } + + } +, { + "box" : { + "fontface" : 1, + "id" : "obj-116", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 231.0, 170.0, 162.0, 20.0 ], + "presentation" : 1, + "presentation_rect" : [ 18.5, 16.5, 166.0, 20.0 ], + "text" : "1 Steuerrad auswählen" + } + + } +, { + "box" : { + "id" : "obj-24", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 666.5, 127.0, 55.0, 22.0 ], + "text" : "pipe 100" + } + + } +, { + "box" : { + "id" : "obj-17", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 666.5, 99.0, 22.0, 22.0 ], + "text" : "t 1" + } + + } +, { + "box" : { + "id" : "obj-106", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 25.5, 211.0, 29.5, 22.0 ], + "text" : "1" + } + + } +, { + "box" : { + "id" : "obj-77", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 566.0, 529.0, 19.0, 22.0 ], + "text" : "t f" + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-72", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 632.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-73", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 566.0, 602.0, 29.5, 22.0 ], + "text" : "* 0." + } + + } +, { + "box" : { + "id" : "obj-74", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 571.5, 568.0, 141.0, 22.0 ], + "text" : "if $f1 < 0. then -1. else 1." + } + + } +, { + "box" : { + "id" : "obj-75", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 525.0, 568.0, 44.0, 22.0 ], + "text" : "pow 2." + } + + } +, { + "box" : { + "id" : "obj-36", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 767.5, 896.0, 19.0, 22.0 ], + "text" : "t f" + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-38", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 767.5, 1000.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-44", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 767.5, 967.0, 29.5, 22.0 ], + "text" : "* 0." + } + + } +, { + "box" : { + "id" : "obj-46", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 767.5, 930.0, 141.0, 22.0 ], + "text" : "if $f1 < 0. then -1. else 1." + } + + } +, { + "box" : { + "id" : "obj-49", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 720.5, 930.0, 44.0, 22.0 ], + "text" : "pow 1." + } + + } +, { + "box" : { + "id" : "obj-52", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 767.5, 1053.0, 107.0, 22.0 ], + "text" : "scale -1. 1. 0 4095" + } + + } +, { + "box" : { + "id" : "obj-54", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 767.5, 1111.0, 43.0, 22.0 ], + "text" : "- 2047" + } + + } +, { + "box" : { + "id" : "obj-34", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 566.0, 896.0, 19.0, 22.0 ], + "text" : "t f" + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-26", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 1005.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-23", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 566.0, 967.0, 29.5, 22.0 ], + "text" : "* 0." + } + + } +, { + "box" : { + "id" : "obj-22", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 566.0, 930.0, 141.0, 22.0 ], + "text" : "if $f1 < 0. then -1. else 1." + } + + } +, { + "box" : { + "id" : "obj-13", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "bang", "" ], + "patching_rect" : [ 402.25, 527.0, 34.0, 22.0 ], + "text" : "sel 0" + } + + } +, { + "box" : { + "id" : "obj-7", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "bang", "int" ], + "patching_rect" : [ 396.25, 427.0, 29.5, 22.0 ], + "text" : "t b i" + } + + } +, { + "box" : { + "id" : "obj-5", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 402.25, 461.0, 29.5, 22.0 ], + "text" : "+ 0" + } + + } +, { + "box" : { + "id" : "obj-3", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 402.25, 493.0, 33.0, 22.0 ], + "text" : ">= 1" + } + + } +, { + "box" : { + "id" : "obj-109", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 453.0, 30.0, 24.0, 24.0 ] + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-103", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 767.5, 841.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-107", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 767.5, 810.0, 29.5, 22.0 ], + "text" : "* 0." + } + + } +, { + "box" : { + "id" : "obj-101", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "float", "int" ], + "patching_rect" : [ 762.5, 686.0, 71.0, 22.0 ], + "text" : "minimum 0." + } + + } +, { + "box" : { + "id" : "obj-100", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 2, + "outlettype" : [ "float", "int" ], + "patching_rect" : [ 566.0, 686.0, 74.0, 22.0 ], + "text" : "maximum 0." + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-95", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 841.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-93", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 517.0, 930.0, 44.0, 22.0 ], + "text" : "pow 1." + } + + } +, { + "box" : { + "id" : "obj-92", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 566.0, 1053.0, 107.0, 22.0 ], + "text" : "scale -1. 1. 0 4095" + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-91", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 767.5, 779.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-89", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 762.5, 715.0, 29.5, 22.0 ], + "text" : "+ 1." + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-88", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 779.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-86", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 566.0, 715.0, 29.5, 22.0 ], + "text" : "!- 1." + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-85", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 483.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-83", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "patching_rect" : [ 566.0, 1111.0, 43.0, 22.0 ], + "text" : "- 2047" + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-78", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 692.0, 483.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-76", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "float" ], + "patching_rect" : [ 566.0, 810.0, 29.5, 22.0 ], + "text" : "* 0." + } + + } +, { + "box" : { + "id" : "obj-63", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 566.0, 457.0, 101.0, 22.0 ], + "text" : "scale 1 255 -1. 1." + } + + } +, { + "box" : { + "id" : "obj-62", + "maxclass" : "newobj", + "numinlets" : 6, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 692.0, 457.0, 101.0, 22.0 ], + "text" : "scale 1 255 1. -1." + } + + } +, { + "box" : { + "id" : "obj-57", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 259.0, 291.0, 32.0, 22.0 ], + "text" : "gate" + } + + } +, { + "box" : { + "id" : "obj-56", + "maxclass" : "newobj", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 61.25, 291.0, 32.0, 22.0 ], + "text" : "gate" + } + + } +, { + "box" : { + "id" : "obj-55", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 31.0, 243.0, 24.0, 24.0 ] + } + + } +, { + "box" : { + "id" : "obj-47", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 692.0, 427.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-45", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 566.0, 427.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-21", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 666.5, 192.0, 44.0, 22.0 ], + "text" : "poll $1" + } + + } +, { + "box" : { + "bgcolor" : [ 0.301961, 0.301961, 0.301961, 1.0 ], + "checkedcolor" : [ 0.470588235294118, 1.0, 0.552941176470588, 1.0 ], + "id" : "obj-19", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 666.5, 157.0, 24.0, 24.0 ], + "presentation" : 1, + "presentation_rect" : [ 190.5, 72.0, 24.0, 24.0 ], + "uncheckedcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 1.0 ] + } + + } +, { + "box" : { + "id" : "obj-18", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 582.0, 28.0, 39.0, 22.0 ], + "text" : "menu" + } + + } +, { + "box" : { + "fontface" : 0, + "fontname" : "Arial", + "fontsize" : 13.0, + "id" : "obj-28", + "items" : [ "Apple T1 Controller", ",", "Apple T1 Controller 2", ",", "Keyboard", ",", "Keyboard Backlight", ",", "Apple Internal Keyboard / Trackpad", ",", "Apple Internal Keyboard / Trackpad 2", ",", "Apple Internal Keyboard / Trackpad 3", ",", "Apple Internal Keyboard / Trackpad 4", ",", "Apple Internal Keyboard / Trackpad 5" ], + "labelclick" : 1, + "maxclass" : "umenu", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], + "parameter_enable" : 0, + "patching_rect" : [ 582.0, 62.5, 187.0, 23.0 ], + "presentation" : 1, + "presentation_rect" : [ 190.5, 16.5, 232.5, 23.0 ] + } + + } +, { + "box" : { + "id" : "obj-16", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "list", "" ], + "patching_rect" : [ 582.0, 127.0, 29.5, 22.0 ], + "text" : "hi" + } + + } +, { + "box" : { + "id" : "obj-15", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 35.0, 26.0, 58.0, 22.0 ], + "text" : "loadbang" + } + + } +, { + "box" : { + "id" : "obj-14", + "maxclass" : "button", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 10.0, 326.0, 24.0, 24.0 ] + } + + } +, { + "box" : { + "id" : "obj-9", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 241.0, 327.0, 35.0, 22.0 ], + "text" : "2047" + } + + } +, { + "box" : { + "id" : "obj-10", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 52.0, 561.0, 103.0, 22.0 ], + "text" : "/motor/rotate 1 $1" + } + + } +, { + "box" : { + "id" : "obj-11", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 241.0, 527.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "bgcolor" : [ 0.815686274509804, 0.815686274509804, 0.815686274509804, 1.0 ], + "id" : "obj-12", + "knobcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 1.0 ], + "knobshape" : 5, + "maxclass" : "slider", + "min" : -2047.0, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 241.0, 368.0, 20.0, 140.0 ], + "presentation" : 1, + "presentation_rect" : [ 529.25, 527.5, 20.0, 140.0 ], + "size" : 4095.0 + } + + } +, { + "box" : { + "id" : "obj-8", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 52.25, 327.0, 35.0, 22.0 ], + "text" : "2047" + } + + } +, { + "box" : { + "id" : "obj-6", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 241.0, 561.0, 103.0, 22.0 ], + "text" : "/motor/rotate 0 $1" + } + + } +, { + "box" : { + "id" : "obj-4", + "maxclass" : "number", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 52.25, 527.0, 50.0, 22.0 ] + } + + } +, { + "box" : { + "bgcolor" : [ 0.815686274509804, 0.815686274509804, 0.815686274509804, 1.0 ], + "id" : "obj-2", + "knobcolor" : [ 0.349019607843137, 0.349019607843137, 0.349019607843137, 1.0 ], + "knobshape" : 5, + "maxclass" : "slider", + "min" : -2047.0, + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "parameter_enable" : 0, + "patching_rect" : [ 52.25, 368.0, 20.0, 140.0 ], + "presentation" : 1, + "presentation_rect" : [ 487.5, 527.5, 20.0, 140.0 ], + "size" : 4095.0 + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "source" : [ "obj-10", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-86", 0 ], + "source" : [ "obj-100", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-89", 0 ], + "source" : [ "obj-101", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-99", 0 ], + "source" : [ "obj-102", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "source" : [ "obj-103", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-105", 0 ], + "source" : [ "obj-104", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-97", 0 ], + "source" : [ "obj-105", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-55", 0 ], + "source" : [ "obj-106", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-103", 0 ], + "source" : [ "obj-107", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "source" : [ "obj-108", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-71", 0 ], + "order" : 0, + "source" : [ "obj-109", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "order" : 2, + "source" : [ "obj-109", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "order" : 1, + "source" : [ "obj-109", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-6", 0 ], + "source" : [ "obj-11", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-70", 0 ], + "source" : [ "obj-110", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-108", 0 ], + "source" : [ "obj-111", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-110", 0 ], + "source" : [ "obj-113", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-113", 0 ], + "source" : [ "obj-114", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-111", 0 ], + "source" : [ "obj-115", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-119", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-11", 0 ], + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-119", 0 ], + "source" : [ "obj-126", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "order" : 4, + "source" : [ "obj-128", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-251", 0 ], + "order" : 3, + "source" : [ "obj-128", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-252", 0 ], + "order" : 2, + "source" : [ "obj-128", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-253", 0 ], + "order" : 1, + "source" : [ "obj-128", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-254", 0 ], + "order" : 0, + "source" : [ "obj-128", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "order" : 1, + "source" : [ "obj-13", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "order" : 0, + "source" : [ "obj-13", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-114", 0 ], + "source" : [ "obj-130", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-119", 0 ], + "source" : [ "obj-131", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-119", 0 ], + "source" : [ "obj-133", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-137", 0 ], + "source" : [ "obj-134", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-126", 0 ], + "source" : [ "obj-135", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-133", 0 ], + "source" : [ "obj-136", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-140", 0 ], + "source" : [ "obj-137", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-131", 0 ], + "source" : [ "obj-138", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-71", 0 ], + "order" : 0, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-8", 0 ], + "order" : 2, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-9", 0 ], + "order" : 1, + "source" : [ "obj-14", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-142", 0 ], + "source" : [ "obj-140", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-144", 0 ], + "source" : [ "obj-140", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 1 ], + "source" : [ "obj-142", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 1 ], + "source" : [ "obj-144", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-244", 0 ], + "source" : [ "obj-145", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-148", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-148", 0 ], + "order" : 3, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-155", 0 ], + "order" : 6, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-166", 0 ], + "order" : 4, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-167", 0 ], + "order" : 2, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-169", 0 ], + "order" : 5, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-27", 0 ], + "order" : 0, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-41", 0 ], + "order" : 1, + "source" : [ "obj-149", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-106", 0 ], + "order" : 2, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-14", 0 ], + "order" : 3, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-18", 0 ], + "order" : 0, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-205", 0 ], + "order" : 1, + "source" : [ "obj-15", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-155", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-127", 1 ], + "order" : 1, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-171", 0 ], + "order" : 2, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-211", 0 ], + "order" : 0, + "source" : [ "obj-16", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-28", 0 ], + "source" : [ "obj-16", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-166", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-167", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "source" : [ "obj-168", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-169", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-24", 0 ], + "source" : [ "obj-17", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-186", 0 ], + "source" : [ "obj-171", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "source" : [ "obj-18", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-45", 0 ], + "source" : [ "obj-186", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-21", 0 ], + "source" : [ "obj-19", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-194", 0 ], + "source" : [ "obj-191", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-195", 0 ], + "source" : [ "obj-191", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-47", 0 ], + "source" : [ "obj-192", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-107", 1 ], + "order" : 0, + "source" : [ "obj-193", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-76", 1 ], + "order" : 1, + "source" : [ "obj-193", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-88", 0 ], + "order" : 1, + "source" : [ "obj-193", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "order" : 0, + "source" : [ "obj-193", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-1", 0 ], + "source" : [ "obj-194", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-191", 0 ], + "source" : [ "obj-194", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-58", 0 ], + "source" : [ "obj-194", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-197", 0 ], + "source" : [ "obj-195", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-194", 1 ], + "source" : [ "obj-197", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-227", 1 ], + "source" : [ "obj-198", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-4", 0 ], + "source" : [ "obj-2", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-194", 1 ], + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-57", 1 ], + "order" : 1, + "source" : [ "obj-200", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-83", 0 ], + "order" : 0, + "source" : [ "obj-200", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-54", 0 ], + "order" : 0, + "source" : [ "obj-202", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-56", 1 ], + "order" : 1, + "source" : [ "obj-202", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-191", 1 ], + "source" : [ "obj-205", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "source" : [ "obj-21", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-128", 0 ], + "source" : [ "obj-210", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-130", 0 ], + "source" : [ "obj-211", 8 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-134", 0 ], + "source" : [ "obj-211", 9 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-210", 0 ], + "source" : [ "obj-211", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-212", 0 ], + "source" : [ "obj-211", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-213", 0 ], + "source" : [ "obj-211", 4 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-214", 0 ], + "source" : [ "obj-211", 5 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-215", 0 ], + "source" : [ "obj-211", 6 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-218", 0 ], + "source" : [ "obj-211", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-218", 0 ], + "source" : [ "obj-211", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-247", 0 ], + "source" : [ "obj-211", 7 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-228", 0 ], + "source" : [ "obj-212", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-233", 0 ], + "source" : [ "obj-212", 3 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-235", 0 ], + "source" : [ "obj-212", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-237", 0 ], + "source" : [ "obj-212", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-246", 0 ], + "source" : [ "obj-213", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-241", 0 ], + "source" : [ "obj-214", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-239", 0 ], + "source" : [ "obj-215", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-217", 0 ], + "source" : [ "obj-218", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-23", 1 ], + "source" : [ "obj-22", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-191", 0 ], + "source" : [ "obj-227", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-230", 0 ], + "source" : [ "obj-228", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-26", 0 ], + "source" : [ "obj-23", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-66", 0 ], + "source" : [ "obj-230", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-66", 0 ], + "source" : [ "obj-232", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-232", 0 ], + "source" : [ "obj-233", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-66", 0 ], + "source" : [ "obj-234", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-234", 0 ], + "source" : [ "obj-235", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-66", 0 ], + "source" : [ "obj-236", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-236", 0 ], + "source" : [ "obj-237", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 0 ], + "source" : [ "obj-238", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-238", 0 ], + "source" : [ "obj-239", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-19", 0 ], + "source" : [ "obj-24", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 0 ], + "source" : [ "obj-240", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-240", 0 ], + "source" : [ "obj-241", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 0 ], + "source" : [ "obj-242", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-242", 0 ], + "source" : [ "obj-243", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-70", 0 ], + "source" : [ "obj-244", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-145", 0 ], + "source" : [ "obj-245", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-245", 0 ], + "source" : [ "obj-246", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-243", 0 ], + "source" : [ "obj-247", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-227", 0 ], + "order" : 1, + "source" : [ "obj-249", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-260", 0 ], + "order" : 0, + "source" : [ "obj-249", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-255", 0 ], + "source" : [ "obj-251", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-255", 0 ], + "source" : [ "obj-252", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-255", 0 ], + "source" : [ "obj-253", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-255", 0 ], + "source" : [ "obj-254", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-261", 1 ], + "source" : [ "obj-255", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-92", 0 ], + "source" : [ "obj-26", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-261", 0 ], + "source" : [ "obj-260", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-191", 0 ], + "source" : [ "obj-261", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-27", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-16", 0 ], + "order" : 1, + "source" : [ "obj-28", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-17", 0 ], + "order" : 0, + "source" : [ "obj-28", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-20", 0 ], + "source" : [ "obj-29", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-13", 0 ], + "source" : [ "obj-3", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-32", 0 ], + "order" : 1, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-33", 0 ], + "order" : 2, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-42", 1 ], + "order" : 0, + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-128", 0 ], + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-37", 0 ], + "order" : 1, + "source" : [ "obj-32", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-63", 2 ], + "order" : 0, + "source" : [ "obj-32", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-39", 0 ], + "order" : 1, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-63", 1 ], + "order" : 0, + "source" : [ "obj-33", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "order" : 0, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-93", 0 ], + "order" : 1, + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-194", 0 ], + "source" : [ "obj-35", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-46", 0 ], + "order" : 0, + "source" : [ "obj-36", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-49", 0 ], + "order" : 1, + "source" : [ "obj-36", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-52", 0 ], + "source" : [ "obj-38", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-10", 0 ], + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-249", 0 ], + "source" : [ "obj-40", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-41", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-30", 0 ], + "source" : [ "obj-42", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-42", 0 ], + "source" : [ "obj-43", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-38", 0 ], + "source" : [ "obj-44", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-63", 0 ], + "source" : [ "obj-45", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-44", 1 ], + "source" : [ "obj-46", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-62", 0 ], + "source" : [ "obj-47", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-44", 0 ], + "source" : [ "obj-49", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-3", 0 ], + "source" : [ "obj-5", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-64", 0 ], + "source" : [ "obj-50", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-35", 0 ], + "source" : [ "obj-51", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-202", 0 ], + "source" : [ "obj-52", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-31", 0 ], + "order" : 1, + "source" : [ "obj-53", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-40", 0 ], + "order" : 0, + "source" : [ "obj-53", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-203", 0 ], + "source" : [ "obj-54", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-56", 0 ], + "order" : 1, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-57", 0 ], + "order" : 0, + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-56", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "source" : [ "obj-57", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-61", 0 ], + "source" : [ "obj-58", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-198", 0 ], + "source" : [ "obj-6", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-115", 0 ], + "source" : [ "obj-60", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-249", 0 ], + "order" : 1, + "source" : [ "obj-61", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-53", 0 ], + "order" : 0, + "source" : [ "obj-61", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-78", 0 ], + "source" : [ "obj-62", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-85", 0 ], + "source" : [ "obj-63", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-81", 0 ], + "source" : [ "obj-64", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-94", 0 ], + "source" : [ "obj-65", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-70", 1 ], + "order" : 0, + "source" : [ "obj-66", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-84", 0 ], + "order" : 1, + "source" : [ "obj-66", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-50", 0 ], + "source" : [ "obj-67", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 2 ], + "source" : [ "obj-68", 2 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 1 ], + "source" : [ "obj-68", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-67", 0 ], + "source" : [ "obj-68", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 1 ], + "source" : [ "obj-7", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-5", 0 ], + "source" : [ "obj-7", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-60", 0 ], + "source" : [ "obj-70", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-115", 0 ], + "source" : [ "obj-71", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-100", 0 ], + "order" : 1, + "source" : [ "obj-72", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-101", 0 ], + "order" : 0, + "source" : [ "obj-72", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-72", 0 ], + "source" : [ "obj-73", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-73", 1 ], + "source" : [ "obj-74", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-73", 0 ], + "source" : [ "obj-75", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-95", 0 ], + "source" : [ "obj-76", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-74", 0 ], + "order" : 0, + "source" : [ "obj-77", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-75", 0 ], + "order" : 1, + "source" : [ "obj-77", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-193", 0 ], + "source" : [ "obj-78", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-2", 0 ], + "source" : [ "obj-8", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-65", 0 ], + "source" : [ "obj-81", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-87", 0 ], + "source" : [ "obj-81", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-201", 0 ], + "source" : [ "obj-83", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-82", 0 ], + "source" : [ "obj-84", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-77", 0 ], + "source" : [ "obj-85", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-88", 0 ], + "source" : [ "obj-86", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-65", 1 ], + "source" : [ "obj-87", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-65", 0 ], + "source" : [ "obj-87", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-76", 0 ], + "source" : [ "obj-88", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-91", 0 ], + "source" : [ "obj-89", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-12", 0 ], + "source" : [ "obj-9", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-107", 0 ], + "source" : [ "obj-91", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-200", 0 ], + "source" : [ "obj-92", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-23", 0 ], + "source" : [ "obj-93", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-96", 0 ], + "source" : [ "obj-94", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-92", 0 ], + "source" : [ "obj-95", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-192", 0 ], + "source" : [ "obj-96", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-98", 0 ], + "source" : [ "obj-97", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-98", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-168", 0 ], + "source" : [ "obj-99", 0 ] + } + + } + ], + "parameters" : { + "obj-243" : [ "B4", "B4", 0 ], + "obj-192" : [ "tempo", "tempo", 0 ], + "obj-228" : [ "R", "R", 0 ], + "obj-246" : [ "B1", "B1", 0 ], + "obj-186" : [ "steuerrad", "steuerrad", 0 ], + "obj-233" : [ "Up", "Up", 0 ], + "obj-239" : [ "B3", "B3", 0 ], + "obj-235" : [ "Down", "Down", 0 ], + "obj-241" : [ "B2", "B2", 0 ], + "obj-237" : [ "L", "L", 0 ], + "parameterbanks" : { + + } + + } +, + "dependency_cache" : [ { + "name" : "SMS_TargetSelect_sub.maxpat", + "bootpath" : "~/Documents/OSS/mobspkr-vehicle-ctrl/control-patches", + "patcherrelativepath" : ".", + "type" : "JSON", + "implicit" : 1 + } +, { + "name" : "SMS_Volt-Temp_sub.maxpat", + "bootpath" : "~/Documents/OSS/mobspkr-vehicle-ctrl/control-patches", + "patcherrelativepath" : ".", + "type" : "JSON", + "implicit" : 1 + } +, { + "name" : "max-net.js", + "bootpath" : "~/Documents/OSS/mobspkr-vehicle-ctrl/control-patches", + "patcherrelativepath" : ".", + "type" : "TEXT", + "implicit" : 1 + } + ], + "autosave" : 0, + "bgcolor" : [ 200.0, 200.0, 200.0, 1.0 ] + } + +} diff --git a/control-patches/SMS_TargetSelect_sub.maxpat b/control-patches/SMS_TargetSelect_sub.maxpat index e9b892c..0a7fc55 100644 --- a/control-patches/SMS_TargetSelect_sub.maxpat +++ b/control-patches/SMS_TargetSelect_sub.maxpat @@ -4,7 +4,7 @@ "appversion" : { "major" : 8, "minor" : 1, - "revision" : 11, + "revision" : 3, "architecture" : "x64", "modernui" : 1 } @@ -37,7 +37,6 @@ "tags" : "", "style" : "", "subpatcher_template" : "", - "assistshowspatchername" : 0, "boxes" : [ { "box" : { "id" : "obj-26", @@ -426,7 +425,7 @@ , { "box" : { "id" : "obj-4", - "items" : [ "Angela", "(AGGREGAT)", ",", "Roger", "(Rotation)", ",", "Giacometti", "(?)" ], + "items" : [ "Angela", "(AGGREGAT)", ",", "Roger", "(Rotation)", ",", "Elaine", "(Elevation)" ], "maxclass" : "umenu", "numinlets" : 1, "numoutlets" : 3, diff --git a/src/motor.cpp b/src/motor.cpp index 94ca2a3..7f97562 100644 --- a/src/motor.cpp +++ b/src/motor.cpp @@ -156,6 +156,10 @@ namespace MobSpkr { return execute_with_value(MobSpkr::PD_1160::SetAxisParam_MaxCurrent, value, NULL, 1000); } + Motor::Response::Status Motor::command_setAxisParam_StandbyCurrent(uint32_t value, unsigned int timeout_ms){ + return execute_with_value(MobSpkr::PD_1160::SetAxisParam_StandbyCurrent, value, NULL, 1000); + } + Motor::Response::Status Motor::command_setAxisParam_PowerDownDelay(uint32_t value, unsigned int timeout_ms){ return execute_with_value(MobSpkr::PD_1160::SetAxisParam_PowerDownDelay, value, NULL, 1000) ; } diff --git a/src/motor.hpp b/src/motor.hpp index 48a3a2f..e81cde6 100644 --- a/src/motor.hpp +++ b/src/motor.hpp @@ -253,6 +253,7 @@ class Motor { Response::Status command_setAxisParam_ActualPosition(int32_t value, unsigned int timeout_ms); Response::Status command_setAxisParam_MaxCurrent(uint32_t value, unsigned int timeout_ms); + Response::Status command_setAxisParam_StandbyCurrent(uint32_t value, unsigned int timeout_ms); Response::Status command_setAxisParam_PowerDownDelay(uint32_t value, unsigned int timeout_ms); Response::Status command_setAxisParam_Interpolation(uint32_t value, unsigned int timeout_ms); Response::Status command_setAxisParam_PulseDivisor(uint32_t value, unsigned int timeout_ms); @@ -298,6 +299,7 @@ class Motor { const uint8_t SetAxisParam_PulseDivisor[] = {01, 05, 0x9a, 00, 00, 00, 00, 00, 00}; const uint8_t SetAxisParam_RampDivisor[] = {01, 05, 0x99, 00, 00, 00, 00, 00, 00}; const uint8_t SetAxisParam_MaxCurrent[] = {01, 05, 06, 00, 00, 00, 00, 00, 00}; + const uint8_t SetAxisParam_StandbyCurrent[] = {01, 05, 07, 00, 00, 00, 00, 00, 00}; const uint8_t SetAxisParam_PowerDownDelay[] = {01, 05, 0xd6, 00, 00, 00, 00, 00, 00}; const uint8_t SetAxisParam_MaxAcceleration[] = {01, 05, 05, 00, 00, 00, 00, 00, 00}; diff --git a/src/rpi-osc-stepper.cpp b/src/rpi-osc-stepper.cpp index 3832767..4f2eae4 100644 --- a/src/rpi-osc-stepper.cpp +++ b/src/rpi-osc-stepper.cpp @@ -211,6 +211,11 @@ protected: int32_t pos_target = 0; + if (current_angle == desired_angled){ + fprintf(stderr, "not moving, already at angle\n"); + return; + } + // if rotating "right" position increments, thus we go for the next bigger possible position, otherwise the next smaller one // treat not-rotating as right-rotation if (current_movement[motor_index] >= 0){ @@ -236,9 +241,31 @@ protected: fprintf(stderr, "moving to absolute pos %d\n", pos_target); motors[motor_index].command_moveToPosition(pos_target, MobSpkr::Motor::MovementType_Absolute, 0, TIMEOUT_MS); + + current_movement[motor_index] = 0; } + if (std::strcmp( m.AddressPattern(), "/motor/move-to-position") == 0) { + + osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin(); + int motor_index = (arg++)->AsInt32(); + int pos = (arg++)->AsInt32(); + if (arg != m.ArgumentsEnd()) + throw osc::ExcessArgumentException(); + if (motor_index < 0 || motor_count <= motor_index) { + fprintf(stderr, "Invalid motor index: %d (0 - %d)\n", motor_index, motor_count - 1); + return; + } + + if (pos < -2147483648 || 2147483647 < pos) { + fprintf(stderr, "Invalid position: %d [-2147483648, 2147483647]\n", pos); + return; + } + + fprintf(stderr, "move to position: %d\n", pos); + motors[motor_index].command_moveToPosition(pos, MobSpkr::Motor::MovementType_Absolute, 0, TIMEOUT_MS); + } if (std::strcmp( m.AddressPattern(), "/motor/rotate") == 0){ @@ -283,12 +310,37 @@ protected: return; } - fprintf(stderr, "setting motor %d msr = %d\n", motor_index, msr); + fprintf(stderr, "setting motor %d msr = %d\n", motor_index, msr); if (set_motor_msr(motor_index, msr)) fprintf(stderr, "failed\n"); } + if (std::strcmp(m.AddressPattern(), "/motor/standby-current") == 0){ + + osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin(); + int motor_index = (arg++)->AsInt32(); + int value = (arg++)->AsInt32(); + if( arg != m.ArgumentsEnd() ) + throw osc::ExcessArgumentException(); + + if (motor_index < 0 || motor_count <= motor_index){ + fprintf(stderr, "Invalid motor index: %d (0 - %d)\n", motor_index, motor_count - 1); + return; + } + if (value < 0 || 255 < value){ + fprintf(stderr, "Invalid standby current: %d [0, 255]\n", value); + return; + } + + fprintf(stderr, "setting standby current (motor %d) := %d\n", motor_index, value); + if (motors[motor_index].command_setAxisParam_StandbyCurrent(value, TIMEOUT_MS)) + fprintf(stderr, "failed\n"); + } + + + + if (std::strcmp(m.AddressPattern(), "/motor/temp") == 0) { osc::ReceivedMessage::const_iterator arg = m.ArgumentsBegin(); diff --git a/src/utils/motor-cmd.cpp b/src/utils/motor-cmd.cpp index 0c23f88..3a2d480 100644 --- a/src/utils/motor-cmd.cpp +++ b/src/utils/motor-cmd.cpp @@ -23,6 +23,7 @@ static void print_usage(FILE * out){ "\t --pos [<pos>]\t Get/Set actual position (motor must be stopped)\n" "\t --move-to <pos>\t Move to absolute position\n" "\t --move-by <pos>\t Move to relative position\n" + "\t --standby-current <cur>\t Set standby current\n" "Examples:\n" "%s -s/dev/cu.usbmodemTMCSTEP1 --msr --msr=7 --msr\n", argv0, argv0); @@ -61,6 +62,7 @@ int main(int argc, char * argv[]){ {"move-to", required_argument, 0, 7}, {"move-by", required_argument, 0, 8}, {"stop", no_argument, 0, 'q'}, + {"standby-current", required_argument, 0, 9}, {0, 0, 0, 0 } }; @@ -316,6 +318,28 @@ int main(int argc, char * argv[]){ break; } + case 9: { // --standby-current + + if (!motor.is_open()){ + fprintf(stderr, "Command before was connected to motor!\n"); + goto fail; + } + + int32_t value = std::atoi(optarg); + if (value < 0 || 255 < value){ + fprintf(stderr, "Invalid standby current (must be in [0, 255]): %d\n", value); + goto fail; + } + printf("Setting standby current %d ", value); + MobSpkr::Motor::Response::Status status = motor.command_setAxisParam_StandbyCurrent(value, timeout_ms); + if (status != MobSpkr::Motor::Response::Status::Success) + printf("FAILED\n"); + else + printf("OK\n"); + + break; + } + default: printf("?? getopt returned character code 0%o ??\n", c); } -- GitLab