Fixed insert pattern script, fixed emulator putting CUP to 100% when listening to machine

This commit is contained in:
ondro 2013-11-30 19:13:36 +01:00 committed by Steve Conklin
parent 963a26fcdd
commit cedbe2644f
3 changed files with 11 additions and 9 deletions

View file

@ -391,9 +391,10 @@ class PDDemulator():
# never returns
return
def handleRequest(self):
if self.ser.inWaiting() == 0:
return
def handleRequest(self, blocking = True):
if not blocking:
if self.ser.inWaiting() == 0:
return
inc = self.readchar()
if self.FDCmode:
self.handleFDCmodeRequest(inc)
@ -618,6 +619,7 @@ class PDDemulator():
self.disk.writeSector(psn, lsn, indata)
for l in self.listeners:
l.dataReceived(self.disk.lastDatFilePath)
print 'Saved data in dat file: ', self.disk.lastDatFilePath
except:
print 'Failed to write data for sector %d, quitting' % psn
self.writebytes('80000000')

View file

@ -82,9 +82,9 @@ class KnittingApp(Tkinter.Tk):
def emulatorLoop(self):
if self.emu.started:
self.emu.handleRequest()
self.emu.handleRequest(False)
# repeated call to after_idle() caused all window dialogs to hang out application, using after() each 10 milliseconds
self.after(10,self.emulatorLoop)
self.after(100,self.emulatorLoop)
def stopEmulator(self):
if self.emu is not None:
@ -164,7 +164,7 @@ class KnittingApp(Tkinter.Tk):
track0file.write(t0dat)
track1file.write(t1dat)
self.msg.showInfo('Stored file to tracks ' + trackFile1 + ' and ' + trackFile2 + ' in config.imgdir')
self.msg.showInfo('Stored file to tracks ' + trackFile1 + ' and ' + trackFile2 + ' in ' + self.config.imgdir)
except Exception as e:
self.msg.showError(str(e))
finally:

View file

@ -23,7 +23,7 @@ import Image
import array
# import convenience functions from brother module
from brother import roundeven, roundfour, roundeight, nibblesPerRow, bytesPerPattern, bytesForMemo
from brother import roundeven, roundfour, roundeight, nibblesPerRow, bytesPerPattern, bytesForMemo, methodWithPointers
TheImage = None
@ -103,9 +103,9 @@ class PatternInserter:
for r in range(height):
row = [] # we'll chunk in bits and then put em into nibbles
for s in range(width):
x = s if bf.machineFormat == 'FirstLady' else width-s-1
x = s if methodWithPointers else width-s-1
value = TheImage.getpixel((x,height-r-1))
isBlack = (value == 0) if bf.machineFormat == 'FirstLady' else (value != 0)
isBlack = (value == 0) if methodWithPointers else (value != 0)
if (isBlack):
row.append(1)
else: