erster import der PythonGnuplotAssistant dateien
This commit is contained in:
parent
7dc080e72a
commit
61078d2754
12 changed files with 1537 additions and 0 deletions
29
PGAss/PGAss.py
Executable file
29
PGAss/PGAss.py
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
#import pyGnuAss
|
||||
|
||||
class Main:
|
||||
'main class for PythonGnuAssistant; test for necessary libaries'
|
||||
import sys
|
||||
|
||||
try:
|
||||
import pygtk
|
||||
pygtk.require("2.0") #we want to use gtk2
|
||||
except:
|
||||
print "\nYou need \"pygtk\" to get this working."
|
||||
print "In Debian do: apt-get install python2.3-gtk2\n"
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
import gtk
|
||||
from gtk import glade
|
||||
except:
|
||||
print "\nYou need \"libglade\" to get this working."
|
||||
print "In Debian do: apt-get install python2.3-glade2\n"
|
||||
sys.exit(1)
|
||||
|
||||
import pyGnuAss
|
||||
pga = pyGnuAss.PyGnuplotAssistant(gtk)
|
||||
gtk.mainloop()
|
||||
|
||||
|
13
PGAss/TODO
Normal file
13
PGAss/TODO
Normal file
|
@ -0,0 +1,13 @@
|
|||
TODO PythonGnuplotAsistant (02004/08/09)
|
||||
|
||||
[ ] alte config einlesen
|
||||
[ ] grafiken ins gui einbauen
|
||||
[ ] threads fuer gnuplot
|
||||
|
||||
|
||||
meaning:
|
||||
[ ] request
|
||||
[.] work in progress
|
||||
[*] done
|
||||
[!] fix me
|
||||
|
8
PGAss/Threadclass.py
Normal file
8
PGAss/Threadclass.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/python
|
||||
class plo:
|
||||
def __init__(self):
|
||||
print "myGnuplot thread started"
|
||||
import myGnuPlot
|
||||
gplot = myGnuPlot.myGnuPlot()
|
||||
gplot.plot_it()
|
||||
|
74
PGAss/gnuPlotData.py
Normal file
74
PGAss/gnuPlotData.py
Normal file
|
@ -0,0 +1,74 @@
|
|||
class PlotData:
|
||||
'holds the data for gnuplot'
|
||||
""" order of values in gnuplotdata is important!
|
||||
0:title 1:datastyle 2:seconds 3:filename 4:readdata
|
||||
5:labelx 6:labely"""
|
||||
gnuplotdata = ['','','','','','','','']
|
||||
""" order of values in gnuplotcheckboxes is important!
|
||||
0:reread, 1:autoscale, 2:grid, 3:key, 4:logx, 5:logy """
|
||||
gnuplotcheckboxes = ['','','','','','']
|
||||
# valuepairs; if no second option, leave empty ['foo', '']
|
||||
# TODO: put this in an extra ascii file
|
||||
cb_possibilities = [['\nreread',''],['\nset autoscale',''], \
|
||||
['\nset grid','\nset nogrid'],['\nset key','\nset nokey'], \
|
||||
['\nset logscale x','\nset nologscale x'], \
|
||||
['\nset logscale y','\nset nologscale y']]
|
||||
## this is for testing only..
|
||||
comment = "\n# ___insert your plot here___ "\
|
||||
"\n#e.g.: plot \"mydata.file\" using 2:5 "
|
||||
##
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def get_all_values(self):
|
||||
return self.gnuplotdata
|
||||
|
||||
def set_important_values(self, a,b,c,d,e,f,g):
|
||||
self.gnuplotdata = [a,b,c,d,e,f,g]
|
||||
#print self.gnuplotdata
|
||||
|
||||
def set_checkbox_values(self, a,b,c,d,e,f):
|
||||
self.gnuplotcheckboxes = [a,b,c,d,e,f]
|
||||
#print self.gnuplotcheckboxes
|
||||
self.__interpret_cb_values()
|
||||
#print self.gnuplotcheckboxes
|
||||
|
||||
def write_tofile(self):
|
||||
'write all options to the specified file'
|
||||
### uncomment the following lines to deny file overwriting !!
|
||||
#import os
|
||||
#if os.path.exists(self.gnuplotdata[3]):
|
||||
#return "file exists! cowardly refusing to write"
|
||||
###
|
||||
try:
|
||||
gnuplotfile = open(self.gnuplotdata[3],'w')
|
||||
except:
|
||||
return "could NOT write to "+self.gnuplotdata[3]
|
||||
gnuplotfile.write("set title \""+self.gnuplotdata[0]+"\";")
|
||||
gnuplotfile.write("\nset data style "+self.gnuplotdata[1]+";")
|
||||
gnuplotfile.write("\nset xlabel \""+self.gnuplotdata[5]+"\";")
|
||||
gnuplotfile.write("\nset ylabel \""+self.gnuplotdata[6]+"\";")
|
||||
# don't print first element (reread)
|
||||
for element in range(len(self.gnuplotcheckboxes)-1):
|
||||
gnuplotfile.write(self.gnuplotcheckboxes[element+1])
|
||||
### plot command
|
||||
self.plot = "\nplot \""+self.gnuplotdata[4]+"\" every 2::0 using 7 smooth unique title 'Fensterbank' , \""+self.gnuplotdata[4]+"\" every 2::1 using 7 smooth unique title'Kernschmelze'"
|
||||
###
|
||||
gnuplotfile.write(self.comment)
|
||||
gnuplotfile.write(self.plot)
|
||||
gnuplotfile.write("\npause "+self.gnuplotdata[2])
|
||||
# reread option is always printed at the end
|
||||
gnuplotfile.write(self.gnuplotcheckboxes[0])
|
||||
gnuplotfile.close()
|
||||
return "successfully written to "+ self.gnuplotdata[3]
|
||||
|
||||
### private functions
|
||||
def __interpret_cb_values(self):
|
||||
'test if a setting is checked, if so then write the \
|
||||
responding option in gnuplotcheckboxes'
|
||||
for xxx in range(len(self.gnuplotcheckboxes)):
|
||||
if self.gnuplotcheckboxes[xxx]:
|
||||
self.gnuplotcheckboxes[xxx] = self.cb_possibilities[xxx][0]
|
||||
else:
|
||||
self.gnuplotcheckboxes[xxx] = self.cb_possibilities[xxx][1]
|
203
PGAss/gnuplot-howto.htm
Executable file
203
PGAss/gnuplot-howto.htm
Executable file
|
@ -0,0 +1,203 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML><HEAD><TITLE>Systemausfall: senseLab-Wiki: GnuPlotHowTo</TITLE>
|
||||
<META NAME='KEYWORDS' CONTENT='Gnu, Plot, How, To'/>
|
||||
</HEAD><BODY BGCOLOR="black" text="#00dd00">
|
||||
<div class=wikiheader><h1><a href="senselab?back=GnuPlotHowTo">GnuPlotHowTo</a></h1><a href="senselab?StartSeite" class=wikipagelink>StartSeite</a> | <a href="senselab?RecentChanges" class=wikipagelink>RecentChanges</a> | <a href="senselab?action=edit&id=GnuPlotHowTo" class=wikipageedit>Edit text of this page</a> | <a href="senselab?action=editprefs">Preferences</a> | <a href="senselab?action=upload">Upload</a> | <A HREF=/wiki/senselab/cgi-bin/wiki2html.sh?konvert&GnuPlotHowTo>DocBook-Konvertierung</A><br>
|
||||
<hr class=wikilineheader></div><div class=wikitext><H1>Benutzung von GnuPlot</H1>
|
||||
|
||||
<p>
|
||||
detailliert ist alles nachzulesen im <a href="ftp://ftp.gnuplot.info/pub/gnuplot/gnuplot.pdf.gz">[gnuplot-Handbuch]</a> (gzipped)
|
||||
<p>
|
||||
alles in Kürze findest Du hier: <a href="http://www.duke.edu/~hpgavin/gnuplot.html">http://www.duke.edu/~hpgavin/gnuplot.html</a>
|
||||
<p>
|
||||
<H2>die wichtigsten Befehle im Überblick</H2>
|
||||
|
||||
mit <strong>gnuplot </strong> startest Du den interaktiven Modus - alles laesst sich aber natuerlich auch per Skript reingeben (<strong>gnuplot name_des_skripts.plt</strong>)
|
||||
<p>
|
||||
[einen großen Teil der folgenden Auflistung habe ich <a href="http://ieee.uow.edu.au/documents/gnuplot/gnuplot">http://ieee.uow.edu.au/documents/gnuplot/gnuplot</a> entnommen ...]
|
||||
<p>
|
||||
<UL >
|
||||
<li> <strong>set xrange [-5:5]</strong>
|
||||
<li> <strong>set yrange [-2:4]</strong>
|
||||
<li> <strong>set grid</strong> / <strong>set nogrid</strong> - die Rasterung
|
||||
<li> <strong>set key</strong> / <strong>set nokey</strong> - die Legende
|
||||
<li> <strong>set autoscale</strong> ueberschreibt alle xrange- und yrange-Festlegungen
|
||||
<li> <strong>set size {{no}square | ratio <r> | noratio} {<xscale>,<yscale>}</strong>
|
||||
<li> <strong>set output "filename"</strong> - aufeinanderfolgende Plots landen in derselben Datei, bis ein anderer <strong>terminal</strong> ausgewählt wird
|
||||
<li> <strong>help</strong>
|
||||
<li> <strong>exit</strong>
|
||||
<li> <strong>set term TYPE</strong> legt die Ausgabe fest:
|
||||
<UL >
|
||||
<li> dutzende Formate: postscript, png, x11, windows, latex, corel, fig, ...
|
||||
<li> die komplette Liste siehst Du mit <strong>set terminal</strong>
|
||||
</UL>
|
||||
<li> <strong>load <gnuplotfile></strong> - laed eine Datei mit gnuplot Befehlen & fuehrt diese aus
|
||||
</UL>
|
||||
<p>
|
||||
<H2>der plot-Befehl</H2>
|
||||
|
||||
<p>
|
||||
<UL >
|
||||
<li> der erste Parameter ist eine Funktion oder ein Dateiname (in Anführungsstrichen)
|
||||
<UL >
|
||||
<li> ein leerer Dateiname (also nur die Anfuehrungsstriche) entsprechen der letzten benutzten Datei
|
||||
</UL>
|
||||
<li> danch kann Folgendes erscheinen:
|
||||
<UL >
|
||||
<li> <strong>index</strong>
|
||||
<UL >
|
||||
<li> es gibt diese drei Varianten, um "Zeilen" aus einer Datendatei auszuwählen:
|
||||
<UL >
|
||||
<li> N - nur den n-ten Datensatz
|
||||
<li> N:M - alle Datensätze von n bis m
|
||||
<li> N:P:M - von n ausgehend jeden p-ten Datensatz bis m
|
||||
</UL>
|
||||
</UL>
|
||||
<li> <strong>every</strong>
|
||||
<UL >
|
||||
<li> Syntax: <strong>PunktIncrement:BlockIncrement:StartPunkt:StartBlock:EndPunkt:EndBlock</strong>
|
||||
<li> jedes einzelne davon kann auch wegfallen - dann muessen fuehrende <strong>:</strong> aber stehen bleiben (abschliessende <strong>:</strong> dagegen muessen weggelassen werden)
|
||||
<li> Blöcke werden in der Datendatei durch Leerzeilen getrennt
|
||||
<li> innerhalb jedes Blockes können (in Abständen) also Punkte ausgewählt werden
|
||||
</UL>
|
||||
<li> <strong>smooth</strong>
|
||||
<UL >
|
||||
<li> Werte: unique, csplines, acsplines, bezier oder sbezier
|
||||
<li> <strong>unique</strong> ersetzt alle Punkte, die an derselben x-Stelle dargestellt werden würden durch einen Punkt mit gemitteltem y-Wert
|
||||
<li> die Anderen berechnen die jeweilige Kurve zwischen den Endpunkten
|
||||
<li> in jedem Fall werden die Punkte nicht mehr einzeln dargestellt, sondern verbunden
|
||||
</UL>
|
||||
<li> <strong>using</strong>
|
||||
<UL >
|
||||
<li> dies ist der gebräuchlichste Parameter
|
||||
<li> <strong>X:Y</strong> bedeutet, dass Spalte Y gegen Spalte X dargestellt werden soll
|
||||
<li> die Zählung der Spalten beginnt hier mit Eins
|
||||
<li> eine Null als Spaltennummer ergibt die Zeilennummer jedes Datensatzes
|
||||
<li> dabei können auch Berechnungen verwendet werden:
|
||||
<UL >
|
||||
<li> <strong>0:2</strong> bzw. <strong>:2</strong> - Spalte zwei wird über der Datensatz-Nummer aufgetragen
|
||||
<li> <strong>1:($2+$3)</strong> - die Summe von Spalte 2 und 3 wird gegen Spalte 1 dargestellt
|
||||
<li> <strong>1:($3>10 ? $2 : 1/0)</strong> - falls der Wert in Spalte 3 größer als 10 ist, wird Spalte 2 ausgegeben, ansonsten wird der Punkt ignoriert (wegen Division durch Null)
|
||||
<li> <strong>($0/1000):$2</strong> - die Datensatz-Nummern werden um den Faktor 1000 verkleinert
|
||||
</UL>
|
||||
<li> die Werte werden über die C-Funktion <strong>scanf</strong> eingelesen - dazu können Parameter in Anführungsstrichen übergeben werden
|
||||
</UL>
|
||||
<li> <strong>t</strong>
|
||||
<UL >
|
||||
<li> anschliessend folgt die Beschriftung der Datenreihe fuer die Legende in Anfuehrungsstrichen
|
||||
</UL>
|
||||
</UL>
|
||||
<li> mehrere Kurven in den selben Graphen bekommst Du folgendermassen:
|
||||
</UL><PRE>
|
||||
plot "data/input1.csv" using 0:1 ,\
|
||||
"" using 0:2 ,\
|
||||
"data/input2.csv" using 0:1
|
||||
</PRE><UL>
|
||||
<li> die Reihenfolge der <strong>plot</strong>-Parameter ist relevant: "index, every, using, smooth" - die Anderen musst Du selbst ausprobieren ...
|
||||
</UL>
|
||||
<p>
|
||||
<p>
|
||||
<H2>Achsenformatierung</H2>
|
||||
|
||||
<UL >
|
||||
<li> mit <strong>set xtics</strong> laesst verschiedene Varianten zu:
|
||||
<UL >
|
||||
<li> <strong>X</strong> - in Schritten von X
|
||||
<li> <strong>X,Y</strong> - ab X in Schritten von Y (bis unendlich)
|
||||
<li> <strong>X,Y,Z</strong> - ab X in Schritten von Y bis Z
|
||||
<li> <strong>(1,2,4,8,16,32)</strong> - die gegebenen Stellen beschriften
|
||||
<li> <strong>("text_fuer_wert_1" 1, "text_fuer_wert_2" 2, "text_fuer_wert_3" 3)</strong> - Texte speziellen Werten zuordnen
|
||||
<li> <strong>set xtics rotate ???</strong>
|
||||
</UL>
|
||||
<li> ansonsten:
|
||||
<UL >
|
||||
<li> <strong>set logscale x</strong>
|
||||
<li> <strong>set format x "<format_string>"</strong>
|
||||
<UL >
|
||||
<li> auch mit single-quote, um ein paar Ersetzungen zu unterdrücken
|
||||
<li> Formatbeispiele:
|
||||
<UL >
|
||||
<li> <strong>%f</strong> - Fließkomma (z.B.: <strong>%+-8.2f</strong> -> "+123.00 ")
|
||||
<li> <strong>%e</strong> / <strong>%E</strong> - exponential
|
||||
<li> <strong>%x</strong> / <strong>%X</strong> - hexadezimal
|
||||
<li> <strong>%o</strong> / <strong>%O</strong> - oktal
|
||||
<li> <strong>%T</strong> - Potenz zur Basis 10
|
||||
<li> <strong>%S</strong> - wissenschaftliche Potenz
|
||||
<li> <strong>%P</strong> - Vielfaches von Pi
|
||||
<li> ansonsten: siehe <a href="ftp://ftp.gnuplot.info/pub/gnuplot/gnuplot.pdf.gz">[gnuplot-Handbuch]</a>, Kapitel 34.16 - <em>Format</em>
|
||||
</UL>
|
||||
</UL>
|
||||
</UL>
|
||||
</UL>
|
||||
<p>
|
||||
<H2>Beschriftungen (labels)</H2>
|
||||
|
||||
Syntax:
|
||||
<PRE >
|
||||
set label {<tag>} {"<label-text>"} {at <position>} {<justification>} {{no}rotate} {font "<name><,size>"}
|
||||
set nolabel {<tag>}
|
||||
</PRE>
|
||||
<p>
|
||||
<DL >
|
||||
<dt>tag<dd> Zahl, die das Label identifiziert (fuer nachträgliche Änderung/Löschung); kann weggelassen werden
|
||||
<dt>label-text<dd> für Zeilenumbrüche, wie üblich, "<strong>\n</strong>" (oder "<strong>\\</strong>" für tex u.ä.)
|
||||
<dt>position<dd> zwei- oder dreimensionale Koordinaten, eventuell mit dem Präfix <strong>first</strong>, <strong>second</strong>, <strong>graph</strong> oder <strong>screen</strong>
|
||||
<dt>justification<dd> <strong>left</strong>, <strong>right</strong> oder <strong>center</strong>
|
||||
</DL>
|
||||
<p>
|
||||
<p>
|
||||
<H2>Beispiele</H2>
|
||||
|
||||
<p>
|
||||
<H3>response-time beim Silimann 6</H3>
|
||||
|
||||
<p>
|
||||
<PRE >
|
||||
set terminal postscript eps color
|
||||
set yrange [1:4]
|
||||
set ytics 1,0.25,4
|
||||
set format y "%4.2f"
|
||||
set grid
|
||||
set xlabel "TIME [us]"
|
||||
set ylabel "VOLTAGE [V]"
|
||||
set nokey
|
||||
set size square
|
||||
set title "RESPONSE TIME FOR +0,1V STEP"
|
||||
set output "F1.ps"
|
||||
plot "/tikal/public/RUNS/Silimann6/Messdaten/response_time/Rohdaten/importierbares_format/F1/D01.CSV" every ::900::6900 using ($0/1000):1 smooth unique
|
||||
</PRE>
|
||||
<p>
|
||||
<H3>kleine Sachen</H3>
|
||||
|
||||
<DL >
|
||||
<dt>durchgezogene geglättete Linien mit manueller Legenden-Bennenung<dd> plot "scanpfad.dat" using 3:($4*1000) smooth csplines t "analog-positiv" w lines
|
||||
<dt>die Legende außerhalb des Graphen in eine Box stecken<dd> set key outside box
|
||||
<dt>die Achsenrichtung umkehren (weiterhin automatische Auflösung)<dd> set xrange [*:*] reverse
|
||||
<dt>die Achsenbeschriftung um 90 Grad drehen<dd> set xtics rotate ("Eingangspegel-Aenderung" 0, "Scanpfad-Aktivierung" 1, "Dauer-Refresh" 2, "unbelastet" 3)
|
||||
<dt>ein mehrzeilige Beschriftung<dd> unix-gemaess durch Einfügen eines Zeilenumbruchs <strong>\n</strong> oder <strong>\\</strong> fuer tex o.ä.
|
||||
<dt>encapsulated postscript<dd> <strong>set terminal postscript eps color</strong> (sogar mit Farbe)
|
||||
<dt>Ausgabe in mehreren Formaten<dd> nach dem Plot-Befehl eine neue Ausgabedatei (<strong>set output</strong>) und das Format (<strong>set terminal</strong>) festlegen, anschließend: <strong>replot</strong>
|
||||
<dt>Funktionen<dd> <strong>plot sin(x)*x</strong> - alle weiteren Funtionen unter <strong>help functions</strong>
|
||||
<dt>png-Bildformat<dd> folgende Parameter stehen zur Verfügung: {small | medium | large} {{no}transparent} {monochrome | gray | color}; Standard ist kleine Schrift, keine Transparenz und viel Farbe
|
||||
<dt>das Aussehen einzelner Bildpunkte veraendern<dd> set data style [lines|...]
|
||||
<dt>Punkte auslassen<dd> <strong>plot "datei.csv" every 10 using 0:1</strong>
|
||||
<dt>Sonderzeichen<dd> durch das Uebliche <strong>\NNN</strong>, wobei NNN eine Oktal-Zahl darstellt - die dazugehoerigen Zeichen lassen sich auf der Konsole beispielsweise durch folgende Eingabe anzeigen: <strong>i=0; while [ $i -lt 8 ]; do j=0; while [ $j -lt 8 ]; do k=0; while [ $k -lt 8 ]; do echo -e "$i$j$k\t\\$i$j$k"; k=$(($k+1)); done; j=$(($j+1)); done; i=$(($i+1)); done|less</strong> - nun einfach per Schraegstrich (slash) nach dem geuenschten Zeichen suchen; z.B. entspricht das Grad-Zeichen (von "Grad Celsius") dem Code <strong>\260</strong>
|
||||
</DL>
|
||||
<p>
|
||||
<H3>aktualisierte Grafik</H3>
|
||||
|
||||
;Es soll alle zehn Sekunden eine Logdatei ausgelesen und die Grafik dazu aktualisiert werden.
|
||||
<DL >
|
||||
<dt>scriptdatei erstellen<dd>
|
||||
</DL><UL>
|
||||
<li>plot "/var/log/temperatures1", "/var/log/temperatures2"
|
||||
<li>pause 10
|
||||
<li>reread
|
||||
</UL><DL>
|
||||
<dt> dann starten<dd> $gnuplot scriptdatei
|
||||
</DL>
|
||||
</div><hr class=wikilinefooter>
|
||||
<div class=wikifooter><form method="post" action="senselab" enctype="application/x-www-form-urlencoded">
|
||||
<a href="senselab?StartSeite" class=wikipagelink>StartSeite</a> | <a href="senselab?RecentChanges" class=wikipagelink>RecentChanges</a> | <a href="senselab?action=edit&id=GnuPlotHowTo" class=wikipageedit>Edit text of this page</a> | <a href="senselab?action=editprefs">Preferences</a> | <a href="senselab?action=upload">Upload</a> | <A HREF=/wiki/senselab/cgi-bin/wiki2html.sh?konvert&GnuPlotHowTo>DocBook-Konvertierung</A><br>
|
||||
<a href="senselab?action=edit&id=GnuPlotHowTo" class=wikipageedit>Edit text of this page</a> | <a href="senselab?action=history&id=GnuPlotHowTo">View other revisions</a><br>Last edited May 20, 2004 15:13 by pD9EB7D6D.dip.t-dialin.net <a href="senselab?action=browse&diff=1&id=GnuPlotHowTo">(diff)</a><br>Search: <input type="text" name="search" size="20" /><input type="hidden" name="dosearch" value="1" /><br>Administration: <a href="senselab?action=pagelock&set=1&id=GnuPlotHowTo">Lock page</a> | <a href="senselab?action=delete&id=GnuPlotHowTo&confirm=0">Delete this page</a> | <a href="senselab?action=editbanned">Edit Banned List</a> | <a href="senselab?action=maintain">Run Maintenance</a> | <a href="senselab?action=editlinks">Edit/Rename pages</a> | <a href="senselab?action=editlock&set=0">Unlock site</a><div></div>
|
||||
</form></div></body></html>
|
13
PGAss/gnuplot.prop
Normal file
13
PGAss/gnuplot.prop
Normal file
|
@ -0,0 +1,13 @@
|
|||
set title "PyGnuplotAssistant";
|
||||
set data style lines;
|
||||
set xlabel "";
|
||||
set ylabel "";
|
||||
set autoscale
|
||||
set grid
|
||||
set key
|
||||
set nologscale x
|
||||
set nologscale y
|
||||
# ___insert your plot here___
|
||||
#e.g.: plot "mydata.file" using 2:5
|
||||
plot "templog" every 2::0 using 7 smooth unique title 'Fensterbank' , "templog" every 2::1 using 7 smooth unique title'Kernschmelze'
|
||||
pause 1
|
33
PGAss/myGnuPlot.py
Normal file
33
PGAss/myGnuPlot.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
import os
|
||||
import time
|
||||
|
||||
class MyGnuPlot:
|
||||
'use this to open a gnuplot session'
|
||||
|
||||
session = ''
|
||||
def __init__(self, debug):
|
||||
self.debug = debug
|
||||
if self.debug >= 1:
|
||||
print "opening new gnuplot session..."
|
||||
self.session = os.popen("gnuplot","w")
|
||||
|
||||
def __del__(self):
|
||||
if self.debug >= 1:
|
||||
print "closing gnuplot session..."
|
||||
self.session.close()
|
||||
|
||||
def send_command(self, filename):
|
||||
if self.debug >= 1:
|
||||
print "gnuplot load properties from %s" %filename
|
||||
self.session.write("load '%s'\n" %filename)
|
||||
self.session.flush()
|
||||
try:
|
||||
output = self.session.read()
|
||||
except:
|
||||
pass
|
||||
|
||||
def send_kill(self):
|
||||
self.session.write('\n')
|
||||
self.session.flush()
|
||||
|
||||
|
892
PGAss/pga-gui.glade
Normal file
892
PGAss/pga-gui.glade
Normal file
|
@ -0,0 +1,892 @@
|
|||
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||
|
||||
<glade-interface>
|
||||
|
||||
<widget class="GtkWindow" id="w_main">
|
||||
<property name="border_width">4</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">window1</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Python Gnuplot Assistant</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Title: </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="tf_title">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="has_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes">PyGnuplotAssistant</property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox3">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Data Style :</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCombo" id="combo1">
|
||||
<property name="visible">True</property>
|
||||
<property name="value_in_list">False</property>
|
||||
<property name="allow_empty">True</property>
|
||||
<property name="case_sensitive">False</property>
|
||||
<property name="enable_arrow_keys">True</property>
|
||||
<property name="enable_arrows_always">False</property>
|
||||
|
||||
<child internal-child="entry">
|
||||
<widget class="GtkEntry" id="cb_datastyle">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child internal-child="list">
|
||||
<widget class="GtkList" id="combo-list1">
|
||||
<property name="visible">True</property>
|
||||
<property name="selection_mode">GTK_SELECTION_BROWSE</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="listitem122">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">lines</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="listitem123">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">points</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="listitem124">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">linespoints</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="listitem125">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">impulses</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="listitem126">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">dots</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="listitem127">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">steps</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Pause [s]</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="sb_seconds">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="climb_rate">1</property>
|
||||
<property name="digits">0</property>
|
||||
<property name="numeric">True</property>
|
||||
<property name="update_policy">GTK_UPDATE_ALWAYS</property>
|
||||
<property name="snap_to_ticks">False</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="adjustment">1 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox7">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">47</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="cb_reread">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Reread</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="cb_autoscale">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Autoscale</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">True</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox6">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">67</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="cb_grid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Grid</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">True</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="cb_key">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Key (legend)</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">True</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox8">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">61</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="cb_logx">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">LogX</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="cb_logy">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">LogY</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox12">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label9">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">LabelX:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="tf_labelx">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox13">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label10">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">LabelY:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="tf_labely">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox11">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label8">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Read Data from:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="tf_readdata">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes">templog</property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox4">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label5">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Save properties to:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">3</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="tf_filename">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes">gnuplot.props</property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">10</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHSeparator" id="hseparator1">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="tf_status">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">False</property>
|
||||
<property name="invisible_char" translatable="yes">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox5">
|
||||
<property name="border_width">2</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="bu_ok">
|
||||
<property name="border_width">2</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<signal name="clicked" handler="on_bu_ok_clicked" last_modification_time="Sat, 02 Jan 1904 17:28:23 GMT"/>
|
||||
<signal name="enter" handler="on_bu_ok_enter" last_modification_time="Sat, 02 Jan 1904 17:28:27 GMT"/>
|
||||
<signal name="leave" handler="on_bu_ok_leave" last_modification_time="Sat, 02 Jan 1904 17:28:56 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment1">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox9">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-save</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label6">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Save</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="bu_test">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<signal name="clicked" handler="on_bu_test_clicked" last_modification_time="Mon, 04 Jan 1904 14:28:32 GMT"/>
|
||||
<signal name="enter" handler="on_bu_test_enter" last_modification_time="Mon, 04 Jan 1904 14:28:37 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment3">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox14">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image3">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-execute</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label11">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Test in Gnuplot</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="bu_cancel">
|
||||
<property name="border_width">2</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<signal name="clicked" handler="on_bu_cancel_clicked" last_modification_time="Sat, 02 Jan 1904 17:27:44 GMT"/>
|
||||
<signal name="leave" handler="on_bu_cancel_leave" last_modification_time="Sat, 02 Jan 1904 17:27:49 GMT"/>
|
||||
<signal name="enter" handler="on_bu_cancel_enter" last_modification_time="Sat, 02 Jan 1904 17:27:53 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment2">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox10">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-quit</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label7">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Quit</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">2</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
8
PGAss/pga-gui.gladep
Normal file
8
PGAss/pga-gui.gladep
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||
<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
|
||||
|
||||
<glade-project>
|
||||
<name>PGA</name>
|
||||
<program_name>pga</program_name>
|
||||
<gnome_support>FALSE</gnome_support>
|
||||
</glade-project>
|
89
PGAss/pyGnuAss.py
Normal file
89
PGAss/pyGnuAss.py
Normal file
|
@ -0,0 +1,89 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
import gnuPlotData
|
||||
|
||||
class PyGnuplotAssistant:
|
||||
'this class handles the gui for PGAss'
|
||||
import os
|
||||
import myGnuPlot
|
||||
import time
|
||||
#-- import threading
|
||||
#-- t = threading.Thread(target = myGnuPlot.myGnuPlot)
|
||||
|
||||
#xyz = os.popen("gnuplot","w")
|
||||
|
||||
# debug >=1 will print messages on console
|
||||
x = myGnuPlot.MyGnuPlot(debug=1)
|
||||
|
||||
|
||||
pd = gnuPlotData.PlotData()
|
||||
def __init__(self, gtkext):
|
||||
# gtk is given, it has to be known in the whole class
|
||||
self.gtk = gtkext
|
||||
# define which gladefile to use for frontend
|
||||
gladefile = "pga-gui.glade"
|
||||
self.pga = self.gtk.glade.XML(gladefile)
|
||||
# set button handlers
|
||||
actions = { "on_bu_ok_clicked": self.clicked_ok,
|
||||
"on_bu_ok_enter": self.enter_ok,
|
||||
"on_bu_test_clicked": self.clicked_test,
|
||||
"on_bu_test_enter": self.enter_test,
|
||||
"on_bu_cancel_enter": self.enter_cancel,
|
||||
"on_bu_cancel_leave": self.leave_cancel,
|
||||
"on_bu_cancel_clicked": (self.gtk.mainquit) }
|
||||
# connect the actions to the events
|
||||
self.pga.signal_autoconnect (actions)
|
||||
return
|
||||
|
||||
def __del__(self):
|
||||
# this is unnecesseray
|
||||
self.xyz.close()
|
||||
|
||||
#### implementation of actions
|
||||
def enter_cancel(self, widget):
|
||||
self.pga.get_widget("tf_status").set_text("noooo, don't do it")
|
||||
def leave_cancel(self, widget):
|
||||
self.pga.get_widget("tf_status").set_text("do never ever try this again")
|
||||
def enter_ok(self, widget):
|
||||
self.pga.get_widget("tf_status").set_text("save settings to file")
|
||||
def enter_test(self, widget):
|
||||
self.pga.get_widget("tf_status").set_text("start gnuplot with saved properties")
|
||||
def clicked_test(self, widget):
|
||||
self.pga.get_widget("tf_status").set_text("check if gnuplot is installed")
|
||||
filename = self.pga.get_widget("tf_filename").get_text()
|
||||
'''
|
||||
self.xyz.write("load '"+ filename +"'"+ '\n')
|
||||
self.pga.get_widget("tf_status").set_text("check if gnuplot is installed")
|
||||
self.xyz.flush()
|
||||
a = self.xyz.read()
|
||||
print "gnuplot ausgabe: %s" %a
|
||||
'''
|
||||
self.x.send_command(filename)
|
||||
self.pga.get_widget("tf_status").set_text("you should see a popup window")
|
||||
|
||||
def clicked_ok(self, widget):
|
||||
#read the fields and save them
|
||||
## important values
|
||||
self.pga.get_widget("tf_status").set_text("saved to file")
|
||||
title = self.pga.get_widget("tf_title").get_text()
|
||||
datastyle = self.pga.get_widget("cb_datastyle").get_text()
|
||||
seconds = self.pga.get_widget("sb_seconds").get_text()
|
||||
filename = self.pga.get_widget("tf_filename").get_text()
|
||||
readdata = self.pga.get_widget("tf_readdata").get_text()
|
||||
labelx = self.pga.get_widget("tf_labelx").get_text()
|
||||
labely = self.pga.get_widget("tf_labely").get_text()
|
||||
## checkbox values
|
||||
reread = self.pga.get_widget("cb_reread").get_active()
|
||||
autoscale = self.pga.get_widget("cb_autoscale").get_active()
|
||||
grid = self.pga.get_widget("cb_grid").get_active()
|
||||
key = self.pga.get_widget("cb_key").get_active()
|
||||
logx = self.pga.get_widget("cb_logx").get_active()
|
||||
logy = self.pga.get_widget("cb_logy").get_active()
|
||||
# pass them to PlotData !order is important!
|
||||
self.pd.set_important_values(title, datastyle, seconds, filename, readdata, labelx, labely)
|
||||
self.pd.set_checkbox_values(reread, autoscale, grid, key, logx, logy)
|
||||
writeresult = self.pd.write_tofile()
|
||||
self.pga.get_widget("tf_status").set_text(writeresult)
|
||||
|
||||
|
9
PGAss/showtemps
Executable file
9
PGAss/showtemps
Executable file
|
@ -0,0 +1,9 @@
|
|||
set title "Temperaturverlauf"
|
||||
set ylabel "Temperatur in °C"
|
||||
set xlabel "Messwerte"
|
||||
set autoscale
|
||||
|
||||
plot "/var/log/temps/templog-21-06-02004" using 7 every 2::0 smooth unique title 'Frühlingsnachmittag' , "/var/log/temps/templog-21-06-02004" using 7 every 2::1 smooth unique title 'Via-CPU'
|
||||
#plot "/var/log/temps/templog-21-05-02004" using 7 every 2::0 title 'Frühlingsnachmittag' , "/var/log/temps/templog-21-05-02004" using 7 every 2::1 title 'Via-CPU'
|
||||
pause 10
|
||||
reread
|
166
PGAss/templog
Normal file
166
PGAss/templog
Normal file
|
@ -0,0 +1,166 @@
|
|||
Jun 07 18:09:34 Sensor 0 C: 22.19 F: 71.94
|
||||
Jun 07 18:09:45 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:09:55 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:10:05 Sensor 1 C: 26.38 F: 79.47
|
||||
Jun 07 18:10:15 Sensor 0 C: 22.19 F: 71.94
|
||||
Jun 07 18:10:26 Sensor 1 C: 26.25 F: 79.25
|
||||
Jun 07 18:10:36 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:10:46 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:10:56 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:11:07 Sensor 1 C: 26.06 F: 78.91
|
||||
Jun 07 18:11:18 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:11:28 Sensor 1 C: 26.06 F: 78.91
|
||||
Jun 07 18:11:39 Sensor 0 C: 22.50 F: 72.50
|
||||
Jun 07 18:11:49 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:11:59 Sensor 0 C: 22.50 F: 72.50
|
||||
Jun 07 18:12:10 Sensor 1 C: 26.31 F: 79.36
|
||||
Jun 07 18:12:20 Sensor 0 C: 22.50 F: 72.50
|
||||
Jun 07 18:12:30 Sensor 1 C: 26.38 F: 79.47
|
||||
Jun 07 18:12:41 Sensor 0 C: 22.44 F: 72.39
|
||||
Jun 07 18:12:51 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:13:01 Sensor 0 C: 22.44 F: 72.39
|
||||
Jun 07 18:13:11 Sensor 1 C: 26.50 F: 79.70
|
||||
Jun 07 18:13:22 Sensor 0 C: 22.38 F: 72.28
|
||||
Jun 07 18:13:32 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:13:42 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:13:53 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:14:03 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:14:13 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:14:24 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:14:34 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:14:44 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:14:55 Sensor 1 C: 26.50 F: 79.70
|
||||
Jun 07 18:15:05 Sensor 0 C: 22.19 F: 71.94
|
||||
Jun 07 18:15:15 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:15:26 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:15:36 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:15:47 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:15:57 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:16:07 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:16:18 Sensor 1 C: 26.75 F: 80.15
|
||||
Jun 07 18:16:28 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:16:38 Sensor 1 C: 26.88 F: 80.38
|
||||
Jun 07 18:16:48 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:16:59 Sensor 1 C: 26.94 F: 80.49
|
||||
Jun 07 18:17:09 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:17:19 Sensor 1 C: 26.94 F: 80.49
|
||||
Jun 07 18:17:29 Sensor 0 C: 22.12 F: 71.82
|
||||
Jun 07 18:17:40 Sensor 1 C: 26.88 F: 80.38
|
||||
Jun 07 18:17:50 Sensor 0 C: 22.12 F: 71.82
|
||||
Jun 07 18:18:00 Sensor 1 C: 26.75 F: 80.15
|
||||
Jun 07 18:18:10 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:18:21 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:18:31 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:18:41 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:18:52 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:19:02 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:19:12 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:19:22 Sensor 1 C: 26.50 F: 79.70
|
||||
Jun 07 18:19:33 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:19:43 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:19:53 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:20:03 Sensor 1 C: 26.38 F: 79.47
|
||||
Jun 07 18:20:14 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:20:24 Sensor 1 C: 26.38 F: 79.47
|
||||
Jun 07 18:20:34 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:20:44 Sensor 1 C: 26.31 F: 79.36
|
||||
Jun 07 18:20:55 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:21:05 Sensor 1 C: 26.31 F: 79.36
|
||||
Jun 07 18:21:15 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:21:25 Sensor 1 C: 26.25 F: 79.25
|
||||
Jun 07 18:21:36 Sensor 0 C: 22.19 F: 71.94
|
||||
Jun 07 18:21:46 Sensor 1 C: 26.25 F: 79.25
|
||||
Jun 07 18:21:56 Sensor 0 C: 22.62 F: 72.72
|
||||
Jun 07 18:22:06 Sensor 1 C: 26.19 F: 79.14
|
||||
Jun 07 18:22:17 Sensor 0 C: 22.56 F: 72.61
|
||||
Jun 07 18:22:27 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:22:37 Sensor 0 C: 22.56 F: 72.61
|
||||
Jun 07 18:22:47 Sensor 1 C: 26.19 F: 79.14
|
||||
Jun 07 18:22:58 Sensor 0 C: 22.50 F: 72.50
|
||||
Jun 07 18:23:08 Sensor 1 C: 26.19 F: 79.14
|
||||
Jun 07 18:23:18 Sensor 0 C: 22.44 F: 72.39
|
||||
Jun 07 18:23:28 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:23:39 Sensor 0 C: 22.38 F: 72.28
|
||||
Jun 07 18:23:49 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:23:59 Sensor 0 C: 22.62 F: 72.72
|
||||
Jun 07 18:24:10 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:24:20 Sensor 0 C: 22.56 F: 72.61
|
||||
Jun 07 18:24:30 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:24:40 Sensor 0 C: 22.50 F: 72.50
|
||||
Jun 07 18:24:51 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:25:01 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:25:11 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:25:21 Sensor 0 C: 22.31 F: 72.16
|
||||
Jun 07 18:25:32 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:25:42 Sensor 0 C: 22.25 F: 72.05
|
||||
Jun 07 18:25:52 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:26:02 Sensor 0 C: 22.12 F: 71.82
|
||||
Jun 07 18:26:13 Sensor 1 C: 26.06 F: 78.91
|
||||
Jun 07 18:26:23 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:26:33 Sensor 1 C: 26.06 F: 78.91
|
||||
Jun 07 18:26:43 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:26:54 Sensor 1 C: 26.06 F: 78.91
|
||||
Jun 07 18:27:04 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:27:14 Sensor 1 C: 26.06 F: 78.91
|
||||
Jun 07 18:27:24 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:27:35 Sensor 1 C: 26.12 F: 79.03
|
||||
Jun 07 18:27:45 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:27:55 Sensor 1 C: 26.19 F: 79.14
|
||||
Jun 07 18:28:05 Sensor 0 C: 22.19 F: 71.94
|
||||
Jun 07 18:28:16 Sensor 1 C: 26.19 F: 79.14
|
||||
Jun 07 18:28:26 Sensor 0 C: 22.12 F: 71.82
|
||||
Jun 07 18:28:37 Sensor 1 C: 26.19 F: 79.14
|
||||
Jun 07 18:28:47 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:28:57 Sensor 1 C: 26.25 F: 79.25
|
||||
Jun 07 18:29:08 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:29:18 Sensor 1 C: 26.25 F: 79.25
|
||||
Jun 07 18:29:28 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:29:38 Sensor 1 C: 26.31 F: 79.36
|
||||
Jun 07 18:29:49 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:29:59 Sensor 1 C: 26.38 F: 79.47
|
||||
Jun 07 18:30:09 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:30:19 Sensor 1 C: 26.44 F: 79.59
|
||||
Jun 07 18:30:30 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:30:40 Sensor 1 C: 26.50 F: 79.70
|
||||
Jun 07 18:30:50 Sensor 0 C: 21.94 F: 71.49
|
||||
Jun 07 18:31:01 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:31:11 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:31:21 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:31:31 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:31:42 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:31:52 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:32:02 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:32:13 Sensor 0 C: 22.06 F: 71.71
|
||||
Jun 07 18:32:23 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:32:33 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:32:43 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:32:54 Sensor 0 C: 21.94 F: 71.49
|
||||
Jun 07 18:33:04 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:33:14 Sensor 0 C: 21.88 F: 71.38
|
||||
Jun 07 18:33:25 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:33:35 Sensor 0 C: 21.75 F: 71.15
|
||||
Jun 07 18:33:45 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:33:55 Sensor 0 C: 21.81 F: 71.26
|
||||
Jun 07 18:34:06 Sensor 1 C: 26.69 F: 80.04
|
||||
Jun 07 18:34:16 Sensor 0 C: 21.81 F: 71.26
|
||||
Jun 07 18:34:26 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:34:36 Sensor 0 C: 21.81 F: 71.26
|
||||
Jun 07 18:34:47 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:34:57 Sensor 0 C: 21.81 F: 71.26
|
||||
Jun 07 18:35:07 Sensor 1 C: 26.62 F: 79.93
|
||||
Jun 07 18:35:17 Sensor 0 C: 21.75 F: 71.15
|
||||
Jun 07 18:35:28 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:35:38 Sensor 0 C: 21.75 F: 71.15
|
||||
Jun 07 18:35:48 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:35:58 Sensor 0 C: 21.75 F: 71.15
|
||||
Jun 07 18:36:09 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:36:19 Sensor 0 C: 21.81 F: 71.26
|
||||
Jun 07 18:36:29 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:36:39 Sensor 0 C: 21.88 F: 71.38
|
||||
Jun 07 18:36:50 Sensor 1 C: 26.56 F: 79.81
|
||||
Jun 07 18:37:00 Sensor 0 C: 21.88 F: 71.38
|
||||
Jun 07 18:37:10 Sensor 1 C: 26.50 F: 79.70
|
||||
Jun 07 18:37:20 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:37:31 Sensor 1 C: 26.50 F: 79.70
|
||||
Jun 07 18:37:41 Sensor 0 C: 22.00 F: 71.60
|
||||
Jun 07 18:37:51 Sensor 1 C: 26.44 F: 79.59
|
Loading…
Reference in a new issue