+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):
class GoodFETGlitch(GoodFET):
def __init__(self, *args, **kargs):
g('set datafile separator "|"');
g(script_timevcc);
g('set datafile separator "|"');
g(script_timevcc);
while 1==1:
time.sleep(30);
while 1==1:
time.sleep(30);
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 "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
print """
This populates a database, glitch.db, with a record of all attempted
glitches. Graphs can then be generated from the results, allowing
if(sys.argv[2]=="learn"):
glitcher.learn();
if(sys.argv[2]=="learn"):
glitcher.learn();
+
+if(sys.argv[2]=="graphx11"):
+ glitcher.graphx11();
+
if(sys.argv[2]=="graph"):
glitcher.graph();
if(sys.argv[2]=="graph"):
glitcher.graph();