[gnoduino] fix leonardo upload - try I



commit 15f3fdba517e2e8e9ec3591e6c6e8caf2f5b1f7f
Author: Lucian Langa <lucilanga gnome org>
Date:   Fri Nov 30 17:06:36 2012 +0100

    fix leonardo upload - try I

 src/serialio.py |   29 +++++++++++++++++++++++++----
 src/uploader.py |    2 +-
 2 files changed, 26 insertions(+), 5 deletions(-)
---
diff --git a/src/serialio.py b/src/serialio.py
index 5dd4591..242be25 100644
--- a/src/serialio.py
+++ b/src/serialio.py
@@ -74,10 +74,31 @@ class sconsole:
 				console.scroll_mark_onscreen(b.get_insert())
 		return True
 
-	def resetBoard(self):
-		self.serial.setDTR(False)
-		time.sleep(0.1)
-		self.serial.setDTR(True)
+	def resetBoard(self, board=None):
+		if board == 'caterina' or board == 'caterina-LilyPadUSB':
+			bootPort = self.serial.port
+			if self.serial.isOpen():
+				self.serial.close()
+			self.serial.baudrate = 1200
+			self.serial.open()
+			self.serial.close()
+			time.sleep(0.3)
+			c=0
+			while c < 10000:
+			 	"""back to the default rate or we will trigger reset again"""
+				self.serial.baudrate = 9600
+				for p in  self.scan():
+					print p
+					#if p == bootPort and self.tryPort(p):
+					if p == bootPort:
+						#if self.tryPort(p):
+						return
+				time.sleep(0.25)
+				c = c + 250
+		else:
+			self.serial.setDTR(False)
+			time.sleep(0.1)
+			self.serial.setDTR(True)
 
 	def clearConsole(self, w, console):
 		b = console.get_buffer()
diff --git a/src/uploader.py b/src/uploader.py
index 7bb2057..bef60e3 100644
--- a/src/uploader.py
+++ b/src/uploader.py
@@ -162,7 +162,7 @@ def upload(obj, serial, output, notify):
 			notify.push(context, _("Flashing error."))
 			return
 		compline.append("-P" + port)
-		serial.resetBoard()
+		serial.resetBoard(b.getPath(b.getBoard()))
 	compline.append("-c" + protocol)
 	try:
 		compline.append("-b" + b.getPGMSpeed(b.getBoard()))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]