mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first auto updater
This commit is contained in:
parent
e054f849ec
commit
a0a67cd243
4 changed files with 241 additions and 125 deletions
62
gui/main.js
62
gui/main.js
|
@ -155,6 +155,9 @@ function createWindow() {
|
||||||
|
|
||||||
|
|
||||||
win.once('ready-to-show', () => {
|
win.once('ready-to-show', () => {
|
||||||
|
|
||||||
|
autoUpdater.autoInstallOnAppQuit = true;
|
||||||
|
autoUpdater.autoDownload = true;
|
||||||
autoUpdater.checkForUpdatesAndNotify();
|
autoUpdater.checkForUpdatesAndNotify();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -181,11 +184,6 @@ app.whenReady().then(() => {
|
||||||
console.log("Trying to start daemon binary")
|
console.log("Trying to start daemon binary")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(os.platform()=='darwin'){
|
if(os.platform()=='darwin'){
|
||||||
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'daemon'), [],
|
daemonProcess = exec(path.join(process.resourcesPath, 'tnc', 'daemon'), [],
|
||||||
{
|
{
|
||||||
|
@ -236,7 +234,7 @@ app.whenReady().then(() => {
|
||||||
// return process messages
|
// return process messages
|
||||||
|
|
||||||
daemonProcess.on('error', (err) => {
|
daemonProcess.on('error', (err) => {
|
||||||
console.log(err);
|
console.log(`error when starting daemon: ${err}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
daemonProcess.on('message', (data) => {
|
daemonProcess.on('message', (data) => {
|
||||||
|
@ -346,8 +344,54 @@ ipcMain.on('request-update-rx-msg-buffer', (event, arg) => {
|
||||||
|
|
||||||
autoUpdater.on('update-available', () => {
|
autoUpdater.on('update-available', () => {
|
||||||
console.log('update available');
|
console.log('update available');
|
||||||
});
|
let arg = {
|
||||||
autoUpdater.on('update-downloaded', () => {
|
status: "update-available"
|
||||||
console.log('update downloaded');
|
};
|
||||||
|
win.webContents.send('action-updater', arg);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
autoUpdater.on('update-not-available', () => {
|
||||||
|
console.log('update-not-available');
|
||||||
|
let arg = {
|
||||||
|
status: "update-not-available"
|
||||||
|
};
|
||||||
|
win.webContents.send('action-updater', arg);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
autoUpdater.on('update-downloaded', () => {
|
||||||
|
console.log('update downloaded');
|
||||||
|
let arg = {
|
||||||
|
status: "update-downloaded"
|
||||||
|
};
|
||||||
|
win.webContents.send('action-updater', arg);
|
||||||
|
});
|
||||||
|
|
||||||
|
autoUpdater.on('checking-for-update', () => {
|
||||||
|
let arg = {
|
||||||
|
status: "checking-for-update"
|
||||||
|
};
|
||||||
|
win.webContents.send('action-updater', arg);
|
||||||
|
});
|
||||||
|
|
||||||
|
autoUpdater.on('download-progress', (progress) => {
|
||||||
|
let arg = {
|
||||||
|
status: "download-progress",
|
||||||
|
progress: progress
|
||||||
|
};
|
||||||
|
win.webContents.send('action-updater', arg);
|
||||||
|
});
|
||||||
|
|
||||||
|
autoUpdater.on('error', (progress) => {
|
||||||
|
let arg = {
|
||||||
|
status: "error",
|
||||||
|
progress: progress
|
||||||
|
};
|
||||||
|
win.webContents.send('action-updater', arg);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
ipcMain.on('restart_app', () => {
|
||||||
|
autoUpdater.quitAndInstall();
|
||||||
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "FreeDATA",
|
"name": "FreeDATA",
|
||||||
"version": "0.0.1-alpha.1",
|
"version": "0.0.1-alpha",
|
||||||
"description": "FreeDATA ",
|
"description": "FreeDATA ",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1612,3 +1612,65 @@ ipcRenderer.on('run-tnc-command', (event, arg) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
ipcRenderer.on('action-updater', (event, arg) => {
|
||||||
|
|
||||||
|
console.log(arg.status)
|
||||||
|
|
||||||
|
if (arg.status == "download-progress"){
|
||||||
|
var progressinfo = '(' + Math.round(arg.progress.transferred/1024) + 'kB /' + Math.round(arg.progress.total/1024) + 'kB)';
|
||||||
|
document.getElementById("toastUpdateProgressInfo").innerHTML = progressinfo;
|
||||||
|
document.getElementById("toastUpdateProgressSpeed").innerHTML = Math.round(arg.progress.bytesPerSecond/1024) + "kByte/s";
|
||||||
|
|
||||||
|
document.getElementById("toastUpdateProgressBar").setAttribute("aria-valuenow", arg.progress.percent)
|
||||||
|
document.getElementById("toastUpdateProgressBar").setAttribute("style", "width:" + arg.progress.percent + "%;")
|
||||||
|
|
||||||
|
var toast = bootstrap.Toast.getOrCreateInstance(
|
||||||
|
document.getElementById('toastUpdateProgress')
|
||||||
|
); // Returns a Bootstrap toast instance
|
||||||
|
|
||||||
|
|
||||||
|
let showing = document.getElementById("toastUpdateProgress").getAttribute("class").includes("showing");
|
||||||
|
console.log(showing)
|
||||||
|
if(!showing){
|
||||||
|
toast.show();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg.status == "checking-for-update"){
|
||||||
|
var toast = bootstrap.Toast.getOrCreateInstance(
|
||||||
|
document.getElementById('toastUpdateChecking')
|
||||||
|
); // Returns a Bootstrap toast instance
|
||||||
|
toast.show();
|
||||||
|
}
|
||||||
|
if (arg.status == "update-downloaded"){
|
||||||
|
var toast = bootstrap.Toast.getOrCreateInstance(
|
||||||
|
document.getElementById('toastUpdateDownloaded')
|
||||||
|
); // Returns a Bootstrap toast instance
|
||||||
|
toast.show();
|
||||||
|
}
|
||||||
|
if (arg.status == "update-not-available"){
|
||||||
|
var toast = bootstrap.Toast.getOrCreateInstance(
|
||||||
|
document.getElementById('toastUpdateNotAvailable')
|
||||||
|
); // Returns a Bootstrap toast instance
|
||||||
|
toast.show();
|
||||||
|
}
|
||||||
|
if (arg.status == "update-available"){
|
||||||
|
var toast = bootstrap.Toast.getOrCreateInstance(
|
||||||
|
document.getElementById('toastUpdateAvailable')
|
||||||
|
); // Returns a Bootstrap toast instance
|
||||||
|
toast.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg.status == "error"){
|
||||||
|
var toast = bootstrap.Toast.getOrCreateInstance(
|
||||||
|
document.getElementById('toastUpdateNotChecking')
|
||||||
|
); // Returns a Bootstrap toast instance
|
||||||
|
toast.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
<!-- <meta http-equiv="Content-Security-Policy" content="script-src 'self';">-->
|
<!-- <meta http-equiv="Content-Security-Policy" content="script-src 'self';">-->
|
||||||
<!-- Bootstrap CSS -->
|
<!-- Bootstrap CSS -->
|
||||||
<link rel="stylesheet" id="bootstrap_theme" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" id="bootstrap_theme" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
|
||||||
|
|
||||||
|
|
||||||
<!-- Waterfall CSS -->
|
<!-- Waterfall CSS -->
|
||||||
<link rel="stylesheet" type="text/css" href="waterfall/waterfall.css" />
|
<link rel="stylesheet" type="text/css" href="waterfall/waterfall.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="styles.css" />
|
<link rel="stylesheet" type="text/css" href="styles.css" />
|
||||||
|
@ -79,8 +77,6 @@
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
<span data-bs-placement="bottom" data-bs-toggle="tooltip" data-bs-html="true" title="Settings and Info">
|
<span data-bs-placement="bottom" data-bs-toggle="tooltip" data-bs-html="true" title="Settings and Info">
|
||||||
<button type="button" id="infoModalButton" data-bs-toggle="modal" data-bs-target="#infoModal" class="btn btn-sm btn-secondary">
|
<button type="button" id="infoModalButton" data-bs-toggle="modal" data-bs-target="#infoModal" class="btn btn-sm btn-secondary">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-sliders" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-sliders" viewBox="0 0 16 16">
|
||||||
|
@ -88,16 +84,63 @@
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<div id="blurdiv" style="-webkit-Filter: blur(0px)">
|
<div id="blurdiv" style="-webkit-Filter: blur(0px)">
|
||||||
<!--beginn of blur div -->
|
<!--beginn of blur div -->
|
||||||
<!-------------------------------- MAIN AREA ---------------->
|
<!-------------------------------- MAIN AREA ---------------->
|
||||||
|
<!-------------------------------- UPDATE TOASTS ---------------->
|
||||||
|
<div aria-live="polite" aria-atomic="true" class="position-relative" style="z-index: 500">
|
||||||
|
<div class="toast-container position-absolute top-0 start-0 end-0 p-3">
|
||||||
|
<!-- CHECKING FOR UPDATE -->
|
||||||
|
<div class="toast align-items-center text-white bg-secondary border-0" id="toastUpdateChecking" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="d-flex">
|
||||||
|
<div class="toast-body">Checking for update</div>
|
||||||
|
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- DOWNLOAD PROGRESS -->
|
||||||
|
<div class="toast align-items-center bg-white" id="toastUpdateProgress" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="false" data-bs-autohide="false">
|
||||||
|
<!--<div class="d-flex"> -->
|
||||||
|
<div class="toast-header"> <strong class="me-auto">Downloading...</strong>
|
||||||
|
<small><span id="toastUpdateProgressSpeed"></span></small>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body w-100">
|
||||||
|
<div class="progress">
|
||||||
|
<div class="progress-bar" style="width: 75%" role="progressbar" id="toastUpdateProgressBar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"> <span id="toastUpdateProgressInfo"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- DOWNLOADED -->
|
||||||
|
<div class="toast bg-white" role="alert" data-bs-autohide="false" id="toastUpdateDownloaded" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="toast-header"> <strong class="me-auto"> Update ready...</strong>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body">Please restart the app for installation!</div>
|
||||||
|
</div>
|
||||||
|
<!-- UPDATE AVAILABLE -->
|
||||||
|
<div class="toast bg-white" role="alert" data-bs-autohide="true" id="toastUpdateAvailable" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="toast-header"> <strong class="me-auto"> Update available</strong>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body">going to download...</div>
|
||||||
|
</div>
|
||||||
|
<!-- UPDATE NOT AVAILABLE -->
|
||||||
|
<div class="toast align-items-center text-white bg-primary border-0" id="toastUpdateAvailable" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="d-flex">
|
||||||
|
<div class="toast-body">UPDATE NOT AVAILABLE!</div>
|
||||||
|
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- NOT CHECKING FOR UPDATE -->
|
||||||
|
<div class="toast align-items-center text-white bg-primary border-0" id="toastUpdateNotChecking" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="d-flex">
|
||||||
|
<div class="toast-body">We are in a dev environment..</div>
|
||||||
|
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<!-------------------------------- INFO TOASTS ---------------->
|
<!-------------------------------- INFO TOASTS ---------------->
|
||||||
<div aria-live="polite" aria-atomic="true" class="position-relative" style="z-index: 500">
|
<div aria-live="polite" aria-atomic="true" class="position-relative" style="z-index: 500">
|
||||||
<div class="toast-container position-absolute top-0 end-0 p-3">
|
<div class="toast-container position-absolute top-0 end-0 p-3">
|
||||||
|
@ -269,13 +312,10 @@
|
||||||
<input type="radio" class="btn-check" name="radio-control-switch" id="radio-control-switch0" autocomplete="off" checked>
|
<input type="radio" class="btn-check" name="radio-control-switch" id="radio-control-switch0" autocomplete="off" checked>
|
||||||
<label class="btn btn-sm btn-outline-secondary" for="radio-control-switch0">
|
<label class="btn btn-sm btn-outline-secondary" for="radio-control-switch0">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-circle" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-circle" viewBox="0 0 16 16">
|
||||||
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
|
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" />
|
||||||
<path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
|
<path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
|
||||||
<input type="radio" class="btn-check" name="radio-control-switch" id="radio-control-switch1" autocomplete="off" checked>
|
<input type="radio" class="btn-check" name="radio-control-switch" id="radio-control-switch1" autocomplete="off" checked>
|
||||||
<label class="btn btn-sm btn-outline-secondary" for="radio-control-switch1"><strong>direct</strong>
|
<label class="btn btn-sm btn-outline-secondary" for="radio-control-switch1"><strong>direct</strong>
|
||||||
</label>
|
</label>
|
||||||
|
@ -662,12 +702,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="radio-control-rigctld">
|
<div id="radio-control-rigctld">
|
||||||
<div class="input-group input-group-sm mb-1">
|
<div class="input-group input-group-sm mb-1"> <span class="input-group-text" id="basic-addon1">IP</span>
|
||||||
<span class="input-group-text" id="basic-addon1">IP</span>
|
<input type="text" class="form-control" placeholder="rigctld IP" id="hamlib_rigctld_ip" aria-label="Device IP" aria-describedby="basic-addon1"> <span class="input-group-text" id="basic-addon1">:</span>
|
||||||
<input type="text" class="form-control" placeholder="rigctld IP" id="hamlib_rigctld_ip" aria-label="Device IP" aria-describedby="basic-addon1">
|
<input type="text" class="form-control" placeholder="rigctld port" id="hamlib_rigctld_port" aria-label="Device Port" aria-describedby="basic-addon1">
|
||||||
<span class="input-group-text" id="basic-addon1">:</span>
|
|
||||||
<input type="text" class="form-control" placeholder="rigctld port" id="hamlib_rigctld_port" aria-label="Device Port" aria-describedby="basic-addon1">
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -707,11 +744,7 @@
|
||||||
<option value="13">13</option>
|
<option value="13">13</option>
|
||||||
<option value="14">14</option>
|
<option value="14">14</option>
|
||||||
<option value="15">15</option>
|
<option value="15">15</option>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button class="btn btn-success" id="saveMyCall" type="button">
|
<button class="btn btn-success" id="saveMyCall" type="button">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-check2" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-check2" viewBox="0 0 16 16">
|
||||||
<path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z" />
|
<path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z" />
|
||||||
|
@ -748,22 +781,18 @@
|
||||||
</svg> <strong>TNC SETTINGS</strong>
|
</svg> <strong>TNC SETTINGS</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body p-2 mb-1">
|
<div class="card-body p-2 mb-1">
|
||||||
|
|
||||||
<div class="form-check form-switch form-check-inline">
|
<div class="form-check form-switch form-check-inline">
|
||||||
<input class="form-check-input" type="checkbox" id="fftSwitch">
|
<input class="form-check-input" type="checkbox" id="fftSwitch">
|
||||||
<label class="form-check-label" for="fftSwitch">Waterfall</label>
|
<label class="form-check-label" for="fftSwitch">Waterfall</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-check form-switch form-check-inline">
|
<div class="form-check form-switch form-check-inline">
|
||||||
<input class="form-check-input" type="checkbox" id="scatterSwitch">
|
<input class="form-check-input" type="checkbox" id="scatterSwitch">
|
||||||
<label class="form-check-label" for="scatterSwitch">Scatter</label>
|
<label class="form-check-label" for="scatterSwitch">Scatter</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-check form-switch form-check-inline">
|
<div class="form-check form-switch form-check-inline">
|
||||||
<input class="form-check-input" type="checkbox" id="500HzModeSwitch">
|
<input class="form-check-input" type="checkbox" id="500HzModeSwitch">
|
||||||
<label class="form-check-label" for="500HzModeSwitch">500Hz</label>
|
<label class="form-check-label" for="500HzModeSwitch">500Hz</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--<button class="btn btn-secondary btn-sm" id="python_version" type="button" disabled>Python</button>-->
|
<!--<button class="btn btn-secondary btn-sm" id="python_version" type="button" disabled>Python</button>-->
|
||||||
<!--<button class="btn btn-secondary btn-sm" id="node_version" type="button" disabled>Node</button>-->
|
<!--<button class="btn btn-secondary btn-sm" id="node_version" type="button" disabled>Node</button>-->
|
||||||
<!--<button class="btn btn-secondary btn-sm" id="hamlib_version" type="button" disabled>Hamlib</button>-->
|
<!--<button class="btn btn-secondary btn-sm" id="hamlib_version" type="button" disabled>Hamlib</button>-->
|
||||||
|
@ -784,7 +813,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container mt-2 p-0">
|
<div class="container mt-2 p-0">
|
||||||
<div class="row collapse multi-collapse" id="collapseThirdRow">
|
<div class="row collapse multi-collapse" id="collapseThirdRow">
|
||||||
<div class="col-5">
|
<div class="col-5">
|
||||||
|
@ -861,12 +889,7 @@
|
||||||
<label class="btn btn-sm btn-outline-secondary" for="waterfall-scatter-switch2"><strong>SCATTER</strong>
|
<label class="btn btn-sm btn-outline-secondary" for="waterfall-scatter-switch2"><strong>SCATTER</strong>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="btn btn-sm btn-secondary" id="channel_busy" type="button" data-bs-placement="top" data-bs-toggle="tooltip" data-bs-html="true" title="Channel busy state: <strong class='text-success'>not busy</strong> / <strong class='text-danger'>busy </strong>">busy</button>
|
||||||
<button class="btn btn-sm btn-secondary" id="channel_busy" type="button" data-bs-placement="top" data-bs-toggle="tooltip" data-bs-html="true" title="Channel busy state: <strong class='text-success'>not busy</strong> / <strong class='text-danger'>busy </strong>">
|
|
||||||
busy
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body p-1" style="height: 200px">
|
<div class="card-body p-1" style="height: 200px">
|
||||||
<!--278px-->
|
<!--278px-->
|
||||||
|
@ -1011,7 +1034,7 @@
|
||||||
<div class="card-body p-2">
|
<div class="card-body p-2">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="input-group input-group-sm"> <span class="input-group-text" id="basic-addon1" >Mode</span>
|
<div class="input-group input-group-sm"> <span class="input-group-text" id="basic-addon1">Mode</span>
|
||||||
<select class="form-select form-select-sm" aria-label=".form-select-sm" id="datamode" disabled>
|
<select class="form-select form-select-sm" aria-label=".form-select-sm" id="datamode" disabled>
|
||||||
<option selected value="255">AUTO</option>
|
<option selected value="255">AUTO</option>
|
||||||
<!--<option value="232">HIGH SNR (DC1)</option>-->
|
<!--<option value="232">HIGH SNR (DC1)</option>-->
|
||||||
|
@ -1039,7 +1062,7 @@
|
||||||
<button type="button" id="startTransmission" data-bs-dismiss="offcanvas" class="btn btn-success" style="width:100%">START TRANSMISSION</button>
|
<button type="button" id="startTransmission" data-bs-dismiss="offcanvas" class="btn btn-success" style="width:100%">START TRANSMISSION</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-auto">
|
<div class="col-md-auto">
|
||||||
<button type="button" id="stopTransmission" class="btn btn-danger" style="width:100%" >STOP</button>
|
<button type="button" id="stopTransmission" class="btn btn-danger" style="width:100%">STOP</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
|
@ -1123,14 +1146,12 @@
|
||||||
<!-- chart.js -->
|
<!-- chart.js -->
|
||||||
<script src="../node_modules/chart.js/dist/chart.min.js"></script>
|
<script src="../node_modules/chart.js/dist/chart.min.js"></script>
|
||||||
<script src="../node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.min.js"></script>
|
<script src="../node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.min.js"></script>
|
||||||
|
|
||||||
<!--<script src="../ui.js"></script>-->
|
<!--<script src="../ui.js"></script>-->
|
||||||
<!-- WATERFALL -->
|
<!-- WATERFALL -->
|
||||||
<script src="waterfall/colormap.js"></script>
|
<script src="waterfall/colormap.js"></script>
|
||||||
<script src="waterfall/spectrum.js"></script>
|
<script src="waterfall/spectrum.js"></script>
|
||||||
<script src="waterfall/spectrogram.js"></script>
|
<script src="waterfall/spectrogram.js"></script>
|
||||||
<!--<script src="waterfall/script.js"></script>-->
|
<!--<script src="waterfall/script.js"></script>-->
|
||||||
|
|
||||||
<!-- INFO MODAL -->
|
<!-- INFO MODAL -->
|
||||||
<div class="modal fade" data-bs-backdrop="static" tabindex="-1" id="infoModal">
|
<div class="modal fade" data-bs-backdrop="static" tabindex="-1" id="infoModal">
|
||||||
<div class="modal-dialog modal-dialog-scrollable">
|
<div class="modal-dialog modal-dialog-scrollable">
|
||||||
|
@ -1140,13 +1161,8 @@
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<div class="input-group input-group-sm mb-1"> <span class="input-group-text" id="basic-addon1">Theme</span>
|
||||||
|
|
||||||
|
|
||||||
<div class="input-group input-group-sm mb-1">
|
|
||||||
<span class="input-group-text" id="basic-addon1">Theme</span>
|
|
||||||
<select class="form-select form-select-sm" aria-label=".form-select-sm" id="theme_selector">
|
<select class="form-select form-select-sm" aria-label=".form-select-sm" id="theme_selector">
|
||||||
|
|
||||||
<option value="default">Default</option>
|
<option value="default">Default</option>
|
||||||
<option value="cerulean">Cerulean</option>
|
<option value="cerulean">Cerulean</option>
|
||||||
<option value="cosmo">Cosmo</option>
|
<option value="cosmo">Cosmo</option>
|
||||||
|
@ -1173,14 +1189,8 @@
|
||||||
<option value="vapor">Vapor</option>
|
<option value="vapor">Vapor</option>
|
||||||
<option value="yeti">Yeti</option>
|
<option value="yeti">Yeti</option>
|
||||||
<option value="zephyr">Zephyr</option>
|
<option value="zephyr">Zephyr</option>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue