make airmanager instrument

This commit is contained in:
Christopher Costa Hardt committed 2022-12-26 16:19:15 +01:00
1 parent 9b2c46c776
commit 8aa3f2599d
8 files changed
+236 -387

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
-- How to add Buttons:
-- https://siminnovations.com/wiki/index.php?title=Hw_button_add
-- hw_button_add(hw_id, pressed_callback, released_callback)
function log(buttonName, config)
print(buttonName)
print("default hw id: " .. arduino .. config.pin)
print("event: " .. config.event)
print("- - - - - - - - - - -")
end
-- add button with one event (press)
function assign(buttonName, config)
local defaultHardwareId = arduino .. config.pin
hw_id = user_prop_add_hardware_id("Button " .. tostring(buttonName), defaultHardwareId, tostring(buttonName))
hw_button_add(tostring(hw_id), function()
event(config.event)
end)
end
-- add button with two events (press/release)
function assignClr(buttonName, config)
local defaultHardwareId = arduino .. config.pin
hw_id = user_prop_add_hardware_id("Button " .. tostring(buttonName), defaultHardwareId, tostring(buttonName))
hw_button_add(tostring(hw_id), function()
timer_clear = timer_start(2000, function()
event(config.event2)
end)
end, function()
timer_stop(timer_clear)
event(config.event)
end)
end
function setupButtons()
for buttonName, config in pairs(buttons) do
log(buttonName, config)
if (buttonName == "CLR") then
assignClr(buttonName, config)
else
assign(buttonName, config)
end
end
end
+45
View File
@@ -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