diff --git a/sd-card/html/common.js b/sd-card/html/common.js
index ba170dee..3c73bb51 100644
--- a/sd-card/html/common.js
+++ b/sd-card/html/common.js
@@ -1,7 +1,7 @@
/* The UI can also be run locally, but you have to set the IP of your devide accordingly.
* And you also might have to disable CORS in your webbrowser! */
-var domainname_for_testing = "192.168.178.62";
+var domainname_for_testing = "192.168.1.153";
diff --git a/sd-card/html/edit_analog.html b/sd-card/html/edit_analog.html
index 3c104131..a30bb2a5 100644
--- a/sd-card/html/edit_analog.html
+++ b/sd-card/html/edit_analog.html
@@ -85,9 +85,6 @@ th, td {
Number:
@@ -105,8 +102,6 @@ th, td {
@@ -120,16 +115,16 @@ th, td {
x:
Δx:
-
+
y:
Δy:
-
+
-
+
@@ -159,8 +154,8 @@ th, td {
cofcat,
param,
enhanceCon = false;
- lockAR = true;
- lockSizes = true;
+ lockAspectRatio = true;
+ lockSizes = false;
domainname = getDomainname();
@@ -222,6 +217,7 @@ function deleteROI(){
aktindex = ROIInfo.length - 1;
}
UpdateROIs();
+ draw();
}
function newROI(){
@@ -259,12 +255,13 @@ function moveNext(){
UpdateROIs();
}
-function changelockAR(){
- lockAR = document.getElementById("lockAR").checked;
+function changelockAspectRatio(){
+ lockAspectRatio = document.getElementById("lockAspectRatio").checked;
}
function changelockSizes(){
lockSizes = document.getElementById("lockSizes").checked;
+ UpdateROIs();
}
function changeCCW(){
@@ -283,7 +280,7 @@ function changeCCW(){
function ChangeSelection(){
aktindex = parseInt(document.getElementById("index").value);
-// lockAR = true;
+// lockAspectRatio = true;
UpdateROIs();
}
@@ -317,6 +314,7 @@ function UpdateROIs(_sel){
document.getElementById("newROI").disabled = false;
document.getElementById("deleteROI").disabled = true;
document.getElementById("index").disabled = true;
+ document.getElementById("saveroi").disabled = true;
document.getElementById("renameROI").disabled = true;
document.getElementById("moveNext").disabled = true;
document.getElementById("movePrevious").disabled = true;
@@ -361,7 +359,7 @@ function UpdateROIs(_sel){
document.getElementById("moveNext").disabled = true;
}
- document.getElementById("lockAR").checked = lockAR;
+ document.getElementById("lockAspectRatio").checked = lockAspectRatio;
document.getElementById("lockSizes").checked = lockSizes;
document.getElementById("refx").value = ROIInfo[aktindex]["x"];
@@ -419,6 +417,29 @@ function UpdateROIs(_sel){
param = getConfigParameters();
cofcat = getConfigCategory();
UpdateNUMBERS();
+
+ /* Check if the ROIs have same dy and dx. If so, tick the sync checkbox */
+ var all_dx_dy_Identical = true;
+ if (ROIInfo.length > 1) {
+ for (var i = 1; i < (ROIInfo.length); ++i) { // 2nd .. last ROI
+ if (parseInt(ROIInfo[i].dx) != parseInt(ROIInfo[0].dx) ||
+ parseInt(ROIInfo[i].dy) != parseInt(ROIInfo[0].dy)) {
+ all_dx_dy_Identical = false;
+ break;
+ }
+ }
+ }
+
+ if (all_dx_dy_Identical) {
+ lockSizes = true;
+ console.log("All ROI have the same dX and dY, ticking the sync checkbox!");
+ document.getElementById("lockSizes").checked = lockSizes;
+ }
+ else {
+ console.log("Not all ROI have the same dX and dY, unticking the sync checkbox!");
+ }
+
+
drawImage();
draw();
}
@@ -510,11 +531,17 @@ function drawTextBG(context, txt, x, y, padding) {
if (typeof ROIInfo === 'undefined') { // During init, ROIInfo is not defined yet
return;
}
+
+
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
context.drawImage(imageObj, 0, 0);
+ if (ROIInfo.length == 0) {
+ return;
+ }
+
context.font = "15px Arial";
context.fillStyle = "red";
context.textAlign = "center";
@@ -540,7 +567,7 @@ function drawTextBG(context, txt, x, y, padding) {
{
if (_nb != _number)
{
- lw = 1;
+ lw = 2;
context.lineWidth = lw;
context.strokeStyle = "#990000";
var x0 = parseInt(ROIInfo[_nb].x) - parseInt(lw/2);
@@ -549,12 +576,24 @@ function drawTextBG(context, txt, x, y, padding) {
var dy = parseInt(ROIInfo[_nb].dy) + parseInt(lw);
context.strokeRect(x0, y0, dx, dy);
drawTextBG(context, ROIInfo[_nb]["name"], x0+dx/2-0.5, y0-13, 5);
+
+ lw = 1;
+ var x0 = parseInt(ROIInfo[_nb].x) - parseInt(lw/2);
+ var y0 = parseInt(ROIInfo[_nb].y) - parseInt(lw/2);
+ var dx = parseInt(ROIInfo[_nb].dx) + parseInt(lw);
+ var dy = parseInt(ROIInfo[_nb].dy) + parseInt(lw);
+ context.strokeRect(x0, y0, dx, dy);
+ context.lineWidth = lw;
+ context.beginPath();
+ context.arc(x0+dx/2, y0+dy/2, dx/2, 0, 2 * Math.PI);
+ context.moveTo(x0+dx/2, y0);
+ context.lineTo(x0+dx/2, y0+dy);
+ context.moveTo(x0, y0+dy/2);
+ context.lineTo(x0+dx, y0+dy/2);
+ context.stroke();
}
-
}
-
-
lw = 4
context.lineWidth = lw;
context.strokeStyle = "#FF0000";
@@ -622,7 +661,7 @@ function drawTextBG(context, txt, x, y, padding) {
zw = getCoords(this)
- if (lockAR) {
+ if (lockAspectRatio) {
rect.h = (e.pageY - zw.top) - rect.startY;
rect.w = Math.round(rect.h * ROIInfo[aktindex]["ar"]); }
else {
@@ -657,7 +696,7 @@ function drawTextBG(context, txt, x, y, padding) {
if (!drag) {
rect.w = document.getElementById("refdx").value;
rect.h = document.getElementById("refdy").value;
- if (lockAR) {
+ if (lockAspectRatio) {
rect.w = Math.round(rect.h * ROIInfo[aktindex]["ar"]);
document.getElementById("refdx").value = rect.w;
}
@@ -672,7 +711,7 @@ function drawTextBG(context, txt, x, y, padding) {
if (!drag) {
rect.w = document.getElementById("refdx").value;
rect.h = document.getElementById("refdy").value;
- if (lockAR) {
+ if (lockAspectRatio) {
rect.h = Math.round(rect.w / ROIInfo[aktindex]["ar"]);
document.getElementById("refdy").value = rect.h;
}
diff --git a/sd-card/html/edit_config_param.html b/sd-card/html/edit_config_param.html
index 0853b0b6..625c8d7f 100644
--- a/sd-card/html/edit_config_param.html
+++ b/sd-card/html/edit_config_param.html
@@ -1309,6 +1309,7 @@ textarea {