Files
@ c65119b66b00
Branch filter:
Location: light9/light8/io.py - annotation
c65119b66b00
2.9 KiB
text/x-python
- no more kw args -- they didn't do anything. use configure to change
- no more kw args -- they didn't do anything. use configure to change
things instead.
- colortrough on the way to a more generic color fader, now called
colorfade
- get/set methods make FlyingFader seem more like a Scale
- no more kw args -- they didn't do anything. use configure to change
things instead.
- colortrough on the way to a more generic color fader, now called
colorfade
- get/set methods make FlyingFader seem more like a Scale
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 |
class BaseIO:
def __init__(self):
self.dummy=1
self.__name__ = 'BaseIO'
# please override and set __name__ to your class name
def golive(self):
"""call this if you want to promote the dummy object becomes a live object"""
print "IO: %s is going live" % self.__name__
self.dummy=0
# you'd override with additional startup stuff here,
# perhaps even loading a module and saving it to a class
# attr so the subclass-specific functions can use it
def godummy(self):
print "IO: %s is going dummy" % self.__name__
self.dummy=1
# you might override this to close ports, etc
def isdummy(self):
return self.dummy
def __repr__(self):
if self.dummy:
return "<dummy %s instance>" % self.__name__
else:
return "<live %s instance>" % self.__name__
# the derived class will have more methods to do whatever it does,
# and they should return dummy values if self.dummy==1.
class ParportDMX(BaseIO):
def __init__(self, dimmers=68):
BaseIO.__init__(self)
self.__name__='ParportDMX'
self.dimmers = dimmers
def golive(self):
BaseIO.golive(self)
import parport
self.parport = parport
self.parport.getparport()
def sendlevels(self, levels):
if self.dummy:
return
levels = list(levels) + [0]
# if levels[14] > 0: levels[14] = 100 # non-dim
self.parport.outstart()
for p in range(1, self.dimmers + 2):
self.parport.outbyte(levels[p-1]*255 / 100)
class SerialPots(BaseIO):
"""
this is a dummy object (that returns zeros forever) until you call startup()
which makes it bind to the port, etc
"""
def __init__(self):
# no init here- call getport() to actually initialize
self.dummy=1
self.__name__='SerialPots' # i thought this was automatic!
def golive(self):
"""
ls -l /dev/i2c-0
crw-rw-rw- 1 root root 89, 0 Jul 11 12:27 /dev/i2c-0
"""
import serport
self.serport = serport
self.f = open("/dev/i2c-0","rw")
# this is for a chip with A0,A1,A2 lines all low:
port = 72
from fcntl import *
I2C_SLAVE = 0x0703 #/* Change slave address */
ioctl(self.f,I2C_SLAVE,port)
self.dummy=0
def godummy(self):
BaseIO.godummy(self)
self.f.close()
def getlevels(self):
if self.dummy:
return (0,0,0,0)
else:
return self.serport.read_all_adc(self.f.fileno())
if __name__=='__main__':
""" tester program that just dumps levels for a while """
from time import sleep
from serport import *
i=0
while i<100:
sleep(.033)
i=i+1
print read_all_adc(f.fileno())
|