Initial comit

This commit is contained in:
Niels
2025-05-31 09:58:34 +02:00
commit e44717c1f3
40 changed files with 2221 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
var array = [0,0,0,0,0]
var lastSin
var lastCos
var smoothingFactor = 0.9
function smoothout(azi) {
//if (last < azi - 100 || last > azi + 100) array = [azi,azi,azi,azi,azi];
//var tem = data
//Math.atan2(Math.sin(azi),cos(azi)) = azi
lastSin = smoothingFactor * lastSin + (1-smoothingFactor) * Math.sin(azi)
lastCos = smoothingFactor * lastCos + (1-smoothingFactor) * Math.cos(azi)
var azim = Math.atan2(lastSin, lastCos)
console.log(Math.sin(azi)+ " - "+Math.cos(azi))
array.shift()
array.push(azim)
var total = 0,i;
for (i = 0; i < array.length; i += 1) {
total += array[i]
//if (array[i] > 0) total += array[i]; else total -= array[i];
}
//data = tem
// console.log("******** "+ total / array.length+" ---- "+array)
// last = azi
return total / array.length;
}
+134
View File
@@ -0,0 +1,134 @@
var db = undefined;
function settings_db_open() {
if (db == undefined)
db = LocalStorage.openDatabaseSync("harbour-anchor", "1.0", "StorageDatabase", 100000);
return db;
}
/// GAME SETTINGS
function getValue(setting,def) {
var db = settings_db_open();
var res=def;
try {
db.transaction(function(tx) {
var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
if (rs.rows.length > 0) {
res = rs.rows.item(0).value;
} else {
res = def;
}
})
} catch (err) {
console.log("*** getValue ERROR ")
res = def
};
console.log("*** getValue: "+res+" setting: "+setting)
return res
}
// insert anchor in db
function setAnchor(name, description, icon, latitude, longitude) {
var db = settings_db_open();
var res = "";
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS anchors(name TEXT UNIQUE, description TEXT, icon TEXT, latitude REAL, longitude REAL)');
var rs = tx.executeSql('INSERT OR REPLACE INTO anchors VALUES (?,?,?,?,?);', [name, description, icon, latitude, longitude]);
if (rs.rowsAffected > 0) {
res = "OK";
} else {
res = "Error";
}
}
);
return res;
}
function setValue(setting, value) {
var db = settings_db_open();
var res = "";
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)');
var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
if (rs.rowsAffected > 0) {
res = "OK";
} else {
res = "Error";
}
}
);
console.log("*** setValue: "+res+" setting: "+setting+" = "+value)
return res;
}
/// GET ANCHORS
function getAnchors(model) {
model.clear()
var db = settings_db_open();
var res="OK";
try {
db.transaction(function(tx) {
var rs = tx.executeSql('SELECT * FROM anchors;');
for (var i = 0; i < rs.rows.length; i++)
{
model.append({"name" : rs.rows.item(i).name,"description" : rs.rows.item(i).description,"icon" : rs.rows.item(i).icon,"latitude" : rs.rows.item(i).latitude,"longitude" : rs.rows.item(i).longitude})
}
})
} catch (err) {
res = "ERROR"
};
return res
}
function delAnchor(name) {
var db = settings_db_open();
var res = "";
db.transaction(function(tx) {
//tx.executeSql('CREATE TABLE IF NOT EXISTS settings(savegame TEXT UNIQUE, value TEXT)'); //tx.executeSql('DELETE FROM channels WHERE source=?', [source])
var rs = tx.executeSql('DELETE FROM anchors where name=?', [name]);
if (rs.rowsAffected > 0) {
res = "OK";
} else {
res = "Error";
}
}
);
return res;
}
/// LOAD/SAVE GAME
function getSave(setting,def) {
var db = settings_db_open();
var res=def;
try {
db.transaction(function(tx) {
var rs = tx.executeSql('SELECT value FROM savegame WHERE setting=?;', [setting]);
if (rs.rows.length > 0) {
res = rs.rows.item(0).value;
} else {
res = def;
}
})
} catch (err) {
res = def
};
return res
}
function setSave(setting, value) {
var db = settings_db_open();
var res = "";
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS settings(savegame TEXT UNIQUE, value TEXT)');
var rs = tx.executeSql('INSERT OR REPLACE INTO savegame VALUES (?,?);', [setting,value]);
if (rs.rowsAffected > 0) {
res = "OK";
} else {
res = "Error";
}
}
);
return res;
}