def plots(request): timeSeriesNamesString = request.GET.get('s') requestParams = {} if timeSeriesNamesString is not None: if timeSeriesNamesString: timeSeriesNames = timeSeriesNamesString.split(',') else: timeSeriesNames = [] requestParams['timeSeriesNames'] = timeSeriesNames # sanity check for name in timeSeriesNames: if name not in meta.getTimeSeriesLookup(): return HttpResponseBadRequest('unknown time series %s' % name) exportFields = ( 'DATA_URL', 'XGDS_PLOT_DATA_SUBDIR', 'SCRIPT_NAME', 'XGDS_ZMQ_WEB_SOCKET_URL', 'XGDS_PLOT_LIVE_PLOT_HISTORY_LENGTH_MS', 'XGDS_PLOT_SEGMENT_RESOLUTION', 'XGDS_PLOT_MIN_DISPLAY_RESOLUTION', 'XGDS_PLOT_MIN_DATA_INTERVAL_MS', 'XGDS_PLOT_MAX_SEGMENT_LENGTH_MS', 'XGDS_PLOT_LIVE_MODE_DEFAULT', 'XGDS_PLOT_CHECK_FOR_NEW_DATA', 'XGDS_PLOT_TIME_OFFSET_HOURS', 'XGDS_PLOT_TIME_ZONE_NAME', 'XGDS_PLOT_LIVE_PLOT_FUTURE_TIME_MS', ) exportSettings = dict(((k, getattr(settings, k)) for k in exportFields)) if request.META['wsgi.url_scheme'] == 'https': # must use secure WebSockets if web site is secure exportSettings['XGDS_ZMQ_WEB_SOCKET_URL'] = re.sub( r'^ws:', 'wss:', exportSettings['XGDS_ZMQ_WEB_SOCKET_URL']) return render( request, 'xgds_plot/plots.html', { 'settings': dumps(exportSettings), 'requestParams': dumps(requestParams) }, )
def plots(request): timeSeriesNamesString = request.GET.get('s') requestParams = {} if timeSeriesNamesString is not None: if timeSeriesNamesString: timeSeriesNames = timeSeriesNamesString.split(',') else: timeSeriesNames = [] requestParams['timeSeriesNames'] = timeSeriesNames # sanity check for name in timeSeriesNames: if name not in meta.getTimeSeriesLookup(): return HttpResponseBadRequest('unknown time series %s' % name) exportFields = ('DATA_URL', 'XGDS_PLOT_DATA_SUBDIR', 'SCRIPT_NAME', 'XGDS_ZMQ_WEB_SOCKET_URL', 'XGDS_PLOT_LIVE_PLOT_HISTORY_LENGTH_MS', 'XGDS_PLOT_SEGMENT_RESOLUTION', 'XGDS_PLOT_MIN_DISPLAY_RESOLUTION', 'XGDS_PLOT_MIN_DATA_INTERVAL_MS', 'XGDS_PLOT_MAX_SEGMENT_LENGTH_MS', 'XGDS_PLOT_LIVE_MODE_DEFAULT', 'XGDS_PLOT_CHECK_FOR_NEW_DATA', 'XGDS_PLOT_TIME_OFFSET_HOURS', 'XGDS_PLOT_TIME_ZONE_NAME', 'XGDS_PLOT_LIVE_PLOT_FUTURE_TIME_MS', ) exportSettings = dict(((k, getattr(settings, k)) for k in exportFields)) if request.META['wsgi.url_scheme'] == 'https': # must use secure WebSockets if web site is secure exportSettings['XGDS_ZMQ_WEB_SOCKET_URL'] = re.sub(r'^ws:', 'wss:', exportSettings['XGDS_ZMQ_WEB_SOCKET_URL']) return render_to_response('xgds_plot/plots.html', {'settings': dumps(exportSettings), 'requestParams': dumps(requestParams)}, context_instance=RequestContext(request))
def getStaticPlot(request, seriesId): if seriesId not in meta.getTimeSeriesLookup(): return HttpResponseNotFound('<h1>404 No time series named "%s"</h1>' % seriesId) offset = datetime.timedelta(hours=settings.XGDS_PLOT_TIME_OFFSET_HOURS) minTime = parseTime(request.GET.get('start', '-72'), offset) maxTime = parseTime(request.GET.get('end', 'now'), offset) assert minTime <= maxTime, 'HTTP GET parameters: start, end: start time must be before end time' widthPix = int(request.GET.get('w', '800')) heightPix = int(request.GET.get('h', '120')) imgData = (staticPlot.getPlotDataMultiprocessing(seriesId, widthPix, heightPix, javaStyle(minTime), javaStyle(maxTime))) django.db.reset_queries() # clear query log to reduce memory usage return HttpResponse(imgData, content_type='image/png')
def getStaticPlot(request, seriesId): if seriesId not in meta.getTimeSeriesLookup(): return HttpResponseNotFound('<h1>404 No time series named "%s"</h1>' % seriesId) offset = datetime.timedelta(hours=settings.XGDS_PLOT_TIME_OFFSET_HOURS) minTime = parseTime(request.GET.get('start', '-72'), offset) maxTime = parseTime(request.GET.get('end', 'now'), offset) assert minTime <= maxTime, 'HTTP GET parameters: start, end: start time must be before end time' widthPix = int(request.GET.get('w', '800')) heightPix = int(request.GET.get('h', '120')) imgData = (staticPlot.getPlotDataMultiprocessing (seriesId, widthPix, heightPix, javaStyle(minTime), javaStyle(maxTime))) django.db.reset_queries() # clear query log to reduce memory usage return HttpResponse(imgData, content_type='image/png')