diff --git a/index.js b/index.js
index c6eae03..659856e 100644
--- a/index.js
+++ b/index.js
@@ -138,6 +138,7 @@ function connectToXdrd() {
}
if (authFlags.authMsg && authFlags.firstClient) {
+ client.write('x\n');
client.write('T87500\n');
client.write('A0\n');
client.write('G00\n');
@@ -223,9 +224,13 @@ app.get('/static_data', (req, res) => {
});
app.get('/server_time', (req, res) => {
- const serverTime = new Date().toISOString();
+ /*const serverTime = new Date().toISOString(); // Get server time in ISO format
+ const serverTimezoneOffset = new Date().getTimezoneOffset(); // Get server timezone offset in minutes*/
+
+ const serverTime = new Date(); // Get current server time
+ const serverTimeUTC = new Date(serverTime.getTime() - (serverTime.getTimezoneOffset() * 60000)); // Adjust server time to UTC
res.json({
- serverTime
+ serverTime: serverTimeUTC,
});
});
@@ -430,11 +435,15 @@ wss.on('connection', (ws, request) => {
httpServer.on('upgrade', (request, socket, head) => {
- sessionMiddleware(request, {}, () => {
- wss.handleUpgrade(request, socket, head, (ws) => {
- wss.emit('connection', ws, request);
+ if (request.url === '/text') {
+ sessionMiddleware(request, {}, () => {
+ wss.handleUpgrade(request, socket, head, (ws) => {
+ wss.emit('connection', ws, request);
+ });
});
- });
+ } else {
+ socket.destroy();
+ }
});
/* Serving of HTML files */
diff --git a/web/index.ejs b/web/index.ejs
index 46002dc..4430f20 100644
--- a/web/index.ejs
+++ b/web/index.ejs
@@ -13,7 +13,9 @@
-
+
+
+
diff --git a/web/js/3las/fallback/3las.formatreader.js b/web/js/3las/fallback/3las.formatreader.js
index d998d3b..6017421 100644
--- a/web/js/3las/fallback/3las.formatreader.js
+++ b/web/js/3las/fallback/3las.formatreader.js
@@ -150,7 +150,7 @@ var AudioFormatReader = /** @class */ (function () {
// Theoretical minimum is 2.
// Recommended value is 3 or higher.
if (isAndroid)
- settings["mpeg"]["MinDecodeFrames"] = 17;
+ settings["mpeg"]["MinDecodeFrames"] = 3;
else
settings["mpeg"]["MinDecodeFrames"] = 3;
return settings;
diff --git a/web/js/init.js b/web/js/init.js
new file mode 100644
index 0000000..b2b73f2
--- /dev/null
+++ b/web/js/init.js
@@ -0,0 +1,18 @@
+getInitialSettings();
+
+function getInitialSettings() {
+ $.ajax({
+ url: './static_data',
+ dataType: 'json',
+ success: function (data) {
+ // Use the received data (data.qthLatitude, data.qthLongitude) as needed
+ localStorage.setItem('qthLatitude', data.qthLatitude);
+ localStorage.setItem('qthLongitude', data.qthLongitude);
+ localStorage.setItem('audioPort', data.audioPort);
+ localStorage.setItem('streamEnabled', data.streamEnabled);
+ },
+ error: function (error) {
+ console.error('Error:', error);
+ }
+ });
+}
\ No newline at end of file
diff --git a/web/js/main.js b/web/js/main.js
index 9a16824..8f3dff3 100644
--- a/web/js/main.js
+++ b/web/js/main.js
@@ -24,7 +24,6 @@ $(document).ready(function () {
canvas.width = canvas.parentElement.clientWidth;
canvas.height = canvas.parentElement.clientHeight;
- getInitialSettings();
// Start updating the canvas
initCanvas();
@@ -156,47 +155,45 @@ $(document).ready(function () {
});
});
-function getInitialSettings() {
- $.ajax({
- url: './static_data',
- dataType: 'json',
- success: function (data) {
- // Use the received data (data.qthLatitude, data.qthLongitude) as needed
- localStorage.setItem('qthLatitude', data.qthLatitude);
- localStorage.setItem('qthLongitude', data.qthLongitude);
- localStorage.setItem('audioPort', data.audioPort);
- localStorage.setItem('streamEnabled', data.streamEnabled);
- },
- error: function (error) {
- console.error('Error:', error);
- }
- });
-}
-
-function getLocalizedTime(serverTime) {
- const serverDate = new Date(serverTime);
-
- // Format server time using options for local time formatting
- const options = { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', hour12: false };
- const formattedServerTime = serverDate.toLocaleString(navigator.language ? navigator.language : 'en-US', options);
-
- return formattedServerTime;
-}
-
function getServerTime() {
$.ajax({
- url: './server_time',
- dataType: 'json',
- success: function (data) {
- $('#server-time').text(getLocalizedTime(data.serverTime));
- $('#client-time').text(getLocalizedTime(new Date()));
- },
- error: function (error) {
- console.error('Error:', error);
- }
+ url: "/server_time",
+ dataType: "json",
+ success: function(data) {
+ const serverTimeUtc = data.serverTime;
+
+ const options = {
+ year: 'numeric',
+ month: 'short',
+ day: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ hour12: false
+ };
+
+ const serverOptions = {
+ ...options,
+ timeZone: 'Etc/UTC' // Add timeZone only for server time
+ };
+
+ const formattedServerTime = new Date(serverTimeUtc).toLocaleString(navigator.language ? navigator.language : 'en-US', serverOptions);
+
+ $("#server-time").text(formattedServerTime);
+
+ // Get and format user's local time directly without specifying timeZone:
+ const localTime = new Date();
+ const formattedLocalTime = new Date(localTime).toLocaleString(navigator.language ? navigator.language : 'en-US', options);
+
+ // Display client time:
+ $("#client-time").text(formattedLocalTime);
+ },
+ error: function(jqXHR, textStatus, errorThrown) {
+ console.error("Error fetching server time:", errorThrown);
+ // Handle error gracefully (e.g., display a fallback message)
+ }
});
-}
-
+ }
+
function sendPingRequest() {
const startTime = new Date().getTime();
@@ -596,7 +593,6 @@ function updateDataElements(parsedData) {
$('.data-st').html("ST");
}
}
- console.log(parsedData.st, parsedData.st_forced);
$('#data-rt0').html(processString(parsedData.rt0, parsedData.rt0_errors));
$('#data-rt1').html(processString(parsedData.rt1, parsedData.rt1_errors));