Mercurial > code > home > repos > light9
diff bin/captureDevice @ 1585:17da56a3c8df
group device captures into sessions, limit solver to specific ones
Ignore-this: b91d858ebb435973b9742bed00567ffd
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Tue, 30 May 2017 08:37:25 +0000 |
parents | 2239d5648932 |
children | 9fe3052f8ced |
line wrap: on
line diff
--- a/bin/captureDevice Tue May 30 07:57:52 2017 +0000 +++ b/bin/captureDevice Tue May 30 08:37:25 2017 +0000 @@ -15,25 +15,25 @@ from run_local import log from lib.cycloneerr import PrettyErrorHandler -from light9.namespaces import L9 +from light9.namespaces import L9, RDF from light9 import networking, showconfig from light9.rdfdb.syncedgraph import SyncedGraph from light9.paint.capture import writeCaptureDescription from light9.greplin_cyclone import StatsForCyclone from light9.effect.settings import DeviceSettings from light9.effect.sequencer import sendToCollector +from light9.rdfdb.patch import Patch stats = scales.collection('/webServer', scales.PmfStat('setAttr')) - class Camera(object): def __init__(self, imageUrl): self.imageUrl = imageUrl def takePic(self, uri, writePath): log.info('takePic %s', uri) - return treq.get(self.imageUrl).addCallbacks(lambda r: self._done(writePath, r), - log.error) + return treq.get(self.imageUrl).addCallbacks( + lambda r: self._done(writePath, r), log.error) @inlineCallbacks def _done(self, writePath, response): @@ -56,6 +56,7 @@ settleTime = .5 def __init__(self, graph, dev): self.graph = graph + self.dev = dev def steps(a, b, n): return [round(a + (b - a) * i / n, 5) for i in range(n)] @@ -77,6 +78,15 @@ (dev, L9['color'], '#ffffff'), ])) + self.devTail = dev.rsplit('/')[-1] + self.session = URIRef('/'.join([showconfig.showUri(), + 'capture', self.devTail, self.captureId])) + self.ctx = URIRef(self.session + '/index') + + self.graph.patch(Patch(addQuads=[ + (self.session, RDF.type, L9['CaptureSession'], self.ctx), + ])) + self.numPics = 0 self.settingsCache = set() self.step().addErrback(log.error) @@ -101,20 +111,17 @@ yield deferSleep(self.firstMoveTime if self.numPics == 0 else self.settleTime) - dev = settings.devices()[0] - devTail = dev.rsplit('/')[-1] picId = 'pic%s' % self.numPics - path = '/'.join(['capture', devTail, self.captureId, picId]) + '.jpg' - ctx = URIRef('/'.join([showconfig.showUri(), - 'capture', devTail, self.captureId, 'index'])) - uri = URIRef('/'.join([showconfig.showUri(), - 'capture', devTail, self.captureId, picId])) + path = '/'.join([ + 'capture', self.devTail, self.captureId, picId]) + '.jpg' + uri = URIRef(self.session + '/' + picId) yield camera.takePic(uri, os.path.join(showconfig.root(), path)) self.numPics += 1 - writeCaptureDescription(self.graph, ctx, uri, dev, path, - self.settingsCache, settings) + writeCaptureDescription(self.graph, self.ctx, self.session, uri, + self.dev, + path, self.settingsCache, settings) reactor.callLater(0, self.step)