Changeset 75
- Timestamp:
- 06/08/08 19:07:55 (6 months ago)
- Files:
-
- fizzjik/CHANGELOG.txt (modified) (1 diff)
- fizzjik/fizzjik/io/avr3085.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
fizzjik/CHANGELOG.txt
r74 r75 1 1 == 0.4.2 == 2008.06.08 2 2 * Added a RESTish wrapper for services to make them accessible via the web 3 * Added support for a delay between requests to the AVR to prevent collisions 3 4 4 5 == 0.4.1 == 2008.06.06 fizzjik/fizzjik/io/avr3085.py
r74 r75 4 4 5 5 import re 6 7 from twisted.internet import defer, reactor 6 8 7 9 from fizzjik.serial import SerialPortClient, SerialPortProtocol … … 57 59 implements(IController) 58 60 61 _canSend = True 62 _cmdQueue = None 63 _cmdLock = None 64 59 65 def __init__(self, *args, **kw): 60 66 SerialPortClient.__init__(self, Avr3085Protocol, *args, **kw) … … 62 68 self.source = {'1': None, '2': None, '3': None} 63 69 self.power = {'1': None, '2': None, '3': None} 70 71 self._cmdQueue = [] 72 self._cmdLock = defer.DeferredLock() 64 73 65 74 def registerObservers(self, hub): … … 68 77 hub.addObserver(AvrPowerEvent, self._onPowerChange) 69 78 70 def sendCommand(self, cmd): 71 self._connection.protocol.sendCommand(cmd) 79 def sendCommand(self, cmd, hold=0.2): 80 d = self._cmdLock.acquire() 81 82 def _actuallySendCommand(lock): 83 self._connection.protocol.sendCommand(cmd) 84 reactor.callLater(hold, lock.release) 85 86 d.addCallback(_actuallySendCommand) 87 return d 72 88 73 89 # High-level commands 74 90 def setVolume(self, zone, volume): 75 91 cmd_prefix = {'1': 'MV', '2': 'Z2', '3': 'Z1'} 76 77 92 cmd = "%s%s" % (cmd_prefix[str(zone)], str(volume).replace('.', '')) 78 93 self.sendCommand(cmd) … … 81 96 cmd_prefix = {'1': 'SI', '2': 'Z2', '3': 'Z1'} 82 97 cmd = "%s%s" % (cmd_prefix[str(zone)], source.upper()) 83 self.sendCommand(cmd )98 self.sendCommand(cmd, hold=2) 84 99 85 100 def setPower(self, zone, status): 86 101 cmd_prefix = {'1': 'ZM', '2': 'Z2', '3': 'Z1'} 87 102 cmd = "%s%s" % (cmd_prefix[str(zone)], status.upper()) 88 self.sendCommand(cmd )103 self.sendCommand(cmd, hold=2) 89 104 90 105 def volumeUp(self, zone):
