New graph, prohibitvely complex so disabled.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Sun, 14 Mar 2010 03:33:11 +0000 (03:33 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Sun, 14 Mar 2010 03:33:11 +0000 (03:33 +0000)
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@411 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

client/GoodFETGlitch.py
client/goodfet.glitch

index b85c568..056c50b 100644 (file)
@@ -22,6 +22,17 @@ with dots \
 title "Exploited"
 """;
 
+script_timevccrange="""
+plot "< sqlite3 glitch.db 'select time,vcc,glitchcount from glitches where count=0;'" \
+with dots \
+title "Scanned", \
+"< sqlite3 glitch.db 'select time,vcc,count from glitches where count>0;'" \
+with dots \
+title "Success", \
+"< sqlite3 glitch.db 'select time,max(vcc),count from glitches where count=0 group by time ;'" with lines title "Max", \
+"< sqlite3 glitch.db 'select time,min(vcc),count from glitches where count>0 group by time ;'" with lines title "Min"
+""";
+
 class GoodFETGlitch(GoodFET):
     
     def __init__(self, *args, **kargs):
@@ -50,9 +61,10 @@ class GoodFETGlitch(GoodFET):
         g('set datafile separator "|"');
         
         g(script_timevcc);
+        print "^C to exit.";
         while 1==1:
             time.sleep(30);
-            g('replot');
+        #    g('replot');
 
         
     def graph(self):
index 7e20263..7380caa 100755 (executable)
@@ -17,6 +17,7 @@ if(len(sys.argv)==1):
     print "Usage: %s chip verb [objects]\n" % sys.argv[0];
     print "%s avr learn" % sys.argv[0];
     print "%s avr graph" % sys.argv[0];
+    print "%s avr graphx11" % sys.argv[0];
     print """
 This populates a database, glitch.db, with a record of all attempted
 glitches.  Graphs can then be generated from the results, allowing
@@ -30,5 +31,9 @@ glitcher.setup(sys.argv[1]);
 
 if(sys.argv[2]=="learn"):
     glitcher.learn();
+
+if(sys.argv[2]=="graphx11"):
+    glitcher.graphx11();
+
 if(sys.argv[2]=="graph"):
     glitcher.graph();