Passing Variable to Function
John McKenzie
davros at bellaliant.net
Wed Oct 5 15:17:33 EDT 2016
Hello, all.
I have a function that takes three arguments, arguments to express an RGB
colour. The function controls an LED light strip (a Blinkytape).
Sometimes I might need to be change what colour is sent to the function,
so I set a variable with the idea that I can change just the variable
later if I need to instead of changing a bunch of different lines.
So I have variables along the lines of this:
colour ="255, 0, 0"
colour2 ="100, 0, 0"
My function, written by the Blinkytape people:
def changeColor(r, g, b):
serialPorts = glob.glob("/dev/ttyACM0*")
port = serialPorts[0]
if not port:
sys.exit("Could not locate a BlinkyTape.")
print "BlinkyTape found at: %s" % port
bt = BlinkyTape.BlinkyTape(port)
bt.displayColor(r, g, b)
time.sleep(.1) # Give the serial driver some time to actually send
the data
bt.close()
Later, I have conditional statements like:
if latitude > maxNetural and latitude < NorthLine:
changeColor(colour)
elif latitude > NorthLine:
changeColor(colour2)
(There is a GPS device connected, there are variables defined based on
latitude earlier in the script.)
I get an error stating that changeColor takes three arguments and I am
just giving it one (either "colour1" or "colour2").
Is there a way to format the "colour" variable so that the changeColor
function takes it as the three numbers it is meant to be defined as?
Entire script:
http://hastebin.com/qaqotusozo.py
Thanks.
More information about the Python-list
mailing list