Moving glitcher away from AVR-specific calls.
[goodfet] / client / GoodFETGlitch.py
index 9924107..0d49ac3 100644 (file)
@@ -38,7 +38,7 @@ title "Success", \
 class GoodFETGlitch(GoodFET):
     
     def __init__(self, *args, **kargs):
-        print "Initializing GoodFET Glitcher."
+        print "Initializing GoodFET Glitcher."
         #Database connection w/ 30 second timeout.
         self.db=sqlite3.connect("glitch.db",30000);
         
@@ -146,7 +146,18 @@ class GoodFETGlitch(GoodFET):
         g('set term png');
         g('set output "timevcc.png"');
         g(script_timevcc);
-    
+    def points(self):
+        c=self.db.cursor();
+        c.execute("select time,vcc,gnd,glitchcount,count from glitches where lock=0 and count>0;");
+        print "time vcc gnd glitchcount count";
+        for r in c:
+            print "%i %i %i %i %i" % r;
+    def npoints(self):
+        c=self.db.cursor();
+        c.execute("select time,vcc,gnd,glitchcount,count from glitches where lock=0 and count=0;");
+        print "time vcc gnd glitchcount count";
+        for r in c:
+            print "%i %i %i %i %i" % r;
     #GnuPlot sucks for large sets.  Switch to viewpoints soon.
     # sqlite3 glitch.db "select time,vcc,count from glitches where count=0" | vp -l -d "|" -I
     
@@ -198,14 +209,13 @@ class GoodFETGlitch(GoodFET):
         
         self.secret=0x69;
         
-        while(client.eeprompeek(0)!=self.secret):
+        while(client.getsecret()!=self.secret):
             print "-- Setting secret";
             client.start();
             
             #Flash the secret to the first two bytes of CODE memory.
             client.erase();
-            client.eeprompoke(0,self.secret);
-            client.eeprompoke(1,self.secret);
+            client.setsecret(self.secret);
             sys.stdout.flush()
 
         #Lock chip to unlock it later.
@@ -254,7 +264,7 @@ class GoodFETGlitch(GoodFET):
             client.glitchstart();
             
             #Try to read *0, which is secret if read works.
-            a=client.eeprompeek(0x0);
+            a=client.getsecret();
             if lock>0: #locked
                 if(a!=0 and a!=0xFF and a!=self.secret):
                     gcount+=1;