Commit ba381288d523ecdf39a9a3ae7cb6d529f975daf7
1 parent
7b2c967b
Exists in
master
Demonstration of plotting data from serial
Showing
2 changed files
with
6 additions
and
6 deletions
Show diff stats
robots/little_john/telemetry/code/monitor/version1/main.py
| @@ -40,7 +40,7 @@ else: | @@ -40,7 +40,7 @@ else: | ||
| 40 | os='Other' | 40 | os='Other' |
| 41 | logging.info('OS = ' + os) | 41 | logging.info('OS = ' + os) |
| 42 | 42 | ||
| 43 | -testseries = Series(points=150, title="Sine wave demo", xname="Time (s)", yname="100sin(t)") | 43 | +testseries = Series(points=150, ylimits=(9, 1024), title="Sine wave demo", xname="Time (s)", yname="100sin(t)") |
| 44 | plots = [] | 44 | plots = [] |
| 45 | plots.append(Plot(testseries)) | 45 | plots.append(Plot(testseries)) |
| 46 | 46 | ||
| @@ -56,7 +56,7 @@ def pollSerial(elapsed): | @@ -56,7 +56,7 @@ def pollSerial(elapsed): | ||
| 56 | for n, value in enumerate(values): | 56 | for n, value in enumerate(values): |
| 57 | values[n] = float(value) | 57 | values[n] = float(value) |
| 58 | #logging.info("Recieved data: " + str(values)) | 58 | #logging.info("Recieved data: " + str(values)) |
| 59 | - testseries.addpoint(values) | 59 | + testseries.addpoint([time.time()-starttime] + values) |
| 60 | 60 | ||
| 61 | def fakePollSerial(elapsed): | 61 | def fakePollSerial(elapsed): |
| 62 | """This function immitates the behaviour of pollSerial, for testing purposes""" | 62 | """This function immitates the behaviour of pollSerial, for testing purposes""" |
| @@ -66,6 +66,6 @@ def fakePollSerial(elapsed): | @@ -66,6 +66,6 @@ def fakePollSerial(elapsed): | ||
| 66 | testseries.addpoint(values) | 66 | testseries.addpoint(values) |
| 67 | 67 | ||
| 68 | # Pyglet looks after the main event loop, but this ensures that data keeps being read in | 68 | # Pyglet looks after the main event loop, but this ensures that data keeps being read in |
| 69 | -pyglet.clock.schedule_interval(fakePollSerial, 0.04) | 69 | +pyglet.clock.schedule_interval(pollSerial, 0.04) |
| 70 | 70 | ||
| 71 | pyglet.app.run() | 71 | pyglet.app.run() |
robots/little_john/telemetry/code/monitor/version1/series.py
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | import logging | 5 | import logging |
| 6 | 6 | ||
| 7 | class Series: | 7 | class Series: |
| 8 | - def __init__(self, points=100, title="Series title", xname="x-axis name", yname="y-axis name"): | 8 | + def __init__(self, points=100, xlimits=(0, 100), ylimits=(0, 100), title="Series title", xname="x-axis name", yname="y-axis name"): |
| 9 | """Set up an object to store a 2D data series""" | 9 | """Set up an object to store a 2D data series""" |
| 10 | # Proposal: | 10 | # Proposal: |
| 11 | # In order to neatly handle multiple lines on the same graph | 11 | # In order to neatly handle multiple lines on the same graph |
| @@ -20,8 +20,8 @@ class Series: | @@ -20,8 +20,8 @@ class Series: | ||
| 20 | self.title = title | 20 | self.title = title |
| 21 | self.xname = xname | 21 | self.xname = xname |
| 22 | self.yname = yname | 22 | self.yname = yname |
| 23 | - self.xlimits = (0, 100) | ||
| 24 | - self.ylimits = (-100, 100) | 23 | + self.xlimits = xlimits |
| 24 | + self.ylimits = ylimits | ||
| 25 | self.data = [] | 25 | self.data = [] |
| 26 | self.points = points | 26 | self.points = points |
| 27 | 27 |