mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
Merge pull request #277 from DJ2LS/ls-gui
reduce cpu load and other fixes
This commit is contained in:
commit
a6335fbb99
94
gui/main.js
94
gui/main.js
|
@ -10,12 +10,13 @@ const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const spawn = require('child_process').spawn;
|
const spawn = require('child_process').spawn;
|
||||||
const exec = require('child_process').exec;
|
|
||||||
|
|
||||||
const log = require('electron-log');
|
const log = require('electron-log');
|
||||||
const mainLog = log.scope('main');
|
const mainLog = log.scope('main');
|
||||||
const daemonProcessLog = log.scope('freedata-daemon');
|
const daemonProcessLog = log.scope('freedata-daemon');
|
||||||
const mime = require('mime');
|
const mime = require('mime');
|
||||||
|
const net = require('net');
|
||||||
|
|
||||||
|
|
||||||
const sysInfo = log.scope('system information');
|
const sysInfo = log.scope('system information');
|
||||||
sysInfo.info("SYSTEM INFORMATION ----------------------------- ");
|
sysInfo.info("SYSTEM INFORMATION ----------------------------- ");
|
||||||
|
@ -168,10 +169,26 @@ let data = null;
|
||||||
let logViewer = null;
|
let logViewer = null;
|
||||||
var daemonProcess = null;
|
var daemonProcess = null;
|
||||||
|
|
||||||
|
|
||||||
|
// create a splash screen
|
||||||
|
function createSplashScreen(){
|
||||||
|
splashScreen = new BrowserWindow({
|
||||||
|
height: 250,
|
||||||
|
width: 250,
|
||||||
|
transparent: true,
|
||||||
|
frame: false,
|
||||||
|
alwaysOnTop: true
|
||||||
|
});
|
||||||
|
splashScreen.loadFile('src/splash.html');
|
||||||
|
splashScreen.center();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function createWindow() {
|
function createWindow() {
|
||||||
win = new BrowserWindow({
|
win = new BrowserWindow({
|
||||||
width: config.screen_width,
|
width: config.screen_width,
|
||||||
height: config.screen_height,
|
height: config.screen_height,
|
||||||
|
show: false,
|
||||||
autoHideMenuBar: true,
|
autoHideMenuBar: true,
|
||||||
icon: 'src/img/icon.png',
|
icon: 'src/img/icon.png',
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
|
@ -285,8 +302,19 @@ function createWindow() {
|
||||||
}
|
}
|
||||||
|
|
||||||
app.whenReady().then(() => {
|
app.whenReady().then(() => {
|
||||||
|
|
||||||
|
// show splash screen
|
||||||
|
createSplashScreen();
|
||||||
|
|
||||||
|
// create main window
|
||||||
createWindow();
|
createWindow();
|
||||||
|
|
||||||
|
// wait some time, then close splash screen and show main windows
|
||||||
|
setTimeout(function() {
|
||||||
|
splashScreen.close();
|
||||||
|
win.show();
|
||||||
|
}, 3000);
|
||||||
|
|
||||||
// start daemon by checking os
|
// start daemon by checking os
|
||||||
mainLog.info('Starting freedata-daemon binary');
|
mainLog.info('Starting freedata-daemon binary');
|
||||||
|
|
||||||
|
@ -830,57 +858,31 @@ ipcMain.on('request-stop-rigctld',(event,data)=>{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// CHECK RIGCTLD
|
// CHECK RIGCTLD CONNECTION
|
||||||
ipcMain.on('request-check-rigctld',(data)=>{
|
ipcMain.on('request-check-rigctld',(event, data)=>{
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
try {
|
|
||||||
let Data = {
|
let Data = {
|
||||||
state: "unknown",
|
state: "unknown",
|
||||||
};
|
};
|
||||||
|
|
||||||
isRunning('rigctld', (status) => {
|
var rigctld = new net.Socket();
|
||||||
if (status){
|
rigctld.connect(data.port, data.ip)
|
||||||
Data["state"] = "running";
|
|
||||||
} else {
|
rigctld.on('error', function() {
|
||||||
Data["state"] = "unknown/stopped";
|
|
||||||
}
|
Data["state"] = "unknown/stopped - (" + data.ip + ":" + data.port + ")";
|
||||||
if (win !== null && win !== ''){
|
win.webContents.send('action-check-rigctld', Data);
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
} catch (e) {
|
rigctld.on('connect', function() {
|
||||||
mainLog.error(e)
|
Data["state"] = "connection possible - (" + data.ip + ":" + data.port + ")";
|
||||||
|
win.webContents.send('action-check-rigctld', Data);
|
||||||
|
})
|
||||||
|
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// https://stackoverflow.com/a/51084163
|
|
||||||
// Function for checking if a process is running or not
|
|
||||||
/*
|
|
||||||
isRunning('rigctld', (status) => {
|
|
||||||
if (status){
|
|
||||||
Data["state"] = "running";
|
|
||||||
} else {
|
|
||||||
Data["state"] = "unknown";
|
|
||||||
}
|
|
||||||
win.webContents.send('action-check-rigctld', Data);
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
const isRunning = (query, cb) => {
|
|
||||||
let platform = process.platform;
|
|
||||||
let cmd = '';
|
|
||||||
switch (platform) {
|
|
||||||
case 'win32' : cmd = `tasklist`; break;
|
|
||||||
case 'darwin' : cmd = `ps -ax | grep ${query}`; break;
|
|
||||||
case 'linux' : cmd = `ps -A`; break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
exec(cmd, (err, stdout) => {
|
|
||||||
cb(stdout.toLowerCase().indexOf(query.toLowerCase()) > -1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -174,18 +174,49 @@ window.addEventListener('DOMContentLoaded', () => {
|
||||||
document.getElementById("chatModuleMessage").addEventListener("input", () => {
|
document.getElementById("chatModuleMessage").addEventListener("input", () => {
|
||||||
var textarea = document.getElementById("chatModuleMessage");
|
var textarea = document.getElementById("chatModuleMessage");
|
||||||
var text = textarea.value;
|
var text = textarea.value;
|
||||||
|
|
||||||
|
if(document.getElementById("expand_textarea").checked){
|
||||||
|
var lines = 6
|
||||||
|
} else {
|
||||||
var lines = text.split("\n").length
|
var lines = text.split("\n").length
|
||||||
if (lines >= 10){
|
|
||||||
lines = 10;
|
if (lines >= 6){
|
||||||
|
lines = 6;
|
||||||
}
|
}
|
||||||
var message_container_height_offset = 90 + (23*lines);
|
|
||||||
|
}
|
||||||
|
var message_container_height_offset = 130 + (20*lines);
|
||||||
var message_container_height = `calc(100% - ${message_container_height_offset}px)`;
|
var message_container_height = `calc(100% - ${message_container_height_offset}px)`;
|
||||||
document.getElementById("message-container").style.height = message_container_height;
|
document.getElementById("message-container").style.height = message_container_height;
|
||||||
textarea.rows = lines;
|
textarea.rows = lines;
|
||||||
|
|
||||||
|
console.log(textarea.value)
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
document.getElementById("expand_textarea").addEventListener("click", () => {
|
||||||
|
var textarea = document.getElementById("chatModuleMessage");
|
||||||
|
|
||||||
|
if(document.getElementById("expand_textarea").checked){
|
||||||
|
var lines=6
|
||||||
|
document.getElementById("expand_textarea_button").className = "bi bi-chevron-compact-down";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
var lines=1
|
||||||
|
document.getElementById("expand_textarea_button").className = "bi bi-chevron-compact-up";
|
||||||
|
}
|
||||||
|
|
||||||
|
var message_container_height_offset = 130 + (20*lines);
|
||||||
|
//var message_container_height_offset = 90 + (23*lines);
|
||||||
|
var message_container_height = `calc(100% - ${message_container_height_offset}px)`;
|
||||||
|
document.getElementById("message-container").style.height = message_container_height;
|
||||||
|
textarea.rows = lines;
|
||||||
|
console.log(textarea.rows)
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
// NEW CHAT
|
// NEW CHAT
|
||||||
|
|
||||||
document.getElementById("createNewChatButton").addEventListener("click", () => {
|
document.getElementById("createNewChatButton").addEventListener("click", () => {
|
||||||
|
@ -223,10 +254,12 @@ db.post({
|
||||||
var chatmessage = textarea.value;
|
var chatmessage = textarea.value;
|
||||||
|
|
||||||
// reset textarea size
|
// reset textarea size
|
||||||
var message_container_height_offset = 110;
|
var message_container_height_offset = 150;
|
||||||
var message_container_height = `calc(100% - ${message_container_height_offset}px)`;
|
var message_container_height = `calc(100% - ${message_container_height_offset}px)`;
|
||||||
document.getElementById("message-container").style.height = message_container_height;
|
document.getElementById("message-container").style.height = message_container_height;
|
||||||
textarea.rows = 1
|
textarea.rows = 1
|
||||||
|
document.getElementById("expand_textarea_button").className = "bi bi-chevron-compact-up";
|
||||||
|
document.getElementById("expand_textarea").checked = false;
|
||||||
|
|
||||||
console.log(file);
|
console.log(file);
|
||||||
console.log(filename);
|
console.log(filename);
|
||||||
|
|
|
@ -2306,9 +2306,18 @@ function set_setting_switch(setting_switch, enable_object, state){
|
||||||
|
|
||||||
setInterval(checkRigctld, 500)
|
setInterval(checkRigctld, 500)
|
||||||
function checkRigctld(){
|
function checkRigctld(){
|
||||||
ipcRenderer.send('request-check-rigctld');
|
|
||||||
|
var rigctld_ip = document.getElementById("hamlib_rigctld_ip").value;
|
||||||
|
var rigctld_port = document.getElementById("hamlib_rigctld_port").value;
|
||||||
|
|
||||||
|
let Data = {
|
||||||
|
ip: rigctld_ip,
|
||||||
|
port: rigctld_port
|
||||||
|
};
|
||||||
|
ipcRenderer.send('request-check-rigctld', Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
ipcRenderer.on('action-check-rigctld', (event, data) => {
|
ipcRenderer.on('action-check-rigctld', (event, data) => {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
document.getElementById("hamlib_rigctld_status").value = data["state"];
|
document.getElementById("hamlib_rigctld_status").value = data["state"];
|
||||||
});
|
});
|
||||||
|
|
|
@ -54,11 +54,15 @@
|
||||||
</div>
|
</div>
|
||||||
<hr class="m-0">
|
<hr class="m-0">
|
||||||
<! ------messages area ---------------------------------------------------------------------->
|
<! ------messages area ---------------------------------------------------------------------->
|
||||||
<div class="container overflow-auto" id="message-container" style="height: calc(100% - 110px);">
|
<div class="container overflow-auto" id="message-container" style="height: calc(100% - 150px);">
|
||||||
<div class="tab-content" id="nav-tabContent"> </div>
|
<div class="tab-content" id="nav-tabContent"> </div>
|
||||||
<!--<div class="container position-absolute bottom-0">--></div>
|
<!--<div class="container position-absolute bottom-0">--></div>
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<div class="container-fluid mt-2 p-0">
|
<div class="container-fluid mt-2 p-0">
|
||||||
|
|
||||||
|
<input type="checkbox" id="expand_textarea" class="btn-check" autocomplete="off">
|
||||||
|
<label class="btn d-flex justify-content-center" id="expand_textarea_label" for="expand_textarea"><i id="expand_textarea_button" class="bi bi-chevron-compact-up"></i></label>
|
||||||
|
|
||||||
<div class="input-group bottom-0 w-100">
|
<div class="input-group bottom-0 w-100">
|
||||||
<!--<input class="form-control" maxlength="8" style="max-width: 6rem; text-transform:uppercase; display:none" id="chatModuleDxCall" placeholder="DX CALL"></input>-->
|
<!--<input class="form-control" maxlength="8" style="max-width: 6rem; text-transform:uppercase; display:none" id="chatModuleDxCall" placeholder="DX CALL"></input>-->
|
||||||
<!--<button class="btn btn-sm btn-primary me-2" id="emojipickerbutton" type="button">--><i id="emojipickerbutton" class="bi bi-emoji-smile m-1" style="font-size: 1.5rem; color: grey;"></i><!--</button>-->
|
<!--<button class="btn btn-sm btn-primary me-2" id="emojipickerbutton" type="button">--><i id="emojipickerbutton" class="bi bi-emoji-smile m-1" style="font-size: 1.5rem; color: grey;"></i><!--</button>-->
|
||||||
|
|
10
gui/src/splash.html
Normal file
10
gui/src/splash.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<img src="./img/icon_cube_border.png" width="100%" height="100%">
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -27,4 +27,12 @@ html {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#chatModuleMessage {
|
||||||
|
resize: none;
|
||||||
|
border-radius:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#expand_textarea_label{
|
||||||
|
border: 0;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
Loading…
Reference in a new issue