annotate bin/inputdemo @ 1067:c33158b367a5

inputdemo reports latency of posting each point. takes curve uri on cmdline Ignore-this: 640cf036dfb5f5ae956be1cde5190846
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 02 Jun 2014 06:04:19 +0000
parents 0f51a1a5785e
children c756638275d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
1 #!bin/python
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
2 import sys
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
3 sys.path.append('/usr/lib/python2.7/dist-packages') # For gtk
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
4 from twisted.internet import gtk3reactor
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
5 gtk3reactor.install()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
6 from twisted.internet import reactor
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
7 from rdflib import URIRef
1067
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
8 import optparse, logging, urllib, time
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
9 from gi.repository import Gtk
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
10 from run_local import log
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
11 from light9 import showconfig, networking
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
12 from light9.rdfdb import clientsession
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
13 from light9.rdfdb.syncedgraph import SyncedGraph
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
14 import cyclone.httpclient
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
15
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
16 class App(object):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
17 def __init__(self):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
18 parser = optparse.OptionParser()
1067
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
19 parser.set_usage("%prog [opts] [curve uri]")
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
20 parser.add_option("--debug", action="store_true",
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
21 help="log at DEBUG")
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
22 clientsession.add_option(parser)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
23 opts, args = parser.parse_args()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
24
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
25 log.setLevel(logging.DEBUG if opts.debug else logging.INFO)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
26
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
27 self.session = clientsession.getUri('inputdemo', opts)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
28 self.graph = SyncedGraph("inputdemo")
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
29
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
30 self.graph.initiallySynced.addCallback(lambda _: self.launch())
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
31
1067
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
32 self.curve = args[0] if args else URIRef('http://light9.bigasterisk.com/show/dance2014/song1/curve/c-1401259747.675542')
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
33 print "sending points on curve %s" % self.curve
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
34
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
35 reactor.run()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
36
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
37 def launch(self):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
38 win = Gtk.Window()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
39
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
40 slider = Gtk.Scale.new_with_range(orientation=Gtk.Orientation.VERTICAL,
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
41 min=0, max=1, step=.001)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
42 slider.props.inverted = True
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
43 slider.connect('value-changed', self.onChanged)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
44
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
45 win.add(slider)
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
46 win.parse_geometry('50x250')
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
47 win.connect("delete-event", lambda *a: reactor.crash())
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
48 win.connect("destroy", lambda *a: reactor.crash())
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
49 win.show_all()
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
50
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
51 def onChanged(self, scale):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
52 f = cyclone.httpclient.fetch(
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
53 networking.curveCalc.path('liveInputPoint'),
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
54 method='POST', timeout=1,
1067
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
55 postdata=urllib.urlencode({
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
56 'curve': self.curve,
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
57 'value': str(scale.get_value()),
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
58 }))
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
59 @f.addCallback
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
60 def cb(result):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
61 if result.code // 100 != 2:
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
62 log.error("curveCalc said %s: %s", result.code, result.body)
1067
c33158b367a5 inputdemo reports latency of posting each point. takes curve uri on cmdline
Drew Perttula <drewp@bigasterisk.com>
parents: 1062
diff changeset
63 print "posted in %.1f ms" % (1000 * (time.time() - t1))
1062
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
64 @f.addErrback
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
65 def eb(err):
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
66 print "err", err
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
67
0f51a1a5785e gtk slider for sending sample input to curvecalc
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
68 App()