コード例 #1
0
class SendingPatternList(PatternList):
	"""
	A PatternList which also has a SendingBuffer, simplifying managing a
	strip which is to display only a set of Python-generated patterns.
	"""
	def __init__(self, sendingBuffer=None, reverse=False):
		PatternList.__init__(self)
		if sendingBuffer:
			self.__sendingBuffer = sendingBuffer
		else:
			self.__sendingBuffer = SendingBuffer()
		self.__reverse = reverse

	def setSender(self, sender):
		"""
		Set the DataSender.Sender object used by the SendingBuffer.
		"""
		self.__sendingBuffer.setSender(sender)

	def  updateAndSend(self):
		"""
		If necessary: clear the sending buffer, apply all patterns to
			it, and send.
		@return whether an update (and send) was necessary
		"""
		if self.isChanged():
			self.__sendingBuffer.clear()
			self.apply(self.__sendingBuffer)
			self.__sendingBuffer.send(
				reverse=self.__reverse)
			return True
		else:
			return False
コード例 #2
0
ファイル: TurtleBuffer.py プロジェクト: DoIIIT/ncrc-activiz
	def send(self, reverse=False):
		"""
		Draw the current colors in Turtle Graphics. Also send to Serial.
		"""
		colors = self.getColors()
		n = len(colors)
		if reverse:
			colors = reversed(colors)

		aveColor = Color()

		# Clear last time's drawings (dots).
		turtle.clear()
		# Draw the LEDs.
		for c in colors:
			turtle.dot(self.__DOT_SIZE, *c.getRgb())
			turtle.fd(self.__SCALE)
			aveColor.add(c, clamp=False)
		# Update the background. (Causes an update.)
		turtle.bgcolor(*aveColor.scaled(0.4 * 1.0/n).getRgb())
		# Retrace.
		turtle.right(180)
		turtle.fd(self.__SCALE*n)
		turtle.left(180)

		SendingBuffer.send(self, reverse=reverse)