Merge branch 'main' into dev
This commit is contained in:
commit
0fa79fec1e
107
arduino.py
107
arduino.py
@ -22,13 +22,16 @@ import serial, time, hal
|
|||||||
# Data is only send everythime it changes once.
|
# Data is only send everythime it changes once.
|
||||||
|
|
||||||
# Inputs & Toggle Inputs = 'I' -write only -Pin State: 0,1
|
# Inputs & Toggle Inputs = 'I' -write only -Pin State: 0,1
|
||||||
# Outputs = 'O' -read only -Pin State: 0,1
|
# Outputs = 'O' -read only -Pin State: 0,1
|
||||||
# PWM Outputs = 'P' -read only -Pin State: 0-255
|
# PWM Outputs = 'P' -read only -Pin State: 0-255
|
||||||
# Digital LED Outputs = 'D' -read only -Pin State: 0,1
|
# Digital LED Outputs = 'D' -read only -Pin State: 0,1
|
||||||
# Analog Inputs = 'A' -write only -Pin State: 0-1024
|
# Analog Inputs = 'A' -write only -Pin State: 0-1024
|
||||||
# Latching Potentiometers = 'L' -write only -Pin State: 0-max Position
|
# Latching Potentiometers = 'L' -write only -Pin State: 0-max Position
|
||||||
# binary encoded Selector = 'K' -write only -Pin State: 0-32
|
# binary encoded Selector = 'K' -write only -Pin State: 0-32
|
||||||
# Matrix Keypad = 'M' -write only -Pin State: 0,1
|
# Matrix Keypad = 'M' -write only -Pin State: 0,1
|
||||||
|
# Quadrature Encoders = 'R' -write only -Pin State: 0(down),1(up),-2147483648 to 2147483647(counter)
|
||||||
|
# Joystick Input = 'R' -write only -Pin State: -2147483648 to 2147483647(counter)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Command 'E0:0' is used for connectivity checks and is send every 5 seconds as keep alive signal
|
# Command 'E0:0' is used for connectivity checks and is send every 5 seconds as keep alive signal
|
||||||
@ -183,43 +186,43 @@ min_update_interval = 100
|
|||||||
|
|
||||||
# setup Input halpins
|
# setup Input halpins
|
||||||
for port in range(Inputs):
|
for port in range(Inputs):
|
||||||
c.newpin("dIn.{}".format(InPinmap[port]), hal.HAL_BIT, hal.HAL_OUT)
|
c.newpin("din.{}".format(InPinmap[port]), hal.HAL_BIT, hal.HAL_OUT)
|
||||||
c.newparam("dIn.{}-invert".format(InPinmap[port]), hal.HAL_BIT, hal.HAL_RW)
|
c.newparam("din.{}-invert".format(InPinmap[port]), hal.HAL_BIT, hal.HAL_RW)
|
||||||
|
|
||||||
# setup Output halpins
|
# setup Output halpins
|
||||||
for port in range(Outputs):
|
for port in range(Outputs):
|
||||||
c.newpin("dOut.{}".format(OutPinmap[port]), hal.HAL_BIT, hal.HAL_IN)
|
c.newpin("dout.{}".format(OutPinmap[port]), hal.HAL_BIT, hal.HAL_IN)
|
||||||
olddOutStates[port] = 0
|
olddOutStates[port] = 0
|
||||||
|
|
||||||
# setup Pwm Output halpins
|
# setup Pwm Output halpins
|
||||||
for port in range(PwmOutputs):
|
for port in range(PwmOutputs):
|
||||||
c.newpin("PwmOut.{}".format(PwmOutPinmap[port]), hal.HAL_FLOAT, hal.HAL_IN)
|
c.newpin("pwmout.{}".format(PwmOutPinmap[port]), hal.HAL_FLOAT, hal.HAL_IN)
|
||||||
oldPwmOutStates[port] = 255
|
oldPwmOutStates[port] = 255
|
||||||
# setup Analog Input halpins
|
# setup Analog Input halpins
|
||||||
for port in range(AInputs):
|
for port in range(AInputs):
|
||||||
c.newpin("aIn.{}".format(AInPinmap[port]), hal.HAL_FLOAT, hal.HAL_OUT)
|
c.newpin("ain.{}".format(AInPinmap[port]), hal.HAL_FLOAT, hal.HAL_OUT)
|
||||||
|
|
||||||
# setup Latching Poti halpins
|
# setup Latching Poti halpins
|
||||||
for Poti in range(LPoti):
|
for Poti in range(LPoti):
|
||||||
if SetLPotiValue[port]== 0:
|
if SetLPotiValue[port]== 0:
|
||||||
for Pin in range(LPotiLatches[Poti][1]):
|
for Pin in range(LPotiLatches[Poti][1]):
|
||||||
c.newpin("LPoti.{}.{}" .format(LPotiLatches[Poti][0],Pin), hal.HAL_BIT, hal.HAL_OUT)
|
c.newpin("lpoti.{}.{}" .format(LPotiLatches[Poti][0],Pin), hal.HAL_BIT, hal.HAL_OUT)
|
||||||
else:
|
else:
|
||||||
c.newpin("LPoti.{}.{}" .format(LPotiLatches[Poti][0],"out"), hal.HAL_S32, hal.HAL_OUT)
|
c.newpin("lpoti.{}.{}" .format(LPotiLatches[Poti][0],"out"), hal.HAL_S32, hal.HAL_OUT)
|
||||||
|
|
||||||
# setup Absolute Encoder Knob halpins
|
# setup Absolute Encoder Knob halpins
|
||||||
if BinSelKnob:
|
if BinSelKnob:
|
||||||
if SetBinSelKnobValue == 0:
|
if SetBinSelKnobValue == 0:
|
||||||
for port in range(BinSelKnobPos):
|
for port in range(BinSelKnobPos):
|
||||||
c.newpin("BinSelKnob.0.{}".format(port), hal.HAL_BIT, hal.HAL_OUT)
|
c.newpin("binselknob.0.{}".format(port), hal.HAL_BIT, hal.HAL_OUT)
|
||||||
else :
|
else :
|
||||||
c.newpin("BinSelKnob.{}.{}" .format("0","out"), hal.HAL_S32, hal.HAL_OUT)
|
c.newpin("binselknob.{}.{}" .format("0","out"), hal.HAL_S32, hal.HAL_OUT)
|
||||||
|
|
||||||
|
|
||||||
# setup Digital LED halpins
|
# setup Digital LED halpins
|
||||||
if DLEDcount > 0:
|
if DLEDcount > 0:
|
||||||
for port in range(DLEDcount):
|
for port in range(DLEDcount):
|
||||||
c.newpin("DLED.{}".format(port), hal.HAL_BIT, hal.HAL_IN)
|
c.newpin("dled.{}".format(port), hal.HAL_BIT, hal.HAL_IN)
|
||||||
oldDLEDStates[port] = 0
|
oldDLEDStates[port] = 0
|
||||||
# setup MatrixKeyboard halpins
|
# setup MatrixKeyboard halpins
|
||||||
if Keypad > 0:
|
if Keypad > 0:
|
||||||
@ -227,20 +230,20 @@ if Keypad > 0:
|
|||||||
if Destination[port] == 0 & LinuxKeyboardInput:
|
if Destination[port] == 0 & LinuxKeyboardInput:
|
||||||
pass #if destination is set to Linux, don't register a Hal Pin for this key.
|
pass #if destination is set to Linux, don't register a Hal Pin for this key.
|
||||||
else:
|
else:
|
||||||
c.newpin("Keypad.{}".format(Chars[port]), hal.HAL_BIT, hal.HAL_IN)
|
c.newpin("keypad.{}".format(Chars[port]), hal.HAL_BIT, hal.HAL_IN)
|
||||||
#setup JoyStick Pins
|
#setup JoyStick Pins
|
||||||
if JoySticks > 0:
|
if JoySticks > 0:
|
||||||
for port in range(JoySticks*2):
|
for port in range(JoySticks*2):
|
||||||
c.newpin("Counter.{}".format(JoyStickPins[port]), hal.HAL_S32, hal.HAL_OUT)
|
c.newpin("counter.{}".format(JoyStickPins[port]), hal.HAL_S32, hal.HAL_OUT)
|
||||||
|
|
||||||
|
|
||||||
if QuadEncs > 0:
|
if QuadEncs > 0:
|
||||||
for port in range(QuadEncs):
|
for port in range(QuadEncs):
|
||||||
if QuadEncSig[port] == 1:
|
if QuadEncSig[port] == 1:
|
||||||
c.newpin("CounterUp.{}".format(port), hal.HAL_BIT, hal.HAL_OUT)
|
c.newpin("counterup.{}".format(port), hal.HAL_BIT, hal.HAL_OUT)
|
||||||
c.newpin("CounterDown.{}".format(port), hal.HAL_BIT, hal.HAL_OUT)
|
c.newpin("counterdown.{}".format(port), hal.HAL_BIT, hal.HAL_OUT)
|
||||||
if QuadEncSig[port] == 2:
|
if QuadEncSig[port] == 2:
|
||||||
c.newpin("Counter.{}".format(port), hal.HAL_S32, hal.HAL_OUT)
|
c.newpin("counter.{}".format(port), hal.HAL_S32, hal.HAL_OUT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -281,7 +284,7 @@ def extract_nbr(input_str):
|
|||||||
|
|
||||||
def managageOutputs():
|
def managageOutputs():
|
||||||
for port in range(PwmOutputs):
|
for port in range(PwmOutputs):
|
||||||
State = int(c["PwmOut.{}".format(PwmOutPinmap[port])])
|
State = int(c["pwmout.{}".format(PwmOutPinmap[port])])
|
||||||
if oldPwmOutStates[port] != State: #check if states have changed
|
if oldPwmOutStates[port] != State: #check if states have changed
|
||||||
Sig = 'P'
|
Sig = 'P'
|
||||||
Pin = int(PwmOutPinmap[port])
|
Pin = int(PwmOutPinmap[port])
|
||||||
@ -291,7 +294,7 @@ def managageOutputs():
|
|||||||
oldPwmOutStates[port]= State
|
oldPwmOutStates[port]= State
|
||||||
|
|
||||||
for port in range(Outputs):
|
for port in range(Outputs):
|
||||||
State = int(c["dOut.{}".format(OutPinmap[port])])
|
State = int(c["dout.{}".format(OutPinmap[port])])
|
||||||
if olddOutStates[port] != State: #check if states have changed
|
if olddOutStates[port] != State: #check if states have changed
|
||||||
Sig = 'O'
|
Sig = 'O'
|
||||||
Pin = int(OutPinmap[port])
|
Pin = int(OutPinmap[port])
|
||||||
@ -301,7 +304,7 @@ def managageOutputs():
|
|||||||
olddOutStates[port]= State
|
olddOutStates[port]= State
|
||||||
|
|
||||||
for port in range(DLEDcount):
|
for port in range(DLEDcount):
|
||||||
State = int(c["DLED.{}".format(port)])
|
State = int(c["dled.{}".format(port)])
|
||||||
if oldDLEDStates[port] != State: #check if states have changed
|
if oldDLEDStates[port] != State: #check if states have changed
|
||||||
Sig = 'D'
|
Sig = 'D'
|
||||||
Pin = int(port)
|
Pin = int(port)
|
||||||
@ -334,20 +337,20 @@ while True:
|
|||||||
if cmd == "I":
|
if cmd == "I":
|
||||||
firstcom = 1
|
firstcom = 1
|
||||||
if value == 1:
|
if value == 1:
|
||||||
c["dIn.{}".format(io)] = 1
|
c["din.{}".format(io)] = 1
|
||||||
c["dIn.{}-invert".format(io)] = 0
|
c["din.{}-invert".format(io)] = 0
|
||||||
if(Debug):print("dIn{}:{}".format(io,1))
|
if(Debug):print("din{}:{}".format(io,1))
|
||||||
|
|
||||||
if value == 0:
|
if value == 0:
|
||||||
c["dIn.{}".format(io)] = 0
|
c["din.{}".format(io)] = 0
|
||||||
c["dIn.{}-invert".format(io)] = 1
|
c["din.{}-invert".format(io)] = 1
|
||||||
if(Debug):print("dIn{}:{}".format(io,0))
|
if(Debug):print("din{}:{}".format(io,0))
|
||||||
else:pass
|
else:pass
|
||||||
|
|
||||||
elif cmd == "A":
|
elif cmd == "A":
|
||||||
firstcom = 1
|
firstcom = 1
|
||||||
c["aIn.{}".format(io)] = value
|
c["ain.{}".format(io)] = value
|
||||||
if (Debug):print("aIn.{}:{}".format(io,value))
|
if (Debug):print("ain.{}:{}".format(io,value))
|
||||||
|
|
||||||
elif cmd == "L":
|
elif cmd == "L":
|
||||||
firstcom = 1
|
firstcom = 1
|
||||||
@ -355,28 +358,28 @@ while True:
|
|||||||
if LPotiLatches[Poti][0] == io and SetLPotiValue[Poti] == 0:
|
if LPotiLatches[Poti][0] == io and SetLPotiValue[Poti] == 0:
|
||||||
for Pin in range(LPotiLatches[Poti][1]):
|
for Pin in range(LPotiLatches[Poti][1]):
|
||||||
if Pin == value:
|
if Pin == value:
|
||||||
c["LPoti.{}.{}" .format(io,Pin)] = 1
|
c["lpoti.{}.{}" .format(io,Pin)] = 1
|
||||||
if(Debug):print("LPoti.{}.{} =1".format(io,Pin))
|
if(Debug):print("lpoti.{}.{} =1".format(io,Pin))
|
||||||
else:
|
else:
|
||||||
c["LPoti.{}.{}" .format(io,Pin)] = 0
|
c["lpoti.{}.{}" .format(io,Pin)] = 0
|
||||||
if(Debug):print("LPoti.{}.{} =0".format(io,Pin))
|
if(Debug):print("lpoti.{}.{} =0".format(io,Pin))
|
||||||
|
|
||||||
if LPotiLatches[Poti][0] == io and SetLPotiValue[Poti] == 1:
|
if LPotiLatches[Poti][0] == io and SetLPotiValue[Poti] == 1:
|
||||||
c["LPoti.{}.{}" .format(io,"out")] = LPotiValues[Poti][value]
|
c["lpoti.{}.{}" .format(io,"out")] = LPotiValues[Poti][value]
|
||||||
if(Debug):print("LPoti.{}.{} = 0".format("out",LPotiValues[Poti][value]))
|
if(Debug):print("lpoti.{}.{} = 0".format("out",LPotiValues[Poti][value]))
|
||||||
|
|
||||||
elif cmd == "K":
|
elif cmd == "K":
|
||||||
firstcom = 1
|
firstcom = 1
|
||||||
if SetBinSelKnobValue == 0:
|
if SetBinSelKnobValue == 0:
|
||||||
for port in range(BinSelKnobPos):
|
for port in range(BinSelKnobPos):
|
||||||
if port == value:
|
if port == value:
|
||||||
c["BinSelKnob.{}".format(port)] = 1
|
c["binselknob.{}".format(port)] = 1
|
||||||
if(Debug):print("BinSelKnob.{}:{}".format(port,1))
|
if(Debug):print("binselknob.{}:{}".format(port,1))
|
||||||
else:
|
else:
|
||||||
c["BinSelKnob.{}".format(port)] = 0
|
c["binselknob.{}".format(port)] = 0
|
||||||
if(Debug):print("BinSelKnob.{}:{}".format(port,0))
|
if(Debug):print("binselknob.{}:{}".format(port,0))
|
||||||
else:
|
else:
|
||||||
c["BinSelKnob.{}.{}" .format(0,"out")] = BinSelKnobvalues[value]
|
c["binselknob.{}.{}" .format(0,"out")] = BinSelKnobvalues[value]
|
||||||
|
|
||||||
|
|
||||||
elif cmd == "M":
|
elif cmd == "M":
|
||||||
@ -386,34 +389,34 @@ while True:
|
|||||||
subprocess.call(["xdotool", "key", Chars[io]])
|
subprocess.call(["xdotool", "key", Chars[io]])
|
||||||
if(Debug):print("Emulating Keypress{}".format(Chars[io]))
|
if(Debug):print("Emulating Keypress{}".format(Chars[io]))
|
||||||
else:
|
else:
|
||||||
c["Keypad.{}".format(Chars[io])] = 1
|
c["keypad.{}".format(Chars[io])] = 1
|
||||||
if(Debug):print("Keypad{}:{}".format(Chars[io],1))
|
if(Debug):print("keypad{}:{}".format(Chars[io],1))
|
||||||
|
|
||||||
if value == 0 & Destination[io] == 0:
|
if value == 0 & Destination[io] == 0:
|
||||||
c["Keypad.{}".format(Chars[io])] = 0
|
c["keypad.{}".format(Chars[io])] = 0
|
||||||
if(Debug):print("Keypad{}:{}".format(Chars[io],0))
|
if(Debug):print("keypad{}:{}".format(Chars[io],0))
|
||||||
|
|
||||||
elif cmd == "R":
|
elif cmd == "R":
|
||||||
firstcom = 1
|
firstcom = 1
|
||||||
if JoySticks > 0:
|
if JoySticks > 0:
|
||||||
for pins in range(JoySticks*2):
|
for pins in range(JoySticks*2):
|
||||||
if (io == JoyStickPins[pins]):
|
if (io == JoyStickPins[pins]):
|
||||||
c["Counter.{}".format(io)] = value
|
c["counter.{}".format(io)] = value
|
||||||
if (Debug):print("Counter.{}:{}".format(io,value))
|
if (Debug):print("counter.{}:{}".format(io,value))
|
||||||
if QuadEncs > 0:
|
if QuadEncs > 0:
|
||||||
if QuadEncSig[io]== 1:
|
if QuadEncSig[io]== 1:
|
||||||
if value == 0:
|
if value == 0:
|
||||||
c["CounterDown.{}".format(io)] = 1
|
c["counterdown.{}".format(io)] = 1
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
c["CounterDown.{}".format(io)] = 0
|
c["counterdown.{}".format(io)] = 0
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
if value == 1:
|
if value == 1:
|
||||||
c["CounterUp.{}".format(io)] = 1
|
c["counterup.{}".format(io)] = 1
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
c["CounterUp.{}".format(io)] = 0
|
c["counterup.{}".format(io)] = 0
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
if QuadEncSig[io]== 2:
|
if QuadEncSig[io]== 2:
|
||||||
c["Counter.{}".format(io)] = value
|
c["counter.{}".format(io)] = value
|
||||||
|
|
||||||
elif cmd == 'E':
|
elif cmd == 'E':
|
||||||
arduino.write(b"E0:0\n")
|
arduino.write(b"E0:0\n")
|
||||||
|
Loading…
Reference in New Issue
Block a user