Пример #1
0
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)
        },
    )
Пример #2
0
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))
Пример #3
0
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')
Пример #4
0
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')