busperf 0.1.0

Bus performance analysis tool
Documentation
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- Disable zooming: -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

<head>
    <title>Busperf viewer</title>

    <script type="module" id="busperf_web_js">
    	JAVASCRIPT_HERE
    </script>
    
    <script type="module">
        const jsSource = document.getElementById("busperf_web_js").textContent;
        const jsBlob = new Blob([jsSource], { type: "application/javascript" });
        const jsModuleUrl = URL.createObjectURL(jsBlob);
        const { default: init, ...bindings } = await import(jsModuleUrl);

        const wasmBase64 = "WASM_HERE";
        const wasmBytes = Uint8Array.from(atob(wasmBase64), c => c.charCodeAt(0));
        const wasm = await init(wasmBytes.buffer);

        const dataBase64 = "DATA_HERE";
        const dataBytes = Uint8Array.from(atob(dataBase64), c => c.charCodeAt(0));
        bindings.set_busperf_data(dataBytes);
    </script>

    <meta name="theme-color" media="(prefers-color-scheme: light)" content="white">
    <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#404040">

    <style>
        html {
            /* Remove touch delay: */
            touch-action: manipulation;
        }

        body {
            /* Light mode background color for what is not covered by the egui canvas,
            or where the egui canvas is translucent. */
            background: #909090;
        }

        @media (prefers-color-scheme: dark) {
            body {
                /* Dark mode background color for what is not covered by the egui canvas,
                or where the egui canvas is translucent. */
                background: #404040;
            }
        }

        /* Allow canvas to fill entire web page: */
        html,
        body {
            overflow: hidden;
            margin: 0 !important;
            padding: 0 !important;
            height: 100%;
            width: 100%;
        }

        /* Make canvas fill entire document: */
        canvas {
            margin-right: auto;
            margin-left: auto;
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }

        .centered {
            margin-right: auto;
            margin-left: auto;
            display: block;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: #f0f0f0;
            font-size: 24px;
            font-family: Ubuntu-Light, Helvetica, sans-serif;
            text-align: center;
        }

        /* ---------------------------------------------- */
        /* Loading animation from https://loading.io/css/ */
        .lds-dual-ring {
            display: inline-block;
            width: 24px;
            height: 24px;
        }

        .lds-dual-ring:after {
            content: " ";
            display: block;
            width: 24px;
            height: 24px;
            margin: 0px;
            border-radius: 50%;
            border: 3px solid #fff;
            border-color: #fff transparent #fff transparent;
            animation: lds-dual-ring 1.2s linear infinite;
        }

        @keyframes lds-dual-ring {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }
    </style>

<body>
    <!-- The WASM code will resize the canvas dynamically -->
    <!-- the id is hardcoded in main.rs . so, make sure both match. -->
    <canvas id="the_canvas_id"></canvas>

    <!-- the loading spinner will be removed in main.rs -->
    <div class="centered" id="loading_text">
        <noscript>You need javascript to use this website</noscript>
        <p style="font-size:16px">
            Loading…
        </p>
        <div class="lds-dual-ring"></div>
    </div>
</body>

</html>

<!-- Powered by egui: https://github.com/emilk/egui/ -->