Skip to content
Snippets Groups Projects
Select Git revision
  • 9b46a05de7ea25a763dd1695a7042a5a41a443f4
  • v2018.2.x default protected
  • 0x4A6F-rpi4
  • 0x4A6F-master
  • master
  • v2018.2.2-ffs
  • v2016.2.4-batmanbug
  • radv-filterd
  • v2016.2.x
  • hoodselector
  • v2016.1.x
  • babel
  • v2015.1.x
  • 2014.4.x
  • 2014.3.x
  • v2018.2.2-ffs0.1
  • v2018.2.1-ffs0.1
  • v2018.2.1
  • v2018.2-ffs0.1
  • v2018.2
  • v2018.1.4
  • v2018.1.3
  • v2018.1.2
  • v2018.1.1
  • v2018.1
  • v2017.1.8
  • v2017.1.7
  • v2017.1.6
  • v2017.1.5
  • v2017.1.4
  • v2017.1.3
  • v2017.1.2
  • v2016.2.7
  • v2017.1.1
  • v2017.1
35 results

signalgraph.js

Blame
  • Forked from firmware / FFS Gluon
    Source project has a limited visibility.
    signalgraph.js 3.13 KiB
    "use strict"
    define(function () {
      return function (canvas, min, max) {
        var i = 0
        var graphWidth
        var last = 0
    
        var signals = []
    
        var ctx = canvas.getContext("2d")
    
        resize()
    
        window.addEventListener("resize", resize, false)
        window.requestAnimationFrame(step)
    
        function step(timestamp) {
          var delta = timestamp - last
    
          if (delta > 40) {
            draw()
            last = timestamp
          }
    
          window.requestAnimationFrame(step)
        }
    
        function drawGrid() {
          var gridctx = ctx
          var nLines = Math.floor(canvas.height / 40)
          gridctx.save()
          gridctx.lineWidth = 0.5
          gridctx.strokeStyle = "rgba(0, 0, 0, 0.25)"
          gridctx.fillStyle = "rgba(0, 0, 0, 0.5)"
          gridctx.textAlign = "end"
          gridctx.textBaseline = "bottom"
    
          gridctx.beginPath()
    
          for (var i = 0; i < nLines; i++) {
            var y = canvas.height - i * 40
            gridctx.moveTo(0, y - 0.5)
            gridctx.lineTo(canvas.width, y - 0.5)
            var dBm = Math.round(scaleInverse(y, min, max, canvas.height)) + " dBm"
    
            gridctx.save()
            gridctx.strokeStyle = "rgba(255, 255, 255, 0.9)"
            gridctx.lineWidth = 4
            gridctx.miterLimit = 2
            gridctx.strokeText(dBm, canvas.width - 5, y - 2.5)
            gridctx.fillText(dBm, canvas.width - 5, y - 2.5)
            gridctx.restore()
          }
    
          gridctx.stroke()
    
          gridctx.strokeStyle = "rgba(0, 0, 0, 0.83)"
          gridctx.lineWidth = 1.5
          gridctx.strokeRect(0.5, 0.5, canvas.width - 1, canvas.height - 1)
    
          gridctx.restore()
        }
    
        function draw() {
          var anyHighlight = signals.some( function (d) { return d.getHighlight() })
    
          signals.forEach( function (d) {
            d.draw(i, function (v) {
              return scale(v, min, max, canvas.height)
            })