Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance ROI pages #2161

Merged
merged 16 commits into from
Mar 12, 2023
2 changes: 1 addition & 1 deletion sd-card/html/common.js
Original file line number Diff line number Diff line change
@@ -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";



Expand Down
81 changes: 60 additions & 21 deletions sd-card/html/edit_analog.html
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,6 @@ <h2>Analog ROI's</h2>
<tr>
<class id="Numbers_text" style="color:black;"><b>Number: </b></class>
<select id="Numbers_value1" onchange="numberChanged()">
<option value="0" selected>default</option>
<option value="1" >NT</option>
<option value="2" >HT</option>
</select>
<input class="move" type="submit" id="renameNumber" name="renameNumber" onclick="renameNumber()" value="Rename">
<input class="move" type="submit" id="newNumber" name="newNumber" onclick="newNumber()" value="New">
Expand All @@ -105,8 +102,6 @@ <h2>Analog ROI's</h2>
<tr>
<td>
<select id="index" name="index" onchange="ChangeSelection()" tabindex=1>
<option value="0" selected>ROI 0</option>
<option value="1" >ROI 1</option>
</select>
</td>
<td>
Expand All @@ -120,16 +115,16 @@ <h2>Analog ROI's</h2>
<tr>
<td>x: <input type="number" name="refx" id="refx" step=1 onchange="valuemanualchanged()" tabindex=2></td>
<td>Δx: <input type="number" name="refdx" id="refdx" step=1 onchange="valuemanualchangeddx()" tabindex=4></td>
<td><label for="lockAR"> Lock aspect ratio: </label><input type="checkbox" id="lockAR" name="lockAR" value="1" onclick="changelockAR()" checked tabindex=6></td>
<td><input type="checkbox" id="lockAspectRatio" name="lockAspectRatio" value="1" onclick="changelockAspectRatio()" checked tabindex=6><label for="lockAspectRatio"> Lock aspect ratio</label></td>
</tr>
<tr>
<td>y: <input type="number" name="refy" id="refy" step=1 onchange="valuemanualchanged()" tabindex=3></td>
<td>Δy: <input type="number" name="refdy" id="refdy" step=1 onchange="valuemanualchanged()" tabindex=5></td>
<td><label for="lockSizes"> Synchronize Δx and Δy between ROIs</label><input type="checkbox" id="lockSizes" name="lockSizes" value="1" onclick="changelockSizes()" checked tabindex=7></td>
<td><input type="checkbox" id="lockSizes" name="lockSizes" value="1" onclick="changelockSizes()" checked tabindex=7><label for="lockSizes"> Synchronize Δx and Δy between ROIs</label></td>
</tr>
<tr>
<td colspan="2"></td>
<td><label for="CCW"> Counter-Clockwise Rotation: </label><input type="checkbox" id="CCW" name="CCW" value="0" onclick="changeCCW()" unchecked tabindex=8></td>
<td><input type="checkbox" id="CCW" name="CCW" value="0" onclick="changeCCW()" unchecked tabindex=8><label for="CCW"> Counter-Clockwise Rotation: </label></td>
</tr>
</table>
</div>
Expand Down Expand Up @@ -159,8 +154,8 @@ <h2>Analog ROI's</h2>
cofcat,
param,
enhanceCon = false;
lockAR = true;
lockSizes = true;
lockAspectRatio = true;
lockSizes = false;
domainname = getDomainname();


Expand Down Expand Up @@ -222,6 +217,7 @@ <h2>Analog ROI's</h2>
aktindex = ROIInfo.length - 1;
}
UpdateROIs();
draw();
}

function newROI(){
Expand Down Expand Up @@ -259,12 +255,13 @@ <h2>Analog ROI's</h2>
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(){
Expand All @@ -283,7 +280,7 @@ <h2>Analog ROI's</h2>

function ChangeSelection(){
aktindex = parseInt(document.getElementById("index").value);
// lockAR = true;
// lockAspectRatio = true;
UpdateROIs();
}

Expand Down Expand Up @@ -317,6 +314,7 @@ <h2>Analog ROI's</h2>
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;
Expand Down Expand Up @@ -361,7 +359,7 @@ <h2>Analog ROI's</h2>
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"];
Expand Down Expand Up @@ -419,6 +417,29 @@ <h2>Analog ROI's</h2>
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();
}
Expand Down Expand Up @@ -510,11 +531,17 @@ <h2>Analog ROI's</h2>
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";
Expand All @@ -540,7 +567,7 @@ <h2>Analog ROI's</h2>
{
if (_nb != _number)
{
lw = 1;
lw = 2;
context.lineWidth = lw;
context.strokeStyle = "#990000";
var x0 = parseInt(ROIInfo[_nb].x) - parseInt(lw/2);
Expand All @@ -549,12 +576,24 @@ <h2>Analog ROI's</h2>
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";
Expand Down Expand Up @@ -622,7 +661,7 @@ <h2>Analog ROI's</h2>
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 {
Expand Down Expand Up @@ -657,7 +696,7 @@ <h2>Analog ROI's</h2>
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;
}
Expand All @@ -672,7 +711,7 @@ <h2>Analog ROI's</h2>
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;
}
Expand Down
1 change: 1 addition & 0 deletions sd-card/html/edit_config_param.html
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,7 @@ <h5>By default GPIO4 is used for the built-in flash LED! If you enable the GPIO
</td>
<td>
<input type="text" id="System_TimeZone_value1">
<p>Use <a href="timezones.html" target="_blank">timezones.html</a> to find your correct settings.</p>
</td>
<td>$TOOLTIP_System_TimeZone</td>
</tr>
Expand Down
Loading