benchlab-pytools 3.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- benchlab/__init__.py +14 -0
- benchlab/__main__.py +21 -0
- benchlab/config/README.md +325 -0
- benchlab/config/__init__.py +9 -0
- benchlab/config/config_client.py +631 -0
- benchlab/config/config_manager.py +495 -0
- benchlab/config/config_tool.py +358 -0
- benchlab/config/diff.py +163 -0
- benchlab/config/examples/complete_config.json +56 -0
- benchlab/config/examples/rgb_lighting.json +24 -0
- benchlab/config/examples/simple_fan.json +32 -0
- benchlab/config/schema.py +138 -0
- benchlab/core/README.md +154 -0
- benchlab/core/__init__.py +78 -0
- benchlab/core/config.py +145 -0
- benchlab/core/datasource.py +1209 -0
- benchlab/core/datasource_manager.py +418 -0
- benchlab/core/device_registry.py +206 -0
- benchlab/core/discovery.py +92 -0
- benchlab/core/infrastructure.py +309 -0
- benchlab/core/process_manager.py +356 -0
- benchlab/core/retry.py +85 -0
- benchlab/core/shared_serial.py +235 -0
- benchlab/core/statistics.py +224 -0
- benchlab/csv_log/README.md +206 -0
- benchlab/csv_log/__init__.py +5 -0
- benchlab/csv_log/csv_logger_enhanced.py +416 -0
- benchlab/csv_log/message_batcher.py +361 -0
- benchlab/csv_log/requirements.txt +3 -0
- benchlab/csv_log/smart_retry.py +466 -0
- benchlab/graph/README.md +117 -0
- benchlab/graph/__init__.py +5 -0
- benchlab/graph/app.py +353 -0
- benchlab/graph/requirements.txt +2 -0
- benchlab/graph/runner.py +42 -0
- benchlab/graph/ui.py +288 -0
- benchlab/hwinfo/README.md +135 -0
- benchlab/hwinfo/__init__.py +5 -0
- benchlab/hwinfo/hwinfo_export.py +386 -0
- benchlab/hwinfo/requirements.txt +1 -0
- benchlab/launcher.py +387 -0
- benchlab/link/.env.EXAMPLE +10 -0
- benchlab/link/README.md +172 -0
- benchlab/link/__init__.py +1 -0
- benchlab/link/link_main.py +479 -0
- benchlab/main.py +462 -0
- benchlab/menu.py +729 -0
- benchlab/menu_classic.py +410 -0
- benchlab/mqtt/README.md +201 -0
- benchlab/mqtt/__init__.py +5 -0
- benchlab/mqtt/mqtt.config_template +2 -0
- benchlab/mqtt/mqtt_publisher.py +540 -0
- benchlab/mqtt/requirements.txt +3 -0
- benchlab/prefs.py +67 -0
- benchlab/restapi/.env.example +17 -0
- benchlab/restapi/__init__.py +5 -0
- benchlab/restapi/favicon.ico +0 -0
- benchlab/restapi/readme.md +202 -0
- benchlab/restapi/requirements.txt +5 -0
- benchlab/restapi/telemetry_api.py +808 -0
- benchlab/sources.py +515 -0
- benchlab/tools.py +147 -0
- benchlab/tui/README.md +266 -0
- benchlab/tui/__init__.py +5 -0
- benchlab/tui/config.py +477 -0
- benchlab/tui/requirements.txt +2 -0
- benchlab/tui/tui_core.py +1298 -0
- benchlab/tui/tui_main.py +418 -0
- benchlab/vu/README.md +64 -0
- benchlab/vu/VU-Server/NOTICE.md +13 -0
- benchlab/vu/VU-Server/README.md +80 -0
- benchlab/vu/VU-Server/Running_from_source_on_linux.md +97 -0
- benchlab/vu/VU-Server/__init__.py +0 -0
- benchlab/vu/VU-Server/assets/vu1_hello_world.png +0 -0
- benchlab/vu/VU-Server/community_applications.md +13 -0
- benchlab/vu/VU-Server/config.yaml +9 -0
- benchlab/vu/VU-Server/database.py +256 -0
- benchlab/vu/VU-Server/dial_driver.py +534 -0
- benchlab/vu/VU-Server/dials/Comms_Hub_Gauge.py +78 -0
- benchlab/vu/VU-Server/dials/Comms_Hub_Server.py +100 -0
- benchlab/vu/VU-Server/dials/__init__.py +0 -0
- benchlab/vu/VU-Server/dials/base_logger.py +100 -0
- benchlab/vu/VU-Server/installer/inc/icon.ico +0 -0
- benchlab/vu/VU-Server/installer/install.nsi +148 -0
- benchlab/vu/VU-Server/make_version.py +40 -0
- benchlab/vu/VU-Server/pylintrc +628 -0
- benchlab/vu/VU-Server/requirements.txt +9 -0
- benchlab/vu/VU-Server/serial_driver.py +244 -0
- benchlab/vu/VU-Server/server.py +670 -0
- benchlab/vu/VU-Server/server_config.py +255 -0
- benchlab/vu/VU-Server/server_dial_handler.py +334 -0
- benchlab/vu/VU-Server/vu_notifications.py +24 -0
- benchlab/vu/VU-Server/www/android-chrome-192x192.png +0 -0
- benchlab/vu/VU-Server/www/android-chrome-512x512.png +0 -0
- benchlab/vu/VU-Server/www/apple-touch-icon.png +0 -0
- benchlab/vu/VU-Server/www/assets/css/demo.css +291 -0
- benchlab/vu/VU-Server/www/assets/css/demo.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/demo.rtl.css +276 -0
- benchlab/vu/VU-Server/www/assets/css/demo.rtl.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-flags.css +1084 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-flags.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-flags.rtl.css +1084 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-flags.rtl.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-payments.css +528 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-payments.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-payments.rtl.css +528 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-payments.rtl.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-social.css +10 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-social.min.css +8 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-social.rtl.css +10 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-social.rtl.min.css +8 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-vendors.css +1504 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-vendors.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-vendors.rtl.css +1504 -0
- benchlab/vu/VU-Server/www/assets/css/tabler-vendors.rtl.min.css +9 -0
- benchlab/vu/VU-Server/www/assets/css/tabler.css +25813 -0
- benchlab/vu/VU-Server/www/assets/css/tabler.min.css +13 -0
- benchlab/vu/VU-Server/www/assets/css/tabler.rtl.css +25777 -0
- benchlab/vu/VU-Server/www/assets/css/tabler.rtl.min.css +13 -0
- benchlab/vu/VU-Server/www/assets/css/theme.min.css +261 -0
- benchlab/vu/VU-Server/www/assets/img/header.png +0 -0
- benchlab/vu/VU-Server/www/assets/img/logo.png +0 -0
- benchlab/vu/VU-Server/www/assets/js/dark-theme.js +35 -0
- benchlab/vu/VU-Server/www/assets/js/dark-theme.min.js +9 -0
- benchlab/vu/VU-Server/www/assets/js/demo.js +132 -0
- benchlab/vu/VU-Server/www/assets/js/demo.min.js +9 -0
- benchlab/vu/VU-Server/www/assets/js/jquery.min.js +2 -0
- benchlab/vu/VU-Server/www/assets/js/tabler.esm.js +7482 -0
- benchlab/vu/VU-Server/www/assets/js/tabler.esm.min.js +15 -0
- benchlab/vu/VU-Server/www/assets/js/tabler.js +7543 -0
- benchlab/vu/VU-Server/www/assets/js/tabler.min.js +15 -0
- benchlab/vu/VU-Server/www/assets/js/vu1_api.js +68 -0
- benchlab/vu/VU-Server/www/assets/js/vu1_gui_api_key_settings.js +167 -0
- benchlab/vu/VU-Server/www/assets/js/vu1_gui_api_keys.js +138 -0
- benchlab/vu/VU-Server/www/assets/js/vu1_gui_dial.js +179 -0
- benchlab/vu/VU-Server/www/assets/js/vu1_gui_home.js +60 -0
- benchlab/vu/VU-Server/www/assets/js/vu1_gui_root.js +125 -0
- benchlab/vu/VU-Server/www/favicon-16x16.png +0 -0
- benchlab/vu/VU-Server/www/favicon-32x32.png +0 -0
- benchlab/vu/VU-Server/www/favicon.ico +0 -0
- benchlab/vu/VU-Server/www/favicon.png +0 -0
- benchlab/vu/VU-Server/www/index.html +47 -0
- benchlab/vu/VU-Server/www/views/api_keys.html +151 -0
- benchlab/vu/VU-Server/www/views/dial.html +286 -0
- benchlab/vu/VU-Server/www/views/footer.html +27 -0
- benchlab/vu/VU-Server/www/views/header.html +86 -0
- benchlab/vu/VU-Server/www/views/key_settings.html +132 -0
- benchlab/vu/VU-Server/www/views/start.html +124 -0
- benchlab/vu/__init__.py +5 -0
- benchlab/vu/assets/Barlow-Bold.ttf +0 -0
- benchlab/vu/assets/bl_dial_144x200.png +0 -0
- benchlab/vu/assets/bl_logo_144x200.png +0 -0
- benchlab/vu/devices.py +166 -0
- benchlab/vu/requirements.txt +24 -0
- benchlab/vu/sensors.py +18 -0
- benchlab/vu/vu_dial.config_template +90 -0
- benchlab/vu/vu_logo_gen.py +97 -0
- benchlab/vu/vu_server.config_template +5 -0
- benchlab/vu/vu_server_config.py +40 -0
- benchlab/vu/vu_server_manager.py +192 -0
- benchlab/vu/vu_tui.py +919 -0
- benchlab/vu/vu_updater.py +540 -0
- benchlab/wigidash/README.md +182 -0
- benchlab/wigidash/__init__.py +5 -0
- benchlab/wigidash/assets/Inter-Bold.ttf +0 -0
- benchlab/wigidash/assets/Inter.ttf +0 -0
- benchlab/wigidash/assets/benchlab.png +0 -0
- benchlab/wigidash/benchlab_fleet.py +150 -0
- benchlab/wigidash/benchlab_graph.py +517 -0
- benchlab/wigidash/benchlab_overview.py +426 -0
- benchlab/wigidash/benchlab_telemetry.py +105 -0
- benchlab/wigidash/benchlab_ui.py +190 -0
- benchlab/wigidash/benchlab_utils.py +182 -0
- benchlab/wigidash/requirements.txt +9 -0
- benchlab/wigidash/wigidash_device.py +541 -0
- benchlab/wigidash/wigidash_manager.py +342 -0
- benchlab/wigidash/wigidash_session.py +355 -0
- benchlab/wigidash/wigidash_usb.py +247 -0
- benchlab/wigidash/wigidash_widget.py +88 -0
- benchlab_pytools-3.0.0.dist-info/METADATA +239 -0
- benchlab_pytools-3.0.0.dist-info/RECORD +184 -0
- benchlab_pytools-3.0.0.dist-info/WHEEL +4 -0
- benchlab_pytools-3.0.0.dist-info/entry_points.txt +2 -0
- benchlab_pytools-3.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<!-- Page header -->
|
|
2
|
+
<div class="page-header d-print-none">
|
|
3
|
+
<div class="container-xl">
|
|
4
|
+
<div class="row g-2 align-items-center">
|
|
5
|
+
<div class="col">
|
|
6
|
+
<!-- Page pre-title -->
|
|
7
|
+
<div class="page-pretitle">
|
|
8
|
+
Overview
|
|
9
|
+
</div>
|
|
10
|
+
<h2 class="page-title">
|
|
11
|
+
API Keys
|
|
12
|
+
</h2>
|
|
13
|
+
</div>
|
|
14
|
+
<!-- Page title actions -->
|
|
15
|
+
<div class="col-auto ms-auto d-print-none">
|
|
16
|
+
<div class="btn-list">
|
|
17
|
+
<a href="#" class="btn btn-primary d-none d-sm-inline-block" data-bs-toggle="modal" data-bs-target="#createNewKeyModal">
|
|
18
|
+
<!-- Download SVG icon from http://tabler-icons.io/i/plus -->
|
|
19
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 5l0 14" /><path d="M5 12l14 0" /></svg>
|
|
20
|
+
Create new API key
|
|
21
|
+
</a>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
<!-- Page body -->
|
|
30
|
+
<div class="page-body">
|
|
31
|
+
<div class="container-xl">
|
|
32
|
+
<div class="row row-deck row-cards">
|
|
33
|
+
|
|
34
|
+
<div class="col-12">
|
|
35
|
+
<div class="card">
|
|
36
|
+
<div class="card-header">
|
|
37
|
+
<h3 class="card-title">VU1 API Keys</h3>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="table-responsive">
|
|
40
|
+
<table class="table card-table table-vcenter text-nowrap datatable" id="table_api_keys">
|
|
41
|
+
<thead>
|
|
42
|
+
<tr>
|
|
43
|
+
<th class="w-1"></th>
|
|
44
|
+
<th>Key name</th>
|
|
45
|
+
<th>API Key</th>
|
|
46
|
+
<th></th>
|
|
47
|
+
</tr>
|
|
48
|
+
</thead>
|
|
49
|
+
<tbody></tbody>
|
|
50
|
+
</table>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
<!-- Add new profile modal -->
|
|
60
|
+
<div class="modal modal-blur fade" id="createNewKeyModal" tabindex="-1" role="dialog" aria-hidden="true">
|
|
61
|
+
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
|
|
62
|
+
<div class="modal-content">
|
|
63
|
+
<div class="modal-header">
|
|
64
|
+
<h5 class="modal-title">Create new API key</h5>
|
|
65
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="modal-body">
|
|
68
|
+
|
|
69
|
+
<div class="mb-3">
|
|
70
|
+
<label class="form-label">Key Name</label>
|
|
71
|
+
<input type="text" class="form-control" id="modal-new-key-name" name="modal-new-key-name" placeholder="Name the key to recognize it easier">
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<div id="modal-ranges">
|
|
75
|
+
|
|
76
|
+
<div class="mb-3">
|
|
77
|
+
<div class="mb-3" id="modal-select-header">Select one or more dials that this API key will be able to control</div>
|
|
78
|
+
<div class="form-selectgroup" id="modal-dials-list">
|
|
79
|
+
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<div class="mb-3">
|
|
84
|
+
<a href="#" class="btn btn-primary ms-auto" id="modal-select-all">
|
|
85
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-select-all" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
86
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
87
|
+
<path d="M8 8m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z"></path>
|
|
88
|
+
<path d="M12 20v.01"></path>
|
|
89
|
+
<path d="M16 20v.01"></path>
|
|
90
|
+
<path d="M8 20v.01"></path>
|
|
91
|
+
<path d="M4 20v.01"></path>
|
|
92
|
+
<path d="M4 16v.01"></path>
|
|
93
|
+
<path d="M4 12v.01"></path>
|
|
94
|
+
<path d="M4 8v.01"></path>
|
|
95
|
+
<path d="M4 4v.01"></path>
|
|
96
|
+
<path d="M8 4v.01"></path>
|
|
97
|
+
<path d="M12 4v.01"></path>
|
|
98
|
+
<path d="M16 4v.01"></path>
|
|
99
|
+
<path d="M20 4v.01"></path>
|
|
100
|
+
<path d="M20 8v.01"></path>
|
|
101
|
+
<path d="M20 12v.01"></path>
|
|
102
|
+
<path d="M20 16v.01"></path>
|
|
103
|
+
<path d="M20 20v.01"></path>
|
|
104
|
+
</svg>
|
|
105
|
+
Select all dials
|
|
106
|
+
</a>
|
|
107
|
+
|
|
108
|
+
<a href="#" class="btn btn-primary ms-auto" id="modal-deselect-all">
|
|
109
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-deselect" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
110
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
111
|
+
<path d="M12 8h3a1 1 0 0 1 1 1v3"></path>
|
|
112
|
+
<path d="M16 16h-7a1 1 0 0 1 -1 -1v-7"></path>
|
|
113
|
+
<path d="M12 20v.01"></path>
|
|
114
|
+
<path d="M16 20v.01"></path>
|
|
115
|
+
<path d="M8 20v.01"></path>
|
|
116
|
+
<path d="M4 20v.01"></path>
|
|
117
|
+
<path d="M4 16v.01"></path>
|
|
118
|
+
<path d="M4 12v.01"></path>
|
|
119
|
+
<path d="M4 8v.01"></path>
|
|
120
|
+
<path d="M8 4v.01"></path>
|
|
121
|
+
<path d="M12 4v.01"></path>
|
|
122
|
+
<path d="M16 4v.01"></path>
|
|
123
|
+
<path d="M20 4v.01"></path>
|
|
124
|
+
<path d="M20 8v.01"></path>
|
|
125
|
+
<path d="M20 12v.01"></path>
|
|
126
|
+
<path d="M20 16v.01"></path>
|
|
127
|
+
<path d="M3 3l18 18"></path>
|
|
128
|
+
</svg>
|
|
129
|
+
Select none
|
|
130
|
+
</a>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
</div>
|
|
136
|
+
<div class="modal-footer">
|
|
137
|
+
<a href="#" class="btn btn-link link-secondary" data-bs-dismiss="modal">
|
|
138
|
+
Cancel
|
|
139
|
+
</a>
|
|
140
|
+
<a href="#" class="btn btn-primary ms-auto" id="modal-add-new-key">
|
|
141
|
+
<!-- Download SVG icon from http://tabler-icons.io/i/plus -->
|
|
142
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 5l0 14" /><path d="M5 12l14 0" /></svg>
|
|
143
|
+
Create new API key
|
|
144
|
+
</a>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div> <!-- end Add new profile modal -->
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<script src="assets/js/vu1_gui_api_keys.js" defer></script>
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- Page header -->
|
|
3
|
+
<div class="page-header d-print-none">
|
|
4
|
+
<div class="container-xl">
|
|
5
|
+
<div class="row g-2 align-items-center">
|
|
6
|
+
<div class="col">
|
|
7
|
+
<!-- Page pre-title -->
|
|
8
|
+
<div class="page-pretitle">
|
|
9
|
+
Dial
|
|
10
|
+
</div>
|
|
11
|
+
<h2 class="page-title" id="dial-settings">
|
|
12
|
+
Settings
|
|
13
|
+
</h2>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<!-- Page body -->
|
|
21
|
+
<div class="page-body">
|
|
22
|
+
<div class="container-xl">
|
|
23
|
+
<div class="row row-deck row-cards">
|
|
24
|
+
|
|
25
|
+
<!-- Dial information -->
|
|
26
|
+
<div class="col-12">
|
|
27
|
+
<div class="card">
|
|
28
|
+
<div class="card-header">
|
|
29
|
+
<h3 class="card-title" id="dial-title">??</h3>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="card-body">
|
|
32
|
+
|
|
33
|
+
<div class="datagrid">
|
|
34
|
+
<div class="datagrid-item">
|
|
35
|
+
<div class="datagrid-title">Dial Status</div>
|
|
36
|
+
<div class="datagrid-content">
|
|
37
|
+
<span class="status status-green">
|
|
38
|
+
Online
|
|
39
|
+
</span>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="datagrid-item">
|
|
43
|
+
<div class="datagrid-title">Dial UID</div>
|
|
44
|
+
<div class="datagrid-content user-select-all" id="dial-uid">??</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="datagrid-item">
|
|
47
|
+
<div class="datagrid-title">Dial Generation</div>
|
|
48
|
+
<div class="datagrid-content">VU1</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="datagrid-item">
|
|
51
|
+
<div class="datagrid-title">Dial Type</div>
|
|
52
|
+
<div class="datagrid-content" id="dial-type"></div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="datagrid-item">
|
|
55
|
+
<div class="datagrid-title">Firmware Version</div>
|
|
56
|
+
<div class="datagrid-content user-select-all" id="dial-fw-version"></div>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="datagrid-item">
|
|
59
|
+
<div class="datagrid-title">Firmware Build</div>
|
|
60
|
+
<div class="datagrid-content user-select-all" id="dial-fw-build"></div>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="datagrid-item">
|
|
63
|
+
<div class="datagrid-title">Hardware Revision</div>
|
|
64
|
+
<div class="datagrid-content user-select-all" id="dial-hw-version"></div>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="datagrid-item">
|
|
67
|
+
<div class="datagrid-title">Protocol Version</div>
|
|
68
|
+
<div class="datagrid-content user-select-all" id="dial-protocol-version"></div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div class="datagrid-item">
|
|
72
|
+
<div class="datagrid-title">Needle Update Period</div>
|
|
73
|
+
<div class="datagrid-content">Every <span id="dial-easing-period"></span> ms</div>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="datagrid-item">
|
|
76
|
+
<div class="datagrid-title">Max Needle Step Per Period</div>
|
|
77
|
+
<div class="datagrid-content"><span id="dial-easing-step"></span> %</div>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="datagrid-item">
|
|
80
|
+
<div class="datagrid-title">Backlight Update Period</div>
|
|
81
|
+
<div class="datagrid-content">Every <span id="backlight-easing-period"></span> ms</div>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="datagrid-item">
|
|
84
|
+
<div class="datagrid-title">Max Backlight Step Per Period</div>
|
|
85
|
+
<div class="datagrid-content"><span id="backlight-easing-step"></span> %</div>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="datagrid-item">
|
|
88
|
+
<div class="datagrid-title"></div>
|
|
89
|
+
<div class="datagrid-content"></div>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="datagrid-item">
|
|
92
|
+
<div class="datagrid-title"></div>
|
|
93
|
+
<div class="datagrid-content"></div>
|
|
94
|
+
</div>
|
|
95
|
+
<div class="datagrid-item">
|
|
96
|
+
<div class="datagrid-title"></div>
|
|
97
|
+
<div class="datagrid-content"></div>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="datagrid-item">
|
|
100
|
+
<div class="datagrid-title">Re-read FW&HW information</div>
|
|
101
|
+
<div class="datagrid-content" id="dial-reload-container">
|
|
102
|
+
<a href="#" class="btn btn-icon" aria-label="Button" id="dial-reload-info" data-bs-toggle="tooltip" data-bs-placement="top" title="Query the dial for firmware and hardware information. (These values are then cached on the server)">
|
|
103
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-refresh-alert" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
104
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
105
|
+
<path d="M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4"></path>
|
|
106
|
+
<path d="M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"></path>
|
|
107
|
+
<path d="M12 9l0 3"></path>
|
|
108
|
+
<path d="M12 15l.01 0"></path>
|
|
109
|
+
</svg>
|
|
110
|
+
</a>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
</div>
|
|
117
|
+
</div> <!-- Dial information -->
|
|
118
|
+
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
<!-- Dial setting -->
|
|
123
|
+
<div class="col-12">
|
|
124
|
+
<div class="row row-cards">
|
|
125
|
+
|
|
126
|
+
<div class="col-sm-6 col-lg-3">
|
|
127
|
+
<div class="card">
|
|
128
|
+
<div class="card-header">
|
|
129
|
+
<h3 class="card-title">Dial Background</h3>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="card-body">
|
|
132
|
+
<div class="dial-background-container">
|
|
133
|
+
<img id="dial-background-img" width="200" height="144" class="border" />
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
<div class="col-sm-6 col-lg-3">
|
|
141
|
+
<div class="card">
|
|
142
|
+
<div class="card-header">
|
|
143
|
+
<h3 class="card-title">Set dial name</h3>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="card-body">
|
|
146
|
+
|
|
147
|
+
<div class="mb-3">
|
|
148
|
+
<div class="row g-2">
|
|
149
|
+
<div class="col">
|
|
150
|
+
<input type="text" class="form-control" id="new-dial-name" placeholder="New dial name" />
|
|
151
|
+
</div>
|
|
152
|
+
<div class="col-auto">
|
|
153
|
+
<a href="#" class="btn btn-icon" aria-label="Button" id="btn-change-name">
|
|
154
|
+
|
|
155
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-corner-down-left-double" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
156
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
157
|
+
<path d="M19 5v6a3 3 0 0 1 -3 3h-7"></path>
|
|
158
|
+
<path d="M13 10l-4 4l4 4m-5 -8l-4 4l4 4"></path>
|
|
159
|
+
</svg>
|
|
160
|
+
</a>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<div id="dial-name-rules" style="display: none;">
|
|
166
|
+
<p>Dial name should be between 3 and 30 characters long</p>
|
|
167
|
+
<p>It should contain only <br>Letters `A-Z`<br>Numbers `0-9`<br>Dash `-`<br>Underscore `_`<br>Space ` `</p>
|
|
168
|
+
</div>
|
|
169
|
+
|
|
170
|
+
<div id="dial-server-issue" style="display: none;">
|
|
171
|
+
<p>Server reports dial is unavailable. Please check if your dial is connected and restart VU server.</p>
|
|
172
|
+
<p>Sever message: <span id="dial-server-issue-message"></span></p>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<div class="col-sm-6 col-lg-3">
|
|
181
|
+
<div class="card">
|
|
182
|
+
<div class="card-header">
|
|
183
|
+
<h3 class="card-title">Identify dial
|
|
184
|
+
<span class="form-help" data-bs-toggle="popover" data-bs-placement="top" data-bs-html="true" data-bs-title="How does this feaure work?" data-bs-content="<p class='mb-1'>You can use this feature to physically identify which dial you are configuring by setting it's background to red, green, blue or off.</p><p class='mb-1'>Then you can take a look at your dials and confirm which dial you are configuring.</p><p class='mb-1'>p.s. Make sure dial is not being activelly controlled by another application because that will overwrite the effect of these buttons.</p>">?</span>
|
|
185
|
+
</h3>
|
|
186
|
+
|
|
187
|
+
</div>
|
|
188
|
+
<div class="card-body">
|
|
189
|
+
<button type="button" class="btn btn-red vu1-identify-button"
|
|
190
|
+
data-sk-red="100"
|
|
191
|
+
data-sk-green="0"
|
|
192
|
+
data-sk-blue="0"
|
|
193
|
+
data-sk-value="50"
|
|
194
|
+
data-bs-toggle="tooltip"
|
|
195
|
+
data-bs-placement="top"
|
|
196
|
+
title="Dial will be set to 50% and RED background color.">Red</button>
|
|
197
|
+
|
|
198
|
+
<button type="button" class="btn btn-green vu1-identify-button"
|
|
199
|
+
data-sk-red="0"
|
|
200
|
+
data-sk-green="100"
|
|
201
|
+
data-sk-blue="0"
|
|
202
|
+
data-sk-value="50"
|
|
203
|
+
data-bs-toggle="tooltip"
|
|
204
|
+
data-bs-placement="top"
|
|
205
|
+
title="Dial will be set to 50% and GREEN background color.">Green</button>
|
|
206
|
+
|
|
207
|
+
<button type="button" class="btn btn-blue vu1-identify-button"
|
|
208
|
+
data-sk-red="0"
|
|
209
|
+
data-sk-green="0"
|
|
210
|
+
data-sk-blue="100"
|
|
211
|
+
data-sk-value="50"
|
|
212
|
+
data-bs-toggle="tooltip"
|
|
213
|
+
data-bs-placement="top"
|
|
214
|
+
title="Dial will be set to 50% and BLUE background color.">Blue</button>
|
|
215
|
+
|
|
216
|
+
<button type="button" class="btn btn-black vu1-identify-button"
|
|
217
|
+
data-sk-red="0"
|
|
218
|
+
data-sk-green="0"
|
|
219
|
+
data-sk-blue="0"
|
|
220
|
+
data-sk-value="0"
|
|
221
|
+
data-bs-toggle="tooltip"
|
|
222
|
+
data-bs-placement="top"
|
|
223
|
+
title="Dial will be set to 0% and background color will be turned off.">Off</button>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
<!-- <div class="col-sm-6 col-lg-3"></div> -->
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
<div class="col-sm-6 col-lg-3">
|
|
232
|
+
<div class="card">
|
|
233
|
+
<div class="card-header">
|
|
234
|
+
<h3 class="card-title">Dial behaviour
|
|
235
|
+
<span class="form-help"
|
|
236
|
+
data-bs-toggle="popover"
|
|
237
|
+
data-bs-placement="top"
|
|
238
|
+
data-bs-html="true"
|
|
239
|
+
data-bs-title="What is dial 'behaviour'?"
|
|
240
|
+
data-bs-content="<p class='mb-1'>These are presets that configure how fast or slow the needle moves and how fast or slow the background color changes.</p><p class='mb-1'>This affects how responsive or smooth the dial 'feels'.</p><p class='mb-1'>Each application controlling the dial can configure this option with fine grain detail.</p>">?</span>
|
|
241
|
+
</h3>
|
|
242
|
+
|
|
243
|
+
</div>
|
|
244
|
+
<div class="card-body">
|
|
245
|
+
<button type="button" class="btn vu1-behaviour-button"
|
|
246
|
+
data-bs-toggle="tooltip"
|
|
247
|
+
data-bs-placement="top"
|
|
248
|
+
title="Dial is very responsive but it will overshoot or 'oscillate' on large value changes."
|
|
249
|
+
data-sk-dial-period="50"
|
|
250
|
+
data-sk-dial-step="20"
|
|
251
|
+
data-sk-backlight-period="50"
|
|
252
|
+
data-sk-backlight-step="20">Responsive</button>
|
|
253
|
+
|
|
254
|
+
<button type="button" class="btn vu1-behaviour-button"
|
|
255
|
+
data-bs-toggle="tooltip"
|
|
256
|
+
data-bs-placement="top"
|
|
257
|
+
title="Balance between responsive and smooth dial"
|
|
258
|
+
data-sk-dial-period="50"
|
|
259
|
+
data-sk-dial-step="5"
|
|
260
|
+
data-sk-backlight-period="50"
|
|
261
|
+
data-sk-backlight-step="10">Balanced</button>
|
|
262
|
+
|
|
263
|
+
<button type="button" class="btn vu1-behaviour-button"
|
|
264
|
+
data-bs-toggle="tooltip"
|
|
265
|
+
data-bs-placement="top"
|
|
266
|
+
title="Dial is slowly moving to target value with minimum overshot or oscillation."
|
|
267
|
+
data-sk-dial-period="50"
|
|
268
|
+
data-sk-dial-step="1"
|
|
269
|
+
data-sk-backlight-period="50"
|
|
270
|
+
data-sk-backlight-step="5">Smooth</button>
|
|
271
|
+
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
</div> <!-- Card row -->
|
|
278
|
+
</div> <!-- Dial setting -->
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
</div> <!-- Card row -->
|
|
283
|
+
</div> <!-- Container -->
|
|
284
|
+
</div> <!-- Page body -->
|
|
285
|
+
|
|
286
|
+
<script src="assets/js/vu1_gui_dial.js" defer></script>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<footer class="footer footer-transparent d-print-none">
|
|
2
|
+
<div class="container-xl">
|
|
3
|
+
<div class="row text-center align-items-center flex-row-reverse">
|
|
4
|
+
<div class="col-lg-auto ms-lg-auto">
|
|
5
|
+
<ul class="list-inline list-inline-dots mb-0">
|
|
6
|
+
<li class="list-inline-item"><a href="https://vudials.com" target="_blank" class="link-secondary">VU Dials Home</a></li>
|
|
7
|
+
<li class="list-inline-item"><a href="https://docs.vudials.com" target="_blank" class="link-secondary" rel="noopener">Documentation</a></li>
|
|
8
|
+
<li class="list-inline-item"><a href="https://github.com/SasaKaranovic/vu1-server" target="_blank" class="link-secondary" rel="noopener">Source code</a></li>
|
|
9
|
+
</ul>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="col-12 col-lg-auto mt-3 mt-lg-0">
|
|
12
|
+
<ul class="list-inline list-inline-dots mb-0">
|
|
13
|
+
<li class="list-inline-item">
|
|
14
|
+
Copyright © 2024
|
|
15
|
+
<a href="." class="link-secondary">Karanovic Research / Streacom</a>.
|
|
16
|
+
All rights reserved.
|
|
17
|
+
</li>
|
|
18
|
+
<li class="list-inline-item">
|
|
19
|
+
<a href="#" class="link-secondary" rel="noopener">
|
|
20
|
+
v{{VU_VERSION}}
|
|
21
|
+
</a>
|
|
22
|
+
</li>
|
|
23
|
+
</ul>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</footer>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<!-- Navbar -->
|
|
2
|
+
<header class="navbar navbar-expand-md d-print-none" >
|
|
3
|
+
<div class="container-xl">
|
|
4
|
+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-menu" aria-controls="navbar-menu" aria-expanded="false" aria-label="Toggle navigation">
|
|
5
|
+
<span class="navbar-toggler-icon"></span>
|
|
6
|
+
</button>
|
|
7
|
+
<h1 class="navbar-brand navbar-brand-autodark d-none-navbar-horizontal pe-0 pe-md-3">
|
|
8
|
+
<a href=".">
|
|
9
|
+
<img src="assets/img/header.png" width="110" height="32" alt="VU1 API Server" class="navbar-brand-image">
|
|
10
|
+
</a>
|
|
11
|
+
</h1>
|
|
12
|
+
<div class="navbar-nav flex-row order-md-last">
|
|
13
|
+
<div class="nav-item d-none d-md-flex">
|
|
14
|
+
<div class="btn-list">
|
|
15
|
+
|
|
16
|
+
<div class="d-none d-md-flex">
|
|
17
|
+
<a href="?theme=dark" class="nav-link px-0 hide-theme-dark" title="Enable dark mode" data-bs-toggle="tooltip"
|
|
18
|
+
data-bs-placement="bottom">
|
|
19
|
+
<!-- Download SVG icon from http://tabler-icons.io/i/moon -->
|
|
20
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" /></svg>
|
|
21
|
+
</a>
|
|
22
|
+
<a href="?theme=light" class="nav-link px-0 hide-theme-light" title="Enable light mode" data-bs-toggle="tooltip"
|
|
23
|
+
data-bs-placement="bottom">
|
|
24
|
+
<!-- Download SVG icon from http://tabler-icons.io/i/sun -->
|
|
25
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0" /><path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7" /></svg>
|
|
26
|
+
</a>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<a href="https://vudials.com" class="btn" target="_blank" rel="noreferrer">
|
|
30
|
+
<!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->
|
|
31
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /></svg>
|
|
32
|
+
VU1 Home
|
|
33
|
+
</a>
|
|
34
|
+
<a href="https://docs.vudials.com" class="btn" target="_blank" rel="noreferrer">
|
|
35
|
+
<!-- Download SVG icon from http://tabler-icons.io/i/heart -->
|
|
36
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon text-pink" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572" /></svg>
|
|
37
|
+
Documentation
|
|
38
|
+
</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
</div>
|
|
50
|
+
</header>
|
|
51
|
+
|
|
52
|
+
<header class="navbar-expand-md">
|
|
53
|
+
<div class="collapse navbar-collapse" id="navbar-menu">
|
|
54
|
+
<div class="navbar">
|
|
55
|
+
<div class="container-xl">
|
|
56
|
+
<ul class="navbar-nav">
|
|
57
|
+
<li class="nav-item" id="nav-home">
|
|
58
|
+
<a class="nav-link" href="/" >
|
|
59
|
+
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
|
|
60
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l-2 0l9 -9l9 9l-2 0" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg>
|
|
61
|
+
</span>
|
|
62
|
+
<span class="nav-link-title">
|
|
63
|
+
Home
|
|
64
|
+
</span>
|
|
65
|
+
</a>
|
|
66
|
+
</li>
|
|
67
|
+
<li class="nav-item" id="nav-api">
|
|
68
|
+
<a class="nav-link" href="/index.html?page=api_keys" >
|
|
69
|
+
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/ghost -->
|
|
70
|
+
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-key" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
71
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
72
|
+
<path d="M16.555 3.843l3.602 3.602a2.877 2.877 0 0 1 0 4.069l-2.643 2.643a2.877 2.877 0 0 1 -4.069 0l-.301 -.301l-6.558 6.558a2 2 0 0 1 -1.239 .578l-.175 .008h-1.172a1 1 0 0 1 -.993 -.883l-.007 -.117v-1.172a2 2 0 0 1 .467 -1.284l.119 -.13l.414 -.414h2v-2h2v-2l2.144 -2.144l-.301 -.301a2.877 2.877 0 0 1 0 -4.069l2.643 -2.643a2.877 2.877 0 0 1 4.069 0z"></path>
|
|
73
|
+
<path d="M15 9h.01"></path>
|
|
74
|
+
</svg>
|
|
75
|
+
</span>
|
|
76
|
+
<span class="nav-link-title">
|
|
77
|
+
API Keys
|
|
78
|
+
</span>
|
|
79
|
+
</a>
|
|
80
|
+
</li>
|
|
81
|
+
</ul>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</header>
|
|
86
|
+
|