diff --git a/tracetools_analysis/analysis/callback_duration.ipynb b/tracetools_analysis/analysis/callback_duration.ipynb index 02d5277..4b7aa1a 100644 --- a/tracetools_analysis/analysis/callback_duration.ipynb +++ b/tracetools_analysis/analysis/callback_duration.ipynb @@ -28,23 +28,14 @@ "outputs": [], "source": [ "#path = '~/.ros/tracing/pingpong/ust'\n", - "path = '/workspaces/ROS-Dynamic-Executor-Experiments/analysis/tracing/my-tracing-session/converted'" + "path = '/workspaces/ROS-Dynamic-Executor-Experiments/analysis/tracing/ros2_tracing_session/converted'" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/workspaces/ROS-Dynamic-Executor-Experiments/venv38/lib/python3.8/site-packages/pandas/core/computation/expressions.py:20: UserWarning: Pandas requires version '2.7.3' or newer of 'numexpr' (version '2.7.1' currently installed).\n", - " from pandas.core.computation.check import NUMEXPR_INSTALLED\n" - ] - } - ], + "outputs": [], "source": [ "import sys\n", "# Assuming a workspace with:\n", @@ -71,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -86,7 +77,7 @@ "# Process\n", "events = load_file(path)\n", "handler = Ros2Handler.process(events)\n", - "handler.data.print_data()" + "#handler.data.print_data()" ] }, { @@ -107,7 +98,7 @@ " \n", "
\n", " \n", - " Loading BokehJS ...\n", + " Loading BokehJS ...\n", "
\n" ] }, @@ -116,7 +107,7 @@ }, { "data": { - "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n // Clean up Bokeh references\n if (id != null && id in Bokeh.index) {\n Bokeh.index[id].model.document.clear();\n delete Bokeh.index[id];\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim();\n if (id in Bokeh.index) {\n Bokeh.index[id].model.document.clear();\n delete Bokeh.index[id];\n }\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n const el = document.getElementById(\"df316840-9279-4e4b-9d5b-724538acf5c2\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.1.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"df316840-9279-4e4b-9d5b-724538acf5c2\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", + "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n // Clean up Bokeh references\n if (id != null && id in Bokeh.index) {\n Bokeh.index[id].model.document.clear();\n delete Bokeh.index[id];\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim();\n if (id in Bokeh.index) {\n Bokeh.index[id].model.document.clear();\n delete Bokeh.index[id];\n }\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n const el = document.getElementById(\"d94072da-687a-4aef-ac17-3c4c8b978ae5\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.1.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.1.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"d94072da-687a-4aef-ac17-3c4c8b978ae5\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, @@ -130,7 +121,18 @@ "\n", "output_notebook()\n", "psize = 450\n", - "colours = ['#29788E', '#DD4968', '#410967']" + "colours = [\n", + " '#29788E', '#DD4968', '#410967', '#44BFC8', '#F76F8E',\n", + " '#8B1E3F', '#81C784', '#FFB74D', '#9575CD', '#F06292',\n", + " '#4DB6AC', '#BA68C8', '#7986CB', '#AED581', '#FF8A65',\n", + " '#E57373', '#64B5F6', '#4FC3F7', '#81D4FA', '#4DD0E1',\n", + " '#26A69A', '#66BB6A', '#D4E157', '#FFEE58', '#FFCA28',\n", + " '#FFA726', '#FF7043', '#8D6E63', '#BDBDBD', '#78909C',\n", + " '#90CAF9', '#A5D6A7', '#FFF59D', '#FFD54F', '#FFCC80',\n", + " '#FFAB91', '#CE93D8', '#F48FB1', '#B39DDB', '#80DEEA',\n", + " '#A1887F', '#E0E0E0', '#E6EE9C', '#C5E1A5', '#FFCDD2',\n", + " '#F0F4C3', '#B0BEC5', '#B2EBF2', '#DCEDC8', '#F5F5F5'\n", + "]" ] }, { @@ -138,18 +140,11 @@ "execution_count": 6, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "BokehDeprecationWarning: Passing lists of formats for DatetimeTickFormatter scales was deprecated in Bokeh 3.0. Configure a single string format for each scale\n" - ] - }, { "data": { "text/html": [ "\n", - "
\n" + "
\n" ] }, "metadata": {}, @@ -157,7 +152,7 @@ }, { "data": { - "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"9aacf958-fd6c-4d00-af83-6919910e3cf1\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p1120\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1004\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1005\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1006\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1018\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1020\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1007\",\"attributes\":{\"text\":\"Timer -- tid: 18606, period: 500 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1057\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1001\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1002\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1003\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RmZK4wZoeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7ded7jzxnD8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1058\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1059\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1054\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1055\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1056\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1012\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1036\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1037\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1038\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1039\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1040\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1041\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1042\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1029\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1032\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1030\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1031\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1022\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1025\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1062\"},\"axis_label\":\"start (2025-04-29 07:23)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1024\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1028\",\"attributes\":{\"axis\":{\"id\":\"p1022\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1035\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1029\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1060\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1061\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (PingNode::?)()\"},\"renderers\":[{\"id\":\"p1057\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1064\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1065\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1066\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1078\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1080\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1067\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1117\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1111\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1112\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1113\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gSIWMeww3r8avK/KhcrXv7RVSWQfZNG/mt7F+3H7xb+cI/JdSl2yv/DXne488Zw/zoegavRqwD+aVG03wTfNP7MQHQJHAtU/GXeDaK1o2z8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GryvyoXK17+0VUlkH2TRv5rexftx+8W/nCPyXUpdsr/w153uPPGcP86HoGr0asA/mlRtN8E3zT+zEB0CRwLVPxl3g2itaNs/v+5054nn4D8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1118\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1119\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1114\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1115\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1116\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1072\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1096\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1097\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1098\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1099\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1100\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1101\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1102\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1089\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1092\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1090\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1091\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1082\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1085\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1083\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1084\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1088\",\"attributes\":{\"axis\":{\"id\":\"p1082\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1095\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1089\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"9aacf958-fd6c-4d00-af83-6919910e3cf1\",\"roots\":{\"p1120\":\"f585cba7-c377-469e-9eb4-5aaddcb04e50\"},\"root_ids\":[\"p1120\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"2524dc62-fd6f-4c59-b4f1-9d3ac25b803b\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p1120\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1004\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1006\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1005\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1018\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1020\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1007\",\"attributes\":{\"text\":\"Subscription -- node: sensor_node, tid: 93591, topic: /parameter_events\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1057\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1001\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1002\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1003\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAIAAAA=\"},\"shape\":[2],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yYw0oRloeUK4njShGWh5Qg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lbVN8biodj9WYp6VtOJLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1058\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1059\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1054\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1055\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1056\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1010\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1036\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1037\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1038\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1039\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1040\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1041\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1042\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1029\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1030\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1032\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1031\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1022\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1023\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1062\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1024\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1028\",\"attributes\":{\"axis\":{\"id\":\"p1022\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1035\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1029\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1060\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1061\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (rclcpp::TimeSource::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p1057\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1064\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1066\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1065\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1078\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1080\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1067\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1117\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1111\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1112\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1113\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VmKelbTiSz+vwQzXtJxVPzNSSmMPSF0/XPHD97R5Yj+eueI9Yk9mP+CBAYQPJWo/Ikogyrz6bT8yiR8INehwP1PtLqsL03I/dFE+TuK9dD8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r8EM17ScVT8zUkpjD0hdP1zxw/e0eWI/nrniPWJPZj/ggQGEDyVqPyJKIMq8+m0/MokfCDXocD9T7S6rC9NyP3RRPk7ivXQ/lbVN8biodj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1118\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1119\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1114\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1115\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1116\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1070\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1096\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1097\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1098\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1099\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1100\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1101\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1102\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1089\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1090\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1092\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1091\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1082\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1083\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1085\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1084\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1088\",\"attributes\":{\"axis\":{\"id\":\"p1082\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1095\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1089\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"2524dc62-fd6f-4c59-b4f1-9d3ac25b803b\",\"roots\":{\"p1120\":\"a0ffe7ee-458f-42ed-a8ca-012b6f0e528f\"},\"root_ids\":[\"p1120\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { @@ -167,18 +162,11 @@ }, "output_type": "display_data" }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "BokehDeprecationWarning: Passing lists of formats for DatetimeTickFormatter scales was deprecated in Bokeh 3.0. Configure a single string format for each scale\n" - ] - }, { "data": { "text/html": [ "\n", - "
\n" + "
\n" ] }, "metadata": {}, @@ -186,7 +174,7 @@ }, { "data": { - "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"bfe9197f-a19b-407e-877f-ac858492790a\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p1399\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1283\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1284\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1285\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1297\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1299\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1286\",\"attributes\":{\"text\":\"Subscription -- node: test_ping, tid: 18606, topic: /pong\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1336\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1280\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1281\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1282\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LWxK4wZoeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BoAqbtxizj8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1337\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1338\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1333\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1334\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1335\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1291\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1315\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1316\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1317\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1318\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1319\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1320\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1321\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1308\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1311\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1309\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1310\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1301\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1304\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1341\"},\"axis_label\":\"start (2025-04-29 07:23)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1303\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1307\",\"attributes\":{\"axis\":{\"id\":\"p1301\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1314\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1308\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1339\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1340\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (PingNode::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p1336\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1343\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1344\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1345\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1357\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1359\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1346\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1396\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1390\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1391\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1392\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/b/qyJHO0L8tswjFVtDEv8DMd/ATB7C/uJlDUgsloz86s12hD5bBPwaAKm7cYs4/a6Z7ndSX1T/RDOIDO/7bP5w5JLVQMuE/zmxX6INl5D8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LbMIxVbQxL/AzHfwEwewv7iZQ1ILJaM/OrNdoQ+WwT8GgCpu3GLOP2ume53Ul9U/0QziAzv+2z+cOSS1UDLhP85sV+iDZeQ/AqCKG7eY5z8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1397\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1398\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1393\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1394\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1395\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1351\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1375\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1376\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1377\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1378\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1379\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1380\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1381\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1368\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1371\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1369\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1370\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1361\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1364\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1362\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1363\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1367\",\"attributes\":{\"axis\":{\"id\":\"p1361\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1374\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1368\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"bfe9197f-a19b-407e-877f-ac858492790a\",\"roots\":{\"p1399\":\"ab2e24a5-e000-4054-a4c2-225e2fbfceb5\"},\"root_ids\":[\"p1399\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"fe03efd2-0a0b-4ce3-9f5a-90c406fa5f3d\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p1399\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1283\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1285\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1284\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1297\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1299\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1286\",\"attributes\":{\"text\":\"Subscription -- node: decision_node, tid: 93591, topic: /processed_topic\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1336\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1280\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1281\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1282\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAgAAAALAAAADgAAABEAAAAUAAAAFwAAABoAAAAdAAAAIAAAACMAAAAmAAAAKQAAACwAAAAvAAAAMgAAADUAAAA4AAAAOwAAAD4AAABBAAAARAAAAEcAAABKAAAATQAAAFAAAABTAAAAVgAAAFkAAABcAAAAXwAAAGIAAABlAAAAaAAAAGsAAABuAAAAcQAAAHQAAAB3AAAAegAAAH0AAACAAAAAgwAAAIYAAACJAAAAjAAAAI8AAACSAAAAlQAAAA==\"},\"shape\":[49],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GUQ7oRloeUKFh0GhGWh5QtXKR6EZaHlC4QxOoRloeUKqO1ShGWh5Qsl+WqEZaHlCBr1goRloeULyDGehGWh5QnlJbaEZaHlCSIVzoRloeUJky3mhGWh5QukIgKEZaHlCk0CGoRloeUIjfYyhGWh5Qvi9kqEZaHlCkQGZoRloeUKoRp+hGWh5Qm+KpaEZaHlCDsGroRloeULL+7GhGWh5QoU9uKEZaHlCGX6+oRloeUKwwMShGWh5Qlz9yqEZaHlCFDzRoRloeULwf9ehGWh5QgrB3aEZaHlCbQHkoRloeUJEPeqhGWh5QiV88KEZaHlCbb32oRloeUKw/PyhGWh5QsFMA6IZaHlC2YYJohloeUJxyw+iGWh5QjcJFqIZaHlCQkYcohloeULyhCKiGWh5Qm3DKKIZaHlCmgEvohloeUKJPzWiGWh5Qph+O6IZaHlCor9BohloeUK0/EeiGWh5QkJGTqIZaHlCNYZUohloeUISvVqiGWh5QroDYaIZaHlChz5nohloeUI=\"},\"shape\":[49],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SpUoe0s5sz+XVG03wTexP6nAyTZwB7I/DhXj/E0otD/ue9Rfr7C0P8AhVKnZA7E/XaYmwRvSsD8aMh6lEp6wP/PLYIxIFLI/aHke3J21sz+fILHdPUC3P5peYizTL7E/mdU73A4Nuz/pfk5BfjayPxUCucSRB7I/cCU7NgLxqj9Ot+wQ/7CtP+pYpfRML7U/O6xwy0dStj+H/DOD+MCyP5AuNq0UArE/UIvBw7Rvsj8Lem8MAcC9P2jPZWoSvLE/dQRws3ixsD8G81fIXBm0PztSfecXJbQ/H0yKj0/Itj9gWP58W7C0P4+NQLyuX7A/cJUnEHaKsT9RweEFEamxP4F5yJQPQbU/CyjU00fgsz9kzcggdxGyP6lLxjGSPbI/RML3/gbtsT/JrUm3JXKxPzv8NVmjHrI/zxJkBFQ4tj+5qYHmc+62P2VvKeeLvbM/4XoUrkfhsj+OkewRaoawP4wS9Bd6xLQ/NEqX/iWptD8E4nX9gt24P703hgDg2LM/wF/MlqyKsD8=\"},\"shape\":[49],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1337\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1338\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1333\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1334\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1335\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1289\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1315\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1316\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1317\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1318\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1319\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1320\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1321\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1308\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1309\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1311\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1310\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1301\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1302\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1341\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1303\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1307\",\"attributes\":{\"axis\":{\"id\":\"p1301\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1314\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1308\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1339\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1340\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"DecisionNode::DecisionNode()::{lambda(std::shared_ptr)#1}\"},\"renderers\":[{\"id\":\"p1336\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1343\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1345\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1344\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1357\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1359\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1346\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1396\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1390\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1391\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1392\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAUAAAARAAAACAAAAAkAAAAEAAAAAgAAAAAAAAABAAAAAQAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cCU7NgLxqj/nhkszgjKuPy/0LRgBurA/6iS2FsFasj+mVT4VgfuzP2KGxhNBnLU/HbdOEgE9tz/Y59YQwd24P5QYXw+Bfro/UEnnDUEfvD8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"54ZLM4Iyrj8v9C0YAbqwP+okthbBWrI/plU+FYH7sz9ihsYTQZy1Px23ThIBPbc/2OfWEMHduD+UGF8PgX66P1BJ5w1BH7w/C3pvDAHAvT8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1397\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1398\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1393\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1394\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1395\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1349\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1375\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1376\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1377\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1378\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1379\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1380\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1381\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1368\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1369\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1371\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1370\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1361\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1362\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1364\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1363\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1367\",\"attributes\":{\"axis\":{\"id\":\"p1361\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1374\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1368\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"fe03efd2-0a0b-4ce3-9f5a-90c406fa5f3d\",\"roots\":{\"p1399\":\"d92fd716-6984-4efd-bb4b-d53349939d36\"},\"root_ids\":[\"p1399\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { @@ -196,18 +184,11 @@ }, "output_type": "display_data" }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "BokehDeprecationWarning: Passing lists of formats for DatetimeTickFormatter scales was deprecated in Bokeh 3.0. Configure a single string format for each scale\n" - ] - }, { "data": { "text/html": [ "\n", - "
\n" + "
\n" ] }, "metadata": {}, @@ -215,7 +196,7 @@ }, { "data": { - "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"25651bf9-d25c-405d-9b6e-3d9d16db9869\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p1703\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1587\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1588\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1589\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1601\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1603\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1590\",\"attributes\":{\"text\":\"Subscription -- node: test_pong, tid: 18608, topic: /ping\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1640\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1584\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1585\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1586\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M2lK4wZoeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tyVywRn82T8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1641\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1642\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1637\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1638\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1639\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1595\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1619\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1620\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1621\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1622\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1623\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1624\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1625\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1612\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1615\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1613\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1614\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1605\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1608\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1645\"},\"axis_label\":\"start (2025-04-29 07:23)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1607\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1611\",\"attributes\":{\"axis\":{\"id\":\"p1605\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1618\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1612\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1643\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1644\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (PongNode::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p1640\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1647\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1648\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1649\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1661\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1663\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1650\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1700\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1694\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1695\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1696\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JGk3+pgPuL9gByP2CaB4PxDK+ziaI7s/1rFK6Zleyj9Rvwtbs5XTP7clcsEZ/Nk/EEbsE0Ax4D9CeR9Hc2TjP3asUnqml+Y/qN+FrdnK6T8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YAcj9gmgeD8Qyvs4miO7P9axSumZXso/Ub8LW7OV0z+3JXLBGfzZPxBG7BNAMeA/QnkfR3Nk4z92rFJ6ppfmP6jfha3Zyuk/3BK54Az+7D8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1701\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1702\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1697\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1698\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1699\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1655\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1679\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1680\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1681\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1682\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1683\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1684\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1685\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1672\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1675\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1673\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1674\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1665\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1668\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1666\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1667\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1671\",\"attributes\":{\"axis\":{\"id\":\"p1665\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1678\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1672\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"25651bf9-d25c-405d-9b6e-3d9d16db9869\",\"roots\":{\"p1703\":\"ea4462ae-3481-47bf-9434-46b514928904\"},\"root_ids\":[\"p1703\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"fd324d7d-a680-476b-a589-59cb27fc179d\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p1703\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1587\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1589\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1588\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1601\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1603\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1590\",\"attributes\":{\"text\":\"Subscription -- node: processing_node, tid: 93591, topic: /sensor_topic\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1640\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1584\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1585\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1586\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BAAAAAcAAAAKAAAADQAAABAAAAATAAAAFgAAABkAAAAcAAAAHwAAACIAAAAlAAAAKAAAACsAAAAuAAAAMQAAADQAAAA3AAAAOgAAAD0AAABAAAAAQwAAAEYAAABJAAAATAAAAE8AAABSAAAAVQAAAFgAAABbAAAAXgAAAGEAAABkAAAAZwAAAGoAAABtAAAAcAAAAHMAAAB2AAAAeQAAAHwAAAB/AAAAggAAAIUAAACIAAAAiwAAAI4AAACRAAAAlAAAAJcAAAA=\"},\"shape\":[50],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Y46oRloeUJ/0kChGWh5Qs8VR6EZaHlCz1dNoRloeUL6hlOhGWh5QpbJWaEZaHlC+AdgoRloeUK2V2ahGWh5QgKVbKEZaHlC089yoRloeUIXFXmhGWh5Qr5Tf6EZaHlC5YqFoRloeULXx4uhGWh5QpMIkqEZaHlCM02YoRloeULHkZ6hGWh5QrjUpKEZaHlC+AuroRloeUKYRrGhGWh5QnuIt6EZaHlCSsi9oRloeUKBC8ShGWh5Qj1IyqEZaHlCM4fQoRloeULNytahGWh5QkYM3aEZaHlCCEzjoRloeUJqiOmhGWh5QmjH76EZaHlCNQj2oRloeULXR/yhGWh5Qr6XAqIZaHlCFNIIohloeUKJFQ+iGWh5Qp5TFaIZaHlCqJAbohloeUIA0CGiGWh5QggOKKIZaHlC2UwuohloeULXiTSiGWh5Qs/JOqIZaHlCbwpBohloeUKFR0eiGWh5QhmQTaIZaHlCydBTohloeUKyB1qiGWh5Qu5OYKIZaHlCy4lmohloeUI5ymyiGWh5Qg==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4BEVqptLJEDfpj/7kVIkQOZatABtUyRA28AdqFNWJEAsSZ7r+0AkQHI1sistUyRAxy3m54ZOJEB0X85sV1AkQNdrelBQSiRAlgUTfxRVJEBTd2UXDGYkQDzYYrfPSiRA/yH99nVQJED6tfXTf1YkQEwbDksDVyRAEas/wjBIJEBH/8u1aFkkQHqlLEMcYyRAYmcKnddQJEBMqrab4FMkQPZ9OEiISiRAcGHdeHdcJEDfMTz2s0gkQDj0Fg/vUSRAQSlauRdIJEC/79+8OFEkQCf5Eb9iTSRAWybD8XxOJECLOJ1kq0skQCY2H9eGSiRAIApmTMFSJEBEherm4kckQNy93CdHSSRA2XdF8L9FJEDuBtFa0VYkQPvJGB9mXyRArUz4pX5eJEA5KGGm7U8kQEljtI6qRiRAADeLFwtLJEBa1v1jIVIkQFlOQukLSSRAOKClK9hWJEBPPdLgtlYkQFvOpbiqZCRAA5mdRe9MJEAwEtpyLk0kQL5PVaGBSCRA9S1zuixOJEBiFASPb18kQA==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1641\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1642\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1637\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1638\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1639\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1593\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1619\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1620\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1621\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1622\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1623\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1624\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1625\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1612\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1613\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1615\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1614\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1605\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1606\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1645\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1607\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1611\",\"attributes\":{\"axis\":{\"id\":\"p1605\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1618\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1612\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1643\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1644\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"ProcessingNode::ProcessingNode()::{lambda(std::shared_ptr)#1}\"},\"renderers\":[{\"id\":\"p1640\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1647\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1649\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1648\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1661\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1663\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1650\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1700\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1694\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1695\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1696\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAUAAAALAAAABgAAAAsAAAAIAAAAAQAAAAIAAAACAAAAAwAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LEme6/tAJEDKzcu8sEQkQGdS+Y1lSCRABNcmXxpMJECiW1Qwz08kQEDggQGEUyRA3WSv0jhXJEB66dyj7VokQBhuCnWiXiRAtvI3RldiJEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ys3LvLBEJEBnUvmNZUgkQATXJl8aTCRAoltUMM9PJEBA4IEBhFMkQN1kr9I4VyRAeunco+1aJEAYbgp1ol4kQLbyN0ZXYiRAU3dlFwxmJEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1701\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1702\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1697\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1698\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p1699\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1653\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1679\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1680\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1681\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1682\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1683\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1684\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1685\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1672\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1673\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1675\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1674\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1665\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1666\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1668\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1667\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1671\",\"attributes\":{\"axis\":{\"id\":\"p1665\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1678\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1672\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"fd324d7d-a680-476b-a589-59cb27fc179d\",\"roots\":{\"p1703\":\"c40f2c4b-5fb4-4799-9ae9-abebaec6a05c\"},\"root_ids\":[\"p1703\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { @@ -224,6 +205,50 @@ } }, "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"2243e02f-ea83-466e-9726-275f4ffe0c19\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p2032\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1916\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1918\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1917\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1930\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1932\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1919\",\"attributes\":{\"text\":\"Timer -- tid: 93591, period: 100 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1969\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1913\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1914\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1915\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AwAAAAYAAAAJAAAADAAAAA8AAAASAAAAFQAAABgAAAAbAAAAHgAAACEAAAAkAAAAJwAAACoAAAAtAAAAMAAAADMAAAA2AAAAOQAAADwAAAA/AAAAQgAAAEUAAABIAAAASwAAAE4AAABRAAAAVAAAAFcAAABaAAAAXQAAAGAAAABjAAAAZgAAAGkAAABsAAAAbwAAAHIAAAB1AAAAeAAAAHsAAAB+AAAAgQAAAIQAAACHAAAAigAAAI0AAACQAAAAkwAAAJYAAAA=\"},\"shape\":[50],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+ng6oRloeULlvkChGWh5QloCR6EZaHlCi0RNoRloeUIEdFOhGWh5Qs+1WaEZaHlCtPRfoRloeUJzRGahGWh5QqKBbKEZaHlCZrxyoRloeULNAHmhGWh5QlZAf6EZaHlCnneFoRloeULbs4uhGWh5Qt30kaEZaHlCrDqYoRloeULDfZ6hGWh5QjXApKEZaHlCmPiqoRloeUKBM7GhGWh5Qht1t6EZaHlCmLS9oRloeUIp+MOhGWh5QnM0yqEZaHlCFHTQoRloeUKWt9ahGWh5Qvr43KEZaHlCwTjjoRloeUIrdemhGWh5Qq6z76EZaHlCrPT1oRloeUKPNPyhGWh5QlaEAqIZaHlCqL4IohloeUJzAg+iGWh5Qsc/FaIZaHlC9nwbohloeUKwvCGiGWh5Qof6J6IZaHlCmjkuohloeUJGdjSiGWh5Qkq2OqIZaHlCqPZAohloeUIINEeiGWh5Ql58TaIZaHlCBr1TohloeUKw9FmiGWh5Qt87YKIZaHlC2XZmohloeUKctmyiGWh5Qg==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0ZUIVP8gzD/ql4i3zr+1PzhOCvMeZ7Y/U7DG2XQEtD/M1CR4Qxq1P0M9fQT+8Ls/AkuuYvGbtj+tw9FVuru2P1RyTuyhfbw/ABsQIa6cuT//lCpR9pbAPzT2JRsPtrg/Io0KnGwDtz+Z1qaxvRa8P4dT5uYb0bk/3/qw3qgVsj+zDHGsi9uwP9C3BUt1Abc/Gr/wSpLnuj/QDyOERxu3P7WjOEcdHbc/+rSK/tDMtz8t7dRcbjC4P1Tm5hvRPbs/jnObcK/Mtz9O7KF9rOC3P4m2Y+qu7LY/TaJe8GlOtj/jxcIQOX21P86mI4Cbxb8/gQUwZeCAtj+Cyvj3GRe2P9mxEYjX9bc/yorh6gCIuz+ze/KwUGu2P8rBbAIMy7c/Ykm5+xwfuT/WxtgJL8G1P5DAH37+e7g/+py7XS9NtT8fhetRuB65Px/2QgHbwbg/XJIDdjV5uj+WehaE8j62P4BJKlPMQbg/xTcUPlsHtz+5pdWQuMe2P5jg1AeSd7Y/lIYahSSztj/zkCkfgqq5Pw==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1970\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1971\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1966\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1967\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1968\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1922\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1948\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1949\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1950\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1951\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1952\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1953\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1954\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1941\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1942\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1944\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1943\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1934\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1935\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p1974\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1936\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1940\",\"attributes\":{\"axis\":{\"id\":\"p1934\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1947\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1941\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1972\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1973\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"SensorNode::SensorNode()::{lambda()#1}\"},\"renderers\":[{\"id\":\"p1969\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1976\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1978\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1977\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1990\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1992\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1979\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2029\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2023\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2024\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2025\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AwAAAB8AAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"swxxrIvbsD9lqZrFMMy0PxZGxN7VvLg/yOLt93qtvD+9v4sIEE/APxaOIJViR8I/bly1IbU/xD/HKkquBzjGPyD53jpaMMg/eMdzx6woyj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZamaxTDMtD8WRsTe1by4P8ji7fd6rbw/vb+LCBBPwD8WjiCVYkfCP25ctSG1P8Q/xypKrgc4xj8g+d46WjDIP3jHc8esKMo/0ZUIVP8gzD8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2030\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2031\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p2026\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p2027\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p2028\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1982\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2008\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2009\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2010\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2011\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p2012\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2013\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p2014\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2001\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2002\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2004\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2003\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1994\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1995\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1997\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1996\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2000\",\"attributes\":{\"axis\":{\"id\":\"p1994\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2007\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2001\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"2243e02f-ea83-466e-9726-275f4ffe0c19\",\"roots\":{\"p2032\":\"dc4b589f-0fae-42b1-b59f-fd6b82e518d1\"},\"root_ids\":[\"p2032\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p2032" + } + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"6b94ed5e-3b8b-4d19-978c-7af008bac504\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p2386\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2270\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2272\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2271\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2284\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2286\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2273\",\"attributes\":{\"text\":\"Subscription -- node: processing_node, tid: 93591, topic: /parameter_events\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2323\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2267\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2268\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2269\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Co00oRloeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T+j1J/G5Qz8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2324\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2325\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2320\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2321\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2322\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2276\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2302\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2303\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2304\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2305\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p2306\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2307\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p2308\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2295\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2296\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2298\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2297\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2288\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2289\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p2328\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2290\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2294\",\"attributes\":{\"axis\":{\"id\":\"p2288\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2301\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2295\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p2326\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p2327\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (rclcpp::TimeSource::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p2323\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2330\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2332\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2331\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2344\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2346\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2333\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2383\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2377\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2378\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2379\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DAVsByP237+mngWhvI/Zvz84nzpWKdO/sKNxqN+Fyb/IrUm3JXK5vwDo9SfxuUM/cIXpew3BuT+Ej8GKU63JPyguxysQPdM/jpQtknaj2T8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pp4FobyP2b8/OJ86VinTv7Cjcajfhcm/yK1JtyVyub8A6PUn8blDP3CF6XsNwbk/hI/BilOtyT8oLscrED3TP46ULZJ2o9k/ev1JfO4E4D8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2384\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2385\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p2380\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p2381\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p2382\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2336\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2362\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2363\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2364\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2365\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p2366\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2367\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p2368\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2355\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2356\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2358\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2357\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2348\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2349\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2351\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2350\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2354\",\"attributes\":{\"axis\":{\"id\":\"p2348\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2361\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2355\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"6b94ed5e-3b8b-4d19-978c-7af008bac504\",\"roots\":{\"p2386\":\"ef665237-b0c8-4f63-a968-a1462478a1ad\"},\"root_ids\":[\"p2386\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p2386" + } + }, + "output_type": "display_data" } ], "source": [ @@ -254,7 +279,7 @@ " line_color=colours[colour_i],\n", " )\n", " duration.legend.label_text_font_size = '11px'\n", - " duration.xaxis[0].formatter = DatetimeTickFormatter(seconds=['%Ss'])\n", + " duration.xaxis[0].formatter = DatetimeTickFormatter(seconds='%Ss')\n", "\n", " # Histogram\n", " dur_hist, edges = np.histogram(duration_df['duration'])\n", @@ -288,20 +313,11 @@ "execution_count": 7, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "BokehDeprecationWarning: Passing lists of formats for DatetimeTickFormatter scales was deprecated in Bokeh 3.0. Configure a single string format for each scale\n", - "BokehDeprecationWarning: Passing lists of formats for DatetimeTickFormatter scales was deprecated in Bokeh 3.0. Configure a single string format for each scale\n", - "BokehDeprecationWarning: Passing lists of formats for DatetimeTickFormatter scales was deprecated in Bokeh 3.0. Configure a single string format for each scale\n" - ] - }, { "data": { "text/html": [ "\n", - "
\n" + "
\n" ] }, "metadata": {}, @@ -309,12 +325,12 @@ }, { "data": { - "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"b7a14740-117a-4696-8f09-17c93cf01949\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1913\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1914\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1915\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1927\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1929\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1916\",\"attributes\":{\"text\":\"Callback durations\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1969\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1960\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1961\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1962\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RmZK4wZoeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7ded7jzxnD8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1970\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1971\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1966\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1967\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1968\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1985\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1976\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1977\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1978\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LWxK4wZoeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BoAqbtxizj8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1986\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1987\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1982\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1983\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1984\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1999\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1990\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1991\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1992\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M2lK4wZoeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tyVywRn82T8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2000\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2001\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1996\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1997\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1998\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1921\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1945\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1946\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1947\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1948\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1949\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1950\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1951\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1938\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1941\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1939\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1940\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1931\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1934\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p2003\"},\"axis_label\":\"start (2025-04-29 07:23)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1933\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1937\",\"attributes\":{\"axis\":{\"id\":\"p1931\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1944\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1938\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1972\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1973\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (PingNode::?)()\"},\"renderers\":[{\"id\":\"p1969\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1988\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (PingNode::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p1985\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p2002\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (PongNode::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p1999\"}]}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"b7a14740-117a-4696-8f09-17c93cf01949\",\"roots\":{\"p1913\":\"f795de6a-9be7-48a3-9709-f0f44d483dc3\"},\"root_ids\":[\"p1913\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"2ce2bc4a-ece0-46bf-8d75-016a5a27a656\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2646\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2648\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2647\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2660\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2662\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2649\",\"attributes\":{\"text\":\"Callback durations\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2702\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2693\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2694\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2695\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAIAAAA=\"},\"shape\":[2],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yYw0oRloeUK4njShGWh5Qg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lbVN8biodj9WYp6VtOJLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2703\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2704\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2699\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2700\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2701\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2718\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2709\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2710\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2711\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAgAAAALAAAADgAAABEAAAAUAAAAFwAAABoAAAAdAAAAIAAAACMAAAAmAAAAKQAAACwAAAAvAAAAMgAAADUAAAA4AAAAOwAAAD4AAABBAAAARAAAAEcAAABKAAAATQAAAFAAAABTAAAAVgAAAFkAAABcAAAAXwAAAGIAAABlAAAAaAAAAGsAAABuAAAAcQAAAHQAAAB3AAAAegAAAH0AAACAAAAAgwAAAIYAAACJAAAAjAAAAI8AAACSAAAAlQAAAA==\"},\"shape\":[49],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GUQ7oRloeUKFh0GhGWh5QtXKR6EZaHlC4QxOoRloeUKqO1ShGWh5Qsl+WqEZaHlCBr1goRloeULyDGehGWh5QnlJbaEZaHlCSIVzoRloeUJky3mhGWh5QukIgKEZaHlCk0CGoRloeUIjfYyhGWh5Qvi9kqEZaHlCkQGZoRloeUKoRp+hGWh5Qm+KpaEZaHlCDsGroRloeULL+7GhGWh5QoU9uKEZaHlCGX6+oRloeUKwwMShGWh5Qlz9yqEZaHlCFDzRoRloeULwf9ehGWh5QgrB3aEZaHlCbQHkoRloeUJEPeqhGWh5QiV88KEZaHlCbb32oRloeUKw/PyhGWh5QsFMA6IZaHlC2YYJohloeUJxyw+iGWh5QjcJFqIZaHlCQkYcohloeULyhCKiGWh5Qm3DKKIZaHlCmgEvohloeUKJPzWiGWh5Qph+O6IZaHlCor9BohloeUK0/EeiGWh5QkJGTqIZaHlCNYZUohloeUISvVqiGWh5QroDYaIZaHlChz5nohloeUI=\"},\"shape\":[49],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SpUoe0s5sz+XVG03wTexP6nAyTZwB7I/DhXj/E0otD/ue9Rfr7C0P8AhVKnZA7E/XaYmwRvSsD8aMh6lEp6wP/PLYIxIFLI/aHke3J21sz+fILHdPUC3P5peYizTL7E/mdU73A4Nuz/pfk5BfjayPxUCucSRB7I/cCU7NgLxqj9Ot+wQ/7CtP+pYpfRML7U/O6xwy0dStj+H/DOD+MCyP5AuNq0UArE/UIvBw7Rvsj8Lem8MAcC9P2jPZWoSvLE/dQRws3ixsD8G81fIXBm0PztSfecXJbQ/H0yKj0/Itj9gWP58W7C0P4+NQLyuX7A/cJUnEHaKsT9RweEFEamxP4F5yJQPQbU/CyjU00fgsz9kzcggdxGyP6lLxjGSPbI/RML3/gbtsT/JrUm3JXKxPzv8NVmjHrI/zxJkBFQ4tj+5qYHmc+62P2VvKeeLvbM/4XoUrkfhsj+OkewRaoawP4wS9Bd6xLQ/NEqX/iWptD8E4nX9gt24P703hgDg2LM/wF/MlqyKsD8=\"},\"shape\":[49],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2719\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2720\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2715\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2716\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2717\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2732\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2723\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2724\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2725\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BAAAAAcAAAAKAAAADQAAABAAAAATAAAAFgAAABkAAAAcAAAAHwAAACIAAAAlAAAAKAAAACsAAAAuAAAAMQAAADQAAAA3AAAAOgAAAD0AAABAAAAAQwAAAEYAAABJAAAATAAAAE8AAABSAAAAVQAAAFgAAABbAAAAXgAAAGEAAABkAAAAZwAAAGoAAABtAAAAcAAAAHMAAAB2AAAAeQAAAHwAAAB/AAAAggAAAIUAAACIAAAAiwAAAI4AAACRAAAAlAAAAJcAAAA=\"},\"shape\":[50],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Y46oRloeUJ/0kChGWh5Qs8VR6EZaHlCz1dNoRloeUL6hlOhGWh5QpbJWaEZaHlC+AdgoRloeUK2V2ahGWh5QgKVbKEZaHlC089yoRloeUIXFXmhGWh5Qr5Tf6EZaHlC5YqFoRloeULXx4uhGWh5QpMIkqEZaHlCM02YoRloeULHkZ6hGWh5QrjUpKEZaHlC+AuroRloeUKYRrGhGWh5QnuIt6EZaHlCSsi9oRloeUKBC8ShGWh5Qj1IyqEZaHlCM4fQoRloeULNytahGWh5QkYM3aEZaHlCCEzjoRloeUJqiOmhGWh5QmjH76EZaHlCNQj2oRloeULXR/yhGWh5Qr6XAqIZaHlCFNIIohloeUKJFQ+iGWh5Qp5TFaIZaHlCqJAbohloeUIA0CGiGWh5QggOKKIZaHlC2UwuohloeULXiTSiGWh5Qs/JOqIZaHlCbwpBohloeUKFR0eiGWh5QhmQTaIZaHlCydBTohloeUKyB1qiGWh5Qu5OYKIZaHlCy4lmohloeUI5ymyiGWh5Qg==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4BEVqptLJEDfpj/7kVIkQOZatABtUyRA28AdqFNWJEAsSZ7r+0AkQHI1sistUyRAxy3m54ZOJEB0X85sV1AkQNdrelBQSiRAlgUTfxRVJEBTd2UXDGYkQDzYYrfPSiRA/yH99nVQJED6tfXTf1YkQEwbDksDVyRAEas/wjBIJEBH/8u1aFkkQHqlLEMcYyRAYmcKnddQJEBMqrab4FMkQPZ9OEiISiRAcGHdeHdcJEDfMTz2s0gkQDj0Fg/vUSRAQSlauRdIJEC/79+8OFEkQCf5Eb9iTSRAWybD8XxOJECLOJ1kq0skQCY2H9eGSiRAIApmTMFSJEBEherm4kckQNy93CdHSSRA2XdF8L9FJEDuBtFa0VYkQPvJGB9mXyRArUz4pX5eJEA5KGGm7U8kQEljtI6qRiRAADeLFwtLJEBa1v1jIVIkQFlOQukLSSRAOKClK9hWJEBPPdLgtlYkQFvOpbiqZCRAA5mdRe9MJEAwEtpyLk0kQL5PVaGBSCRA9S1zuixOJEBiFASPb18kQA==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2733\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2734\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2729\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2730\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2731\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2746\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2737\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2738\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2739\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AwAAAAYAAAAJAAAADAAAAA8AAAASAAAAFQAAABgAAAAbAAAAHgAAACEAAAAkAAAAJwAAACoAAAAtAAAAMAAAADMAAAA2AAAAOQAAADwAAAA/AAAAQgAAAEUAAABIAAAASwAAAE4AAABRAAAAVAAAAFcAAABaAAAAXQAAAGAAAABjAAAAZgAAAGkAAABsAAAAbwAAAHIAAAB1AAAAeAAAAHsAAAB+AAAAgQAAAIQAAACHAAAAigAAAI0AAACQAAAAkwAAAJYAAAA=\"},\"shape\":[50],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+ng6oRloeULlvkChGWh5QloCR6EZaHlCi0RNoRloeUIEdFOhGWh5Qs+1WaEZaHlCtPRfoRloeUJzRGahGWh5QqKBbKEZaHlCZrxyoRloeULNAHmhGWh5QlZAf6EZaHlCnneFoRloeULbs4uhGWh5Qt30kaEZaHlCrDqYoRloeULDfZ6hGWh5QjXApKEZaHlCmPiqoRloeUKBM7GhGWh5Qht1t6EZaHlCmLS9oRloeUIp+MOhGWh5QnM0yqEZaHlCFHTQoRloeUKWt9ahGWh5Qvr43KEZaHlCwTjjoRloeUIrdemhGWh5Qq6z76EZaHlCrPT1oRloeUKPNPyhGWh5QlaEAqIZaHlCqL4IohloeUJzAg+iGWh5Qsc/FaIZaHlC9nwbohloeUKwvCGiGWh5Qof6J6IZaHlCmjkuohloeUJGdjSiGWh5Qkq2OqIZaHlCqPZAohloeUIINEeiGWh5Ql58TaIZaHlCBr1TohloeUKw9FmiGWh5Qt87YKIZaHlC2XZmohloeUKctmyiGWh5Qg==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0ZUIVP8gzD/ql4i3zr+1PzhOCvMeZ7Y/U7DG2XQEtD/M1CR4Qxq1P0M9fQT+8Ls/AkuuYvGbtj+tw9FVuru2P1RyTuyhfbw/ABsQIa6cuT//lCpR9pbAPzT2JRsPtrg/Io0KnGwDtz+Z1qaxvRa8P4dT5uYb0bk/3/qw3qgVsj+zDHGsi9uwP9C3BUt1Abc/Gr/wSpLnuj/QDyOERxu3P7WjOEcdHbc/+rSK/tDMtz8t7dRcbjC4P1Tm5hvRPbs/jnObcK/Mtz9O7KF9rOC3P4m2Y+qu7LY/TaJe8GlOtj/jxcIQOX21P86mI4Cbxb8/gQUwZeCAtj+Cyvj3GRe2P9mxEYjX9bc/yorh6gCIuz+ze/KwUGu2P8rBbAIMy7c/Ykm5+xwfuT/WxtgJL8G1P5DAH37+e7g/+py7XS9NtT8fhetRuB65Px/2QgHbwbg/XJIDdjV5uj+WehaE8j62P4BJKlPMQbg/xTcUPlsHtz+5pdWQuMe2P5jg1AeSd7Y/lIYahSSztj/zkCkfgqq5Pw==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2747\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2748\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2743\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2744\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2745\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2760\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2751\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2752\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2753\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Co00oRloeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T+j1J/G5Qz8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2761\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2762\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2757\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2758\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p2759\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2652\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2678\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2679\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2680\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2681\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p2682\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2683\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p2684\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2671\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2672\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2674\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2673\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2664\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2665\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p2763\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2666\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2670\",\"attributes\":{\"axis\":{\"id\":\"p2664\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2677\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2671\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p2705\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p2706\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (rclcpp::TimeSource::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p2702\"},{\"id\":\"p2760\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p2721\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"DecisionNode::DecisionNode()::{lambda(std::shared_ptr)#1}\"},\"renderers\":[{\"id\":\"p2718\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p2735\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"ProcessingNode::ProcessingNode()::{lambda(std::shared_ptr)#1}\"},\"renderers\":[{\"id\":\"p2732\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p2749\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"SensorNode::SensorNode()::{lambda()#1}\"},\"renderers\":[{\"id\":\"p2746\"}]}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"2ce2bc4a-ece0-46bf-8d75-016a5a27a656\",\"roots\":{\"p2646\":\"c95958fb-f727-4ad0-a1a2-c3149680669e\"},\"root_ids\":[\"p2646\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { - "id": "p1913" + "id": "p2646" } }, "output_type": "display_data" @@ -352,11 +368,244 @@ " )\n", " colour_i += 1\n", " duration.legend.label_text_font_size = '11px'\n", - " duration.xaxis[0].formatter = DatetimeTickFormatter(seconds=['%Ss'])\n", + " duration.xaxis[0].formatter = DatetimeTickFormatter(seconds='%Ss')\n", "\n", "show(duration)" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Callback Symbol: void (rclcpp::TimeSource::?)(std::shared_ptr)\n", + "Average Duration: 0.00 ms\n", + "Jitter (Standard Deviation): 0.00 ms\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"9daa6617-21c5-4bc7-ab86-8dda52d1861c\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p3230\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3114\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3116\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3115\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3128\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3130\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3117\",\"attributes\":{\"text\":\"Subscription -- node: sensor_node, tid: 93591, topic: /parameter_events | Avg Duration: 0.00 ms | Jitter: 0.00 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3167\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3111\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3112\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3113\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAIAAAA=\"},\"shape\":[2],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yYw0oRloeUK4njShGWh5Qg==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lbVN8biodj9WYp6VtOJLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3168\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3169\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p3164\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p3165\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p3166\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#29788E\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3120\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3146\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3147\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3148\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3149\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p3150\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3151\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p3152\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3139\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3140\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3142\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3141\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3132\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3133\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p3172\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3134\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3138\",\"attributes\":{\"axis\":{\"id\":\"p3132\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3145\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3139\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p3170\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p3171\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (rclcpp::TimeSource::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p3167\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3174\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3176\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3175\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3188\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3190\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3177\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3227\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3221\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3222\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3223\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VmKelbTiSz+vwQzXtJxVPzNSSmMPSF0/XPHD97R5Yj+eueI9Yk9mP+CBAYQPJWo/Ikogyrz6bT8yiR8INehwP1PtLqsL03I/dFE+TuK9dD8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r8EM17ScVT8zUkpjD0hdP1zxw/e0eWI/nrniPWJPZj/ggQGEDyVqPyJKIMq8+m0/MokfCDXocD9T7S6rC9NyP3RRPk7ivXQ/lbVN8biodj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3228\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3229\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p3224\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p3225\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p3226\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#29788E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3180\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3206\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3207\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3208\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3209\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p3210\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3211\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p3212\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3199\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3200\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3202\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3201\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3192\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3193\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3195\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3194\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3198\",\"attributes\":{\"axis\":{\"id\":\"p3192\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3205\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3199\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"9daa6617-21c5-4bc7-ab86-8dda52d1861c\",\"roots\":{\"p3230\":\"c557f6f3-fa91-412a-b687-2ce2399e33cc\"},\"root_ids\":[\"p3230\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p3230" + } + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Callback Symbol: DecisionNode::DecisionNode()::{lambda(std::shared_ptr)#1}\n", + "Average Duration: 0.08 ms\n", + "Jitter (Standard Deviation): 0.01 ms\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"b914aff8-cb62-4e74-931e-36695030f685\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p3666\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3550\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3552\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3551\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3564\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3566\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3553\",\"attributes\":{\"text\":\"Subscription -- node: decision_node, tid: 93591, topic: /processed_topic | Avg Duration: 0.08 ms | Jitter: 0.01 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3603\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3547\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3548\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3549\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQAAAAgAAAALAAAADgAAABEAAAAUAAAAFwAAABoAAAAdAAAAIAAAACMAAAAmAAAAKQAAACwAAAAvAAAAMgAAADUAAAA4AAAAOwAAAD4AAABBAAAARAAAAEcAAABKAAAATQAAAFAAAABTAAAAVgAAAFkAAABcAAAAXwAAAGIAAABlAAAAaAAAAGsAAABuAAAAcQAAAHQAAAB3AAAAegAAAH0AAACAAAAAgwAAAIYAAACJAAAAjAAAAI8AAACSAAAAlQAAAA==\"},\"shape\":[49],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GUQ7oRloeUKFh0GhGWh5QtXKR6EZaHlC4QxOoRloeUKqO1ShGWh5Qsl+WqEZaHlCBr1goRloeULyDGehGWh5QnlJbaEZaHlCSIVzoRloeUJky3mhGWh5QukIgKEZaHlCk0CGoRloeUIjfYyhGWh5Qvi9kqEZaHlCkQGZoRloeUKoRp+hGWh5Qm+KpaEZaHlCDsGroRloeULL+7GhGWh5QoU9uKEZaHlCGX6+oRloeUKwwMShGWh5Qlz9yqEZaHlCFDzRoRloeULwf9ehGWh5QgrB3aEZaHlCbQHkoRloeUJEPeqhGWh5QiV88KEZaHlCbb32oRloeUKw/PyhGWh5QsFMA6IZaHlC2YYJohloeUJxyw+iGWh5QjcJFqIZaHlCQkYcohloeULyhCKiGWh5Qm3DKKIZaHlCmgEvohloeUKJPzWiGWh5Qph+O6IZaHlCor9BohloeUK0/EeiGWh5QkJGTqIZaHlCNYZUohloeUISvVqiGWh5QroDYaIZaHlChz5nohloeUI=\"},\"shape\":[49],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SpUoe0s5sz+XVG03wTexP6nAyTZwB7I/DhXj/E0otD/ue9Rfr7C0P8AhVKnZA7E/XaYmwRvSsD8aMh6lEp6wP/PLYIxIFLI/aHke3J21sz+fILHdPUC3P5peYizTL7E/mdU73A4Nuz/pfk5BfjayPxUCucSRB7I/cCU7NgLxqj9Ot+wQ/7CtP+pYpfRML7U/O6xwy0dStj+H/DOD+MCyP5AuNq0UArE/UIvBw7Rvsj8Lem8MAcC9P2jPZWoSvLE/dQRws3ixsD8G81fIXBm0PztSfecXJbQ/H0yKj0/Itj9gWP58W7C0P4+NQLyuX7A/cJUnEHaKsT9RweEFEamxP4F5yJQPQbU/CyjU00fgsz9kzcggdxGyP6lLxjGSPbI/RML3/gbtsT/JrUm3JXKxPzv8NVmjHrI/zxJkBFQ4tj+5qYHmc+62P2VvKeeLvbM/4XoUrkfhsj+OkewRaoawP4wS9Bd6xLQ/NEqX/iWptD8E4nX9gt24P703hgDg2LM/wF/MlqyKsD8=\"},\"shape\":[49],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3604\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3605\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p3600\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p3601\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p3602\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#DD4968\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3556\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3582\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3583\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3584\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3585\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p3586\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3587\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p3588\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3575\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3576\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3578\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3577\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3568\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3569\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p3608\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3570\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3574\",\"attributes\":{\"axis\":{\"id\":\"p3568\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3581\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3575\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p3606\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p3607\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"DecisionNode::DecisionNode()::{lambda(std::shared_ptr)#1}\"},\"renderers\":[{\"id\":\"p3603\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3610\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3612\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3611\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3624\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3626\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3613\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3663\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3657\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3658\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3659\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgAAAAUAAAARAAAACAAAAAkAAAAEAAAAAgAAAAAAAAABAAAAAQAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cCU7NgLxqj/nhkszgjKuPy/0LRgBurA/6iS2FsFasj+mVT4VgfuzP2KGxhNBnLU/HbdOEgE9tz/Y59YQwd24P5QYXw+Bfro/UEnnDUEfvD8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"54ZLM4Iyrj8v9C0YAbqwP+okthbBWrI/plU+FYH7sz9ihsYTQZy1Px23ThIBPbc/2OfWEMHduD+UGF8PgX66P1BJ5w1BH7w/C3pvDAHAvT8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3664\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3665\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p3660\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p3661\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p3662\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#DD4968\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3616\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3642\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3643\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3644\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3645\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p3646\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3647\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p3648\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3635\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3636\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3638\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3637\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3628\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3629\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3631\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3630\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3634\",\"attributes\":{\"axis\":{\"id\":\"p3628\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3641\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3635\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"b914aff8-cb62-4e74-931e-36695030f685\",\"roots\":{\"p3666\":\"d0f27a71-b3e0-46ea-af73-383d66dcae62\"},\"root_ids\":[\"p3666\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p3666" + } + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Callback Symbol: ProcessingNode::ProcessingNode()::{lambda(std::shared_ptr)#1}\n", + "Average Duration: 10.16 ms\n", + "Jitter (Standard Deviation): 0.02 ms\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"c01d337f-8050-4636-90b3-cdb7bc3ff395\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p4127\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4011\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4013\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4012\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4025\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4027\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4014\",\"attributes\":{\"text\":\"Subscription -- node: processing_node, tid: 93591, topic: /sensor_topic | Avg Duration: 10.16 ms | Jitter: 0.02 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4064\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4008\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4009\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4010\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BAAAAAcAAAAKAAAADQAAABAAAAATAAAAFgAAABkAAAAcAAAAHwAAACIAAAAlAAAAKAAAACsAAAAuAAAAMQAAADQAAAA3AAAAOgAAAD0AAABAAAAAQwAAAEYAAABJAAAATAAAAE8AAABSAAAAVQAAAFgAAABbAAAAXgAAAGEAAABkAAAAZwAAAGoAAABtAAAAcAAAAHMAAAB2AAAAeQAAAHwAAAB/AAAAggAAAIUAAACIAAAAiwAAAI4AAACRAAAAlAAAAJcAAAA=\"},\"shape\":[50],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Y46oRloeUJ/0kChGWh5Qs8VR6EZaHlCz1dNoRloeUL6hlOhGWh5QpbJWaEZaHlC+AdgoRloeUK2V2ahGWh5QgKVbKEZaHlC089yoRloeUIXFXmhGWh5Qr5Tf6EZaHlC5YqFoRloeULXx4uhGWh5QpMIkqEZaHlCM02YoRloeULHkZ6hGWh5QrjUpKEZaHlC+AuroRloeUKYRrGhGWh5QnuIt6EZaHlCSsi9oRloeUKBC8ShGWh5Qj1IyqEZaHlCM4fQoRloeULNytahGWh5QkYM3aEZaHlCCEzjoRloeUJqiOmhGWh5QmjH76EZaHlCNQj2oRloeULXR/yhGWh5Qr6XAqIZaHlCFNIIohloeUKJFQ+iGWh5Qp5TFaIZaHlCqJAbohloeUIA0CGiGWh5QggOKKIZaHlC2UwuohloeULXiTSiGWh5Qs/JOqIZaHlCbwpBohloeUKFR0eiGWh5QhmQTaIZaHlCydBTohloeUKyB1qiGWh5Qu5OYKIZaHlCy4lmohloeUI5ymyiGWh5Qg==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4BEVqptLJEDfpj/7kVIkQOZatABtUyRA28AdqFNWJEAsSZ7r+0AkQHI1sistUyRAxy3m54ZOJEB0X85sV1AkQNdrelBQSiRAlgUTfxRVJEBTd2UXDGYkQDzYYrfPSiRA/yH99nVQJED6tfXTf1YkQEwbDksDVyRAEas/wjBIJEBH/8u1aFkkQHqlLEMcYyRAYmcKnddQJEBMqrab4FMkQPZ9OEiISiRAcGHdeHdcJEDfMTz2s0gkQDj0Fg/vUSRAQSlauRdIJEC/79+8OFEkQCf5Eb9iTSRAWybD8XxOJECLOJ1kq0skQCY2H9eGSiRAIApmTMFSJEBEherm4kckQNy93CdHSSRA2XdF8L9FJEDuBtFa0VYkQPvJGB9mXyRArUz4pX5eJEA5KGGm7U8kQEljtI6qRiRAADeLFwtLJEBa1v1jIVIkQFlOQukLSSRAOKClK9hWJEBPPdLgtlYkQFvOpbiqZCRAA5mdRe9MJEAwEtpyLk0kQL5PVaGBSCRA9S1zuixOJEBiFASPb18kQA==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4065\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4066\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p4061\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p4062\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p4063\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#410967\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4017\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4043\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4044\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4045\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4046\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p4047\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4048\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p4049\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4036\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4037\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4039\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4038\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4029\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4030\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p4069\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4031\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4035\",\"attributes\":{\"axis\":{\"id\":\"p4029\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4042\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4036\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p4067\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p4068\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"ProcessingNode::ProcessingNode()::{lambda(std::shared_ptr)#1}\"},\"renderers\":[{\"id\":\"p4064\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4071\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4073\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4072\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4085\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4087\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4074\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4124\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4118\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4119\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4120\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAAUAAAALAAAABgAAAAsAAAAIAAAAAQAAAAIAAAACAAAAAwAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LEme6/tAJEDKzcu8sEQkQGdS+Y1lSCRABNcmXxpMJECiW1Qwz08kQEDggQGEUyRA3WSv0jhXJEB66dyj7VokQBhuCnWiXiRAtvI3RldiJEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ys3LvLBEJEBnUvmNZUgkQATXJl8aTCRAoltUMM9PJEBA4IEBhFMkQN1kr9I4VyRAeunco+1aJEAYbgp1ol4kQLbyN0ZXYiRAU3dlFwxmJEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4125\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4126\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p4121\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p4122\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p4123\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#410967\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4077\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4103\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4104\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4105\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4106\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p4107\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4108\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p4109\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4096\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4097\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4099\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4098\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4089\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4090\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4092\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4091\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4095\",\"attributes\":{\"axis\":{\"id\":\"p4089\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4102\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4096\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"c01d337f-8050-4636-90b3-cdb7bc3ff395\",\"roots\":{\"p4127\":\"d75d97de-5c59-4137-8f85-540dc9e9e1ae\"},\"root_ids\":[\"p4127\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p4127" + } + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Callback Symbol: SensorNode::SensorNode()::{lambda()#1}\n", + "Average Duration: 0.10 ms\n", + "Jitter (Standard Deviation): 0.02 ms\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"237a3d8d-cb01-43b1-a8cf-816a1edb8911\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p4613\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4497\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4499\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4498\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4511\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4513\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4500\",\"attributes\":{\"text\":\"Timer -- tid: 93591, period: 100 ms | Avg Duration: 0.10 ms | Jitter: 0.02 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4550\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4494\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4495\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4496\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AwAAAAYAAAAJAAAADAAAAA8AAAASAAAAFQAAABgAAAAbAAAAHgAAACEAAAAkAAAAJwAAACoAAAAtAAAAMAAAADMAAAA2AAAAOQAAADwAAAA/AAAAQgAAAEUAAABIAAAASwAAAE4AAABRAAAAVAAAAFcAAABaAAAAXQAAAGAAAABjAAAAZgAAAGkAAABsAAAAbwAAAHIAAAB1AAAAeAAAAHsAAAB+AAAAgQAAAIQAAACHAAAAigAAAI0AAACQAAAAkwAAAJYAAAA=\"},\"shape\":[50],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+ng6oRloeULlvkChGWh5QloCR6EZaHlCi0RNoRloeUIEdFOhGWh5Qs+1WaEZaHlCtPRfoRloeUJzRGahGWh5QqKBbKEZaHlCZrxyoRloeULNAHmhGWh5QlZAf6EZaHlCnneFoRloeULbs4uhGWh5Qt30kaEZaHlCrDqYoRloeULDfZ6hGWh5QjXApKEZaHlCmPiqoRloeUKBM7GhGWh5Qht1t6EZaHlCmLS9oRloeUIp+MOhGWh5QnM0yqEZaHlCFHTQoRloeUKWt9ahGWh5Qvr43KEZaHlCwTjjoRloeUIrdemhGWh5Qq6z76EZaHlCrPT1oRloeUKPNPyhGWh5QlaEAqIZaHlCqL4IohloeUJzAg+iGWh5Qsc/FaIZaHlC9nwbohloeUKwvCGiGWh5Qof6J6IZaHlCmjkuohloeUJGdjSiGWh5Qkq2OqIZaHlCqPZAohloeUIINEeiGWh5Ql58TaIZaHlCBr1TohloeUKw9FmiGWh5Qt87YKIZaHlC2XZmohloeUKctmyiGWh5Qg==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0ZUIVP8gzD/ql4i3zr+1PzhOCvMeZ7Y/U7DG2XQEtD/M1CR4Qxq1P0M9fQT+8Ls/AkuuYvGbtj+tw9FVuru2P1RyTuyhfbw/ABsQIa6cuT//lCpR9pbAPzT2JRsPtrg/Io0KnGwDtz+Z1qaxvRa8P4dT5uYb0bk/3/qw3qgVsj+zDHGsi9uwP9C3BUt1Abc/Gr/wSpLnuj/QDyOERxu3P7WjOEcdHbc/+rSK/tDMtz8t7dRcbjC4P1Tm5hvRPbs/jnObcK/Mtz9O7KF9rOC3P4m2Y+qu7LY/TaJe8GlOtj/jxcIQOX21P86mI4Cbxb8/gQUwZeCAtj+Cyvj3GRe2P9mxEYjX9bc/yorh6gCIuz+ze/KwUGu2P8rBbAIMy7c/Ykm5+xwfuT/WxtgJL8G1P5DAH37+e7g/+py7XS9NtT8fhetRuB65Px/2QgHbwbg/XJIDdjV5uj+WehaE8j62P4BJKlPMQbg/xTcUPlsHtz+5pdWQuMe2P5jg1AeSd7Y/lIYahSSztj/zkCkfgqq5Pw==\"},\"shape\":[50],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4551\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4552\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p4547\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p4548\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p4549\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#44BFC8\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4503\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4529\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4530\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4531\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4532\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p4533\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4534\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p4535\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4522\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4523\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4525\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4524\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4515\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4516\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p4555\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4517\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4521\",\"attributes\":{\"axis\":{\"id\":\"p4515\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4528\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4522\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p4553\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p4554\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"SensorNode::SensorNode()::{lambda()#1}\"},\"renderers\":[{\"id\":\"p4550\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4557\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4559\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4558\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4571\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4573\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4560\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4610\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4604\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4605\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4606\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AwAAAB8AAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"swxxrIvbsD9lqZrFMMy0PxZGxN7VvLg/yOLt93qtvD+9v4sIEE/APxaOIJViR8I/bly1IbU/xD/HKkquBzjGPyD53jpaMMg/eMdzx6woyj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZamaxTDMtD8WRsTe1by4P8ji7fd6rbw/vb+LCBBPwD8WjiCVYkfCP25ctSG1P8Q/xypKrgc4xj8g+d46WjDIP3jHc8esKMo/0ZUIVP8gzD8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4611\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4612\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p4607\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p4608\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p4609\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#44BFC8\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4563\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4589\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4590\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4591\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4592\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p4593\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4594\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p4595\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4582\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4583\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4585\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4584\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4575\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4576\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4578\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4577\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4581\",\"attributes\":{\"axis\":{\"id\":\"p4575\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4588\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4582\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"237a3d8d-cb01-43b1-a8cf-816a1edb8911\",\"roots\":{\"p4613\":\"a5c64d89-effd-4ffb-a279-5d3a4791f0bc\"},\"root_ids\":[\"p4613\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p4613" + } + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Callback Symbol: void (rclcpp::TimeSource::?)(std::shared_ptr)\n", + "Average Duration: 0.00 ms\n", + "Jitter (Standard Deviation): 0.00 ms\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "
\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"62db0233-e7db-4ec8-8c8e-5c3e57454006\":{\"version\":\"3.1.1\",\"title\":\"Bokeh Application\",\"defs\":[],\"roots\":[{\"type\":\"object\",\"name\":\"Row\",\"id\":\"p5124\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5008\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5010\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5009\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5022\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5024\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5011\",\"attributes\":{\"text\":\"Subscription -- node: processing_node, tid: 93591, topic: /parameter_events | Avg Duration: 0.00 ms | Jitter: 0.00 ms\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5061\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5005\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5006\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5007\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQAAAA==\"},\"shape\":[1],\"dtype\":\"int32\",\"order\":\"little\"}],[\"timestamp\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Co00oRloeUI=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}],[\"duration\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T+j1J/G5Qz8=\"},\"shape\":[1],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5062\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5063\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p5058\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p5059\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p5060\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"timestamp\"},\"y\":{\"type\":\"field\",\"field\":\"duration\"},\"line_color\":\"#F76F8E\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5014\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5040\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5041\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5042\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5043\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p5044\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5045\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p5046\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5033\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5034\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5036\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5035\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5026\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5027\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"DatetimeTickFormatter\",\"id\":\"p5066\"},\"axis_label\":\"start (2025-04-29 12:51)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5028\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5032\",\"attributes\":{\"axis\":{\"id\":\"p5026\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5039\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5033\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p5064\",\"attributes\":{\"label_text_font_size\":\"11px\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p5065\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"void (rclcpp::TimeSource::?)(std::shared_ptr)\"},\"renderers\":[{\"id\":\"p5061\"}]}}]}}]}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5068\",\"attributes\":{\"width\":450,\"height\":450,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5070\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5069\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5082\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5084\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5071\",\"attributes\":{\"text\":\"Duration histogram\",\"align\":\"center\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5121\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5115\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5116\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5117\"},\"data\":{\"type\":\"map\",\"entries\":[[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA==\"},\"shape\":[10],\"dtype\":\"int32\",\"order\":\"little\"}],[\"left\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DAVsByP237+mngWhvI/Zvz84nzpWKdO/sKNxqN+Fyb/IrUm3JXK5vwDo9SfxuUM/cIXpew3BuT+Ej8GKU63JPyguxysQPdM/jpQtknaj2T8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"right\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pp4FobyP2b8/OJ86VinTv7Cjcajfhcm/yK1JtyVyub8A6PUn8blDP3CF6XsNwbk/hI/BilOtyT8oLscrED3TP46ULZJ2o9k/ev1JfO4E4D8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5122\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5123\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p5118\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p5119\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Quad\",\"id\":\"p5120\",\"attributes\":{\"left\":{\"type\":\"field\",\"field\":\"left\"},\"right\":{\"type\":\"field\",\"field\":\"right\"},\"bottom\":{\"type\":\"value\",\"value\":0},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#F76F8E\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5074\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5100\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5101\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5102\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5103\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p5104\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5105\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p5106\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5093\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5094\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5096\"},\"axis_label\":\"frequency\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5095\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5086\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5087\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5089\"},\"axis_label\":\"duration (ms)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5088\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5092\",\"attributes\":{\"axis\":{\"id\":\"p5086\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5099\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5093\"}}}]}}]}}],\"callbacks\":{\"type\":\"map\"}}};\n const render_items = [{\"docid\":\"62db0233-e7db-4ec8-8c8e-5c3e57454006\",\"roots\":{\"p5124\":\"cac4ab5f-0897-4ba6-8f29-6c32080fe8b6\"},\"root_ids\":[\"p5124\"]}];\n root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/vnd.bokehjs_exec.v0+json": "" + }, + "metadata": { + "application/vnd.bokehjs_exec.v0+json": { + "id": "p5124" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plot durations separately (with avg and jitter)\n", + "colour_i = 0\n", + "for obj, symbol in callback_symbols.items():\n", + " owner_info = data_util.get_callback_owner_info(obj)\n", + " if owner_info is None:\n", + " owner_info = '[unknown]'\n", + "\n", + " # Duration\n", + " duration_df = data_util.get_callback_durations(obj)\n", + "\n", + " # Calculate average duration and jitter (standard deviation)\n", + " average_duration = duration_df['duration'].mean()\n", + " # If there's more than one data point, calculate jitter (standard deviation)\n", + " if len(duration_df) > 1:\n", + " jitter = duration_df['duration'].std()\n", + " else:\n", + " jitter = 0\n", + "\n", + " # Print average and jitter for each callback\n", + " print(f\"Callback Symbol: {symbol}\")\n", + " print(f\"Average Duration: {average_duration:.2f} ms\")\n", + " print(f\"Jitter (Standard Deviation): {jitter:.2f} ms\")\n", + "\n", + " starttime = duration_df.loc[:, 'timestamp'].iloc[0].strftime('%Y-%m-%d %H:%M')\n", + " source = ColumnDataSource(duration_df)\n", + "\n", + " duration = figure(\n", + " title=f\"{owner_info} | Avg Duration: {average_duration:.2f} ms | Jitter: {jitter:.2f} ms\",\n", + " x_axis_label=f'start ({starttime})',\n", + " y_axis_label='duration (ms)',\n", + " width=psize, height=psize,\n", + " )\n", + " duration.title.align = 'center'\n", + " duration.line(\n", + " x='timestamp',\n", + " y='duration',\n", + " legend_label=str(symbol),\n", + " line_width=2,\n", + " source=source,\n", + " line_color=colours[colour_i],\n", + " )\n", + " duration.legend.label_text_font_size = '11px'\n", + " duration.xaxis[0].formatter = DatetimeTickFormatter(seconds='%Ss')\n", + "\n", + " # Histogram\n", + " dur_hist, edges = np.histogram(duration_df['duration'])\n", + " duration_hist = pd.DataFrame({\n", + " 'duration': dur_hist, \n", + " 'left': edges[:-1], \n", + " 'right': edges[1:],\n", + " })\n", + " hist = figure(\n", + " title='Duration histogram',\n", + " x_axis_label='duration (ms)',\n", + " y_axis_label='frequency',\n", + " width=psize, height=psize,\n", + " )\n", + " hist.title.align = 'center'\n", + " hist.quad(\n", + " bottom=0,\n", + " top=duration_hist['duration'], \n", + " left=duration_hist['left'],\n", + " right=duration_hist['right'],\n", + " fill_color=colours[colour_i],\n", + " line_color=colours[colour_i],\n", + " )\n", + "\n", + " colour_i += 1\n", + " show(row(duration, hist))" + ] + }, { "cell_type": "code", "execution_count": null,