summaryrefslogtreecommitdiffstats
path: root/pyk8055/pyplotA.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyk8055/pyplotA.py')
-rwxr-xr-xpyk8055/pyplotA.py88
1 files changed, 88 insertions, 0 deletions
diff --git a/pyk8055/pyplotA.py b/pyk8055/pyplotA.py
new file mode 100755
index 0000000..6d19e29
--- /dev/null
+++ b/pyk8055/pyplotA.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+# $Id: pyplotA.py,v 1.2 2007/03/15 14:55:38 pjetur Exp $
+#
+# Simple plotting of analog input data from the K8055 board
+#
+# based on the running plot sample from pyQwt
+# The Python version of qwt-*/examples/data_plot/data_plot.cpp
+
+import random, sys
+from qt import *
+from qwt import *
+from Numeric import *
+from pyk8055 import *
+
+
+class DataPlot(QwtPlot):
+
+ def __init__(self, *args):
+ QwtPlot.__init__(self, *args)
+
+ # Initialize data
+ self.x = arrayrange(0.0, 100.1, 0.5)
+ self.a1 = zeros(len(self.x), Float)
+ self.a2 = zeros(len(self.x), Float)
+
+ self.setTitle("Simple K8055 datascope")
+ self.setAutoLegend(True)
+
+ self.curve1 = self.insertCurve("Input 1")
+ self.curve2 = self.insertCurve("Input 2")
+
+ self.setCurvePen(self.curve1, QPen(Qt.red))
+ self.setCurvePen(self.curve2, QPen(Qt.blue))
+
+ # No automatic scaling, set y-scale 0-255
+ self.setAxisScale(QwtPlot.yLeft,0,255,50)
+
+ # set marker line in the middle - value 128
+ mY = self.insertLineMarker("", QwtPlot.yLeft)
+ self.setMarkerYPos(mY, 128.0)
+
+ self.setAxisTitle(QwtPlot.xBottom, "Time (seconds)")
+ self.setAxisTitle(QwtPlot.yLeft, "Values")
+
+ self.startTimer(50)
+
+ self.k = k8055(0)
+ # __init__()
+
+ def timerEvent(self, e):
+
+ # data moves from left to right:
+ # shift data array right and assign new value data[0]
+
+ self.a1 = concatenate((self.a1[:1], self.a1[:-1]), 1)
+ self.a1[0] = self.k.ReadAnalogChannel(1)
+
+ self.a2 = concatenate((self.a2[:1], self.a2[:-1]), 1)
+ self.a2[0] = self.k.ReadAnalogChannel(2)
+
+ self.setCurveData(self.curve1, self.x, self.a1)
+ self.setCurveData(self.curve2, self.x, self.a2)
+
+ self.replot()
+
+ # timerEvent()
+
+# class DataPlot
+
+def main(args):
+ app = QApplication(args)
+ demo = make()
+ app.setMainWidget(demo)
+ app.exec_loop()
+
+# main()
+
+def make():
+ demo = DataPlot()
+ demo.resize(500, 300)
+ demo.show()
+ return demo
+
+# make()
+
+# Admire
+if __name__ == '__main__':
+ main(sys.argv)