make airmanager instrument
This commit is contained in:
1 parent
9b2c46c776
commit
8aa3f2599d
8 files changed
+236
-387
No files matched your search
@@ -0,0 +1,45 @@
|
||||
|
||||
function logEncoder(knobName, config)
|
||||
print(knobName)
|
||||
print("default hw id A: " .. arduino .. config.pinA)
|
||||
print("default hw id B: " .. arduino .. config.pinB)
|
||||
print("event: " .. config.event)
|
||||
print("- - - - - - - - - - -")
|
||||
end
|
||||
|
||||
-- assign a string to a integer of encoder direction (0,1)
|
||||
function leftRight(direction)
|
||||
return direction == 1 and "_Right" or "_Left"
|
||||
end
|
||||
|
||||
local default_acceleration = 3
|
||||
local default_debounce = 4
|
||||
|
||||
-- How to add Rotary Encoders:
|
||||
-- https://siminnovations.com/wiki/index.php?title=Rotary_encoder_connection_tutorial
|
||||
-- https://siminnovations.com/wiki/index.php?title=Hw_dial_add
|
||||
-- hw_dial_add(hw_id_a, hw_id_b, callback)
|
||||
function encoder(knobName, config)
|
||||
|
||||
type = "TYPE_1_DETENT_PER_PULSE"
|
||||
|
||||
local defaultPinA = arduino .. config.pinA
|
||||
local hw_id_pin_a = user_prop_add_hardware_id("Encoder " .. knobName .. " pin A", defaultPinA, knobName .. " pin A")
|
||||
|
||||
local defaultPinB = arduino .. config.pinB
|
||||
local hw_id_pin_b = user_prop_add_hardware_id("Encoder " .. knobName .. " pin B", defaultPinB, knobName .. " pin B")
|
||||
|
||||
hw_dial_add(
|
||||
tostring(hw_id_pin_a),
|
||||
tostring(hw_id_pin_b), type, default_acceleration, default_debounce, function(direction)
|
||||
event(config.event .. leftRight(direction))
|
||||
end)
|
||||
end
|
||||
|
||||
function setupEncoders()
|
||||
-- Run the four encoders through the assignment function
|
||||
for knobName, config in pairs(knobs) do
|
||||
logEncoder(knobName, config)
|
||||
encoder(knobName, config)
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user