mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-13 06:56:56 +03:00
Merge branch 'rolling'
# Conflicts: # Changelog.md # code/components/jomjol_helper/Helper.cpp # code/components/jomjol_helper/Helper.h # sd-card/html/edit_config_param.html # sd-card/html/readconfigparam.js
This commit is contained in:
@@ -160,8 +160,9 @@ textarea {
|
||||
<input type="number" id="TakeImage_ImageQuality_value1" size="13" min="0" max="63">
|
||||
</td>
|
||||
<td class="description">
|
||||
Quality index for picture (default = "12" - "0" high ... "63" low) <br>
|
||||
Remark: values smaller than 12 can result in a reboot, as the bigger sized JPEG might not fit in the available RAM!
|
||||
Image quality index (default = 12) <br>
|
||||
Input range: 8 [highest quality] ... 63 [lowest quality] <br>
|
||||
Remark: Value < 12 could result in system instabilities!
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="expert" id="ex3">
|
||||
@@ -200,7 +201,8 @@ textarea {
|
||||
<input type="number" id="TakeImage_Brightness_value1" size="13" min="-2" max="2">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Image Brightness (-2 .. 2 - default = "0")
|
||||
Image brightness (default = 0) <br>
|
||||
Input range: -2 ... 2
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -212,8 +214,8 @@ textarea {
|
||||
<input type="number" id="TakeImage_Contrast_value1" size="13" min="-2" max="2">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Image Contrast (-2 .. 2 - default = "0") <br>
|
||||
Remark: camera driver is not fully supporting this setting yet (no impact on image)
|
||||
Image contrast (default = 0) <br>
|
||||
Input range: -2 ... 2
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -225,8 +227,8 @@ textarea {
|
||||
<input type="number" id="TakeImage_Saturation_value1" size="13" min="-2" max="2">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Image Saturation (-2 .. 2 - default = "0") <br>
|
||||
Remark: camera driver is not fully supporting this setting yet (no impact on image)
|
||||
Image saturation (default = 0) <br>
|
||||
Input range: -2 ... 2
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -281,6 +283,7 @@ textarea {
|
||||
<option value="default" selected>Default</option>
|
||||
<option value="highAccuracy" >HighAccuracy</option>
|
||||
<option value="fast" >Fast</option>
|
||||
<option value="off" >Off</option><!-- add disable aligment algo |01.2023 -->
|
||||
</select>
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
@@ -721,7 +724,7 @@ textarea {
|
||||
<td colspan="3" style="padding-left: 20px;">
|
||||
<h4>
|
||||
<input type="checkbox" id="Category_InfluxDB_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked >
|
||||
<label for=Category_InfluxDB_enabled>InfluxDB</h4><h5>Only InfluxDB v1.x is supported as of now</h5></label>
|
||||
<label for=Category_InfluxDB_enabled>InfluxDB</h4><h5>Only InfluxDB v1.x is supported as of now</h5></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -788,6 +791,97 @@ textarea {
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
<td colspan="3" style="padding-left: 20px;">
|
||||
<h4>
|
||||
<input type="checkbox" id="Category_InfluxDBv2_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked >
|
||||
<label for=Category_InfluxDBv2_enabled>InfluxDBv2</h4><h5>Only InfluxDB v2.x is configured here, v1.x see above [InfluxDB]</h5></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1">
|
||||
<input type="checkbox" id="InfluxDBv2_Uri_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Uri")' unchecked >
|
||||
<label for=InfluxDBv2_Uri_enabled><class id="InfluxDBv2_Uri_text" style="color:black;">Uri</class></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="InfluxDBv2_Uri_value1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
URI of the HTTP interface to InfluxDB (Version2), without traililing slash, e.g. http://IP-Address:Port
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1">
|
||||
<input type="checkbox" id="InfluxDBv2_Database_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Database")' unchecked >
|
||||
<label for=InfluxDBv2_Database_enabled><class id="InfluxDBv2_Database_text" style="color:black;">Database</class></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="InfluxDBv2_Database_value1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Database name in which to publish the read value.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1">
|
||||
<input type="checkbox" id="InfluxDBv2_Measurement_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Measurement")' unchecked >
|
||||
<label for=InfluxDBv2_Measurement_enabled><class id="InfluxDBv2_Measurement_text" style="color:black;">Measurement</class></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="InfluxDBv2_Measurement_value1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Measurement name to use to publish the read value.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1">
|
||||
<input type="checkbox" id="InfluxDBv2_Org_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Org")' unchecked >
|
||||
<label for=InfluxDBv2_Org_enabled><class id="InfluxDBv2_Org_text" style="color:black;">Org</class></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="InfluxDBv2_Org_value1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Organisation (Org) for InfluxDBv2 authentication
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1">
|
||||
<input type="checkbox" id="InfluxDBv2_Token_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Token")' unchecked >
|
||||
<label for=InfluxDBv2_Token_enabled><class id="InfluxDBv2_Token_text" style="color:black;">Token</class></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="InfluxDBv2_Token_value1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Token for InfluxDB authentication
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1" colspan="3">
|
||||
<br>
|
||||
<b>Postprocessing Individual Parameters:
|
||||
<select id="NumbersInfluxDB_value1" onchange="numberInfluxDBChanged()">
|
||||
<option value="0" selected>default</option>
|
||||
<option value="1" >NT</option>
|
||||
<option value="2" >HT</option>
|
||||
</select></b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="indent1" style="padding-left: 75px;">
|
||||
<input type="checkbox" id="InfluxDBv2_Fieldname_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Fieldname")' unchecked >
|
||||
<label for=InfluxDBv2_Fieldname_enabled><class id="InfluxDBv2_Fieldname_text" style="color:black;">Fieldname</class></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="InfluxDBv2_Fieldname_value1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Fieldname to use for saving.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="3" style="padding-left: 20px;">
|
||||
<h4><input type="checkbox" id="Category_GPIO_enabled" value="1" onclick='UpdateAfterCategoryCheck()' unchecked >
|
||||
@@ -1487,7 +1581,8 @@ function LoadConfigNeu() {
|
||||
InitIndivParameter();
|
||||
|
||||
UpdateInput();
|
||||
UpdateInputIndividual();
|
||||
var sel = document.getElementById("Numbers_value1");
|
||||
UpdateInputIndividual(sel);
|
||||
UpdateExpertModus();
|
||||
document.getElementById("divall").style.display = '';
|
||||
}
|
||||
@@ -1499,15 +1594,18 @@ function InitIndivParameter()
|
||||
var _index = document.getElementById("Numbers_value1");
|
||||
while (_index.length)
|
||||
_index.remove(0);
|
||||
var _indexInflux = document.getElementById("NumbersInfluxDB_value1");
|
||||
while (_indexInflux.length)
|
||||
_indexInflux.remove(0);
|
||||
|
||||
for (var i = 0; i < NUMBERS.length; ++i){
|
||||
var option = document.createElement("option");
|
||||
option.text = NUMBERS[i]["name"];
|
||||
option.value = i;
|
||||
_index.add(option);
|
||||
|
||||
var optionInflux = document.createElement("option");
|
||||
optionInflux.text = NUMBERS[i]["name"];
|
||||
optionInflux.value = i;
|
||||
_indexInflux.add(optionInflux);
|
||||
}
|
||||
_index.selectedIndex = 0;
|
||||
_indexInflux.selectedIndex = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1798,30 +1896,30 @@ function ReadParameter(_param, _cat, _name, _optional, _number = -1){
|
||||
}
|
||||
}
|
||||
|
||||
function UpdateInputIndividual()
|
||||
function UpdateInputIndividual(sel)
|
||||
{
|
||||
if (NUNBERSAkt != -1)
|
||||
{
|
||||
ReadParameter(param, "PostProcessing", "DecimalShift", true, NUNBERSAkt)
|
||||
ReadParameter(param, "PostProcessing", "AnalogDigitalTransitionStart", true, NUNBERSAkt)
|
||||
ReadParameter(param, "PostProcessing", "MaxRateValue", true, NUNBERSAkt)
|
||||
ReadParameter(param, "PostProcessing", "MaxRateType", true, NUNBERSAkt)
|
||||
|
||||
ReadParameter(param, "PostProcessing", "MaxRateType", true, NUNBERSAkt)
|
||||
ReadParameter(param, "PostProcessing", "ExtendedResolution", false, NUNBERSAkt)
|
||||
ReadParameter(param, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt)
|
||||
ReadParameter(param, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt)
|
||||
ReadParameter(param, "InfluxDBv2", "Fieldname", true, NUNBERSAkt)
|
||||
}
|
||||
|
||||
var sel = document.getElementById("Numbers_value1");
|
||||
// var sel = document.getElementById("Numbers_value1");
|
||||
NUNBERSAkt = sel.selectedIndex;
|
||||
WriteParameter(param, category, "PostProcessing", "DecimalShift", true, NUNBERSAkt);
|
||||
WriteParameter(param, category, "PostProcessing", "AnalogDigitalTransitionStart", true, NUNBERSAkt);
|
||||
WriteParameter(param, category, "PostProcessing", "MaxRateValue", true, NUNBERSAkt);
|
||||
WriteParameter(param, category, "PostProcessing", "MaxRateType", true, NUNBERSAkt);
|
||||
|
||||
WriteParameter(param, category, "PostProcessing", "ExtendedResolution", false, NUNBERSAkt);
|
||||
WriteParameter(param, category, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt);
|
||||
WriteParameter(param, category, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt);
|
||||
WriteParameter(param, category, "InfluxDBv2", "Fieldname", true, NUNBERSAkt);
|
||||
}
|
||||
|
||||
function UpdateInput() {
|
||||
@@ -1830,6 +1928,7 @@ function UpdateInput() {
|
||||
document.getElementById("Category_MQTT_enabled").checked = category["MQTT"]["enabled"];
|
||||
document.getElementById("Category_GPIO_enabled").checked = category["GPIO"]["enabled"];
|
||||
document.getElementById("Category_InfluxDB_enabled").checked = category["InfluxDB"]["enabled"];
|
||||
document.getElementById("Category_InfluxDBv2_enabled").checked = category["InfluxDBv2"]["enabled"];
|
||||
setVisible("GPIO_item", category["GPIO"]["enabled"]);
|
||||
|
||||
WriteParameter(param, category, "TakeImage", "RawImagesLocation", true);
|
||||
@@ -1876,6 +1975,13 @@ function UpdateInput() {
|
||||
WriteParameter(param, category, "InfluxDB", "user", true);
|
||||
WriteParameter(param, category, "InfluxDB", "password", true);
|
||||
|
||||
WriteParameter(param, category, "InfluxDBv2", "Uri", true);
|
||||
WriteParameter(param, category, "InfluxDBv2", "Database", true);
|
||||
WriteParameter(param, category, "InfluxDBv2", "Measurement", true);
|
||||
WriteParameter(param, category, "InfluxDBv2", "Org", true);
|
||||
WriteParameter(param, category, "InfluxDBv2", "Token", true);
|
||||
WriteParameter(param, category, "InfluxDBv2", "Fieldname", true);
|
||||
|
||||
WriteParameter(param, category, "GPIO", "IO0", true);
|
||||
WriteParameter(param, category, "GPIO", "IO1", true);
|
||||
WriteParameter(param, category, "GPIO", "IO3", true);
|
||||
@@ -1951,6 +2057,7 @@ function ReadParameterAll()
|
||||
category["Digits"]["enabled"] = document.getElementById("Category_Digits_enabled").checked;
|
||||
category["MQTT"]["enabled"] = document.getElementById("Category_MQTT_enabled").checked;
|
||||
category["InfluxDB"]["enabled"] = document.getElementById("Category_InfluxDB_enabled").checked;
|
||||
category["InfluxDBv2"]["enabled"] = document.getElementById("Category_InfluxDBv2_enabled").checked;
|
||||
category["GPIO"]["enabled"] = document.getElementById("Category_GPIO_enabled").checked;
|
||||
|
||||
ReadParameter(param, "TakeImage", "RawImagesLocation", true);
|
||||
@@ -1978,8 +2085,8 @@ function ReadParameterAll()
|
||||
ReadParameter(param, "Analog", "ROIImagesLocation", true);
|
||||
ReadParameter(param, "Analog", "ROIImagesRetention", true);
|
||||
|
||||
ReadParameter(param, "PostProcessing", "PreValueUse", false);
|
||||
ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true);
|
||||
ReadParameter(param, "PostProcessing", "PreValueUse", false);
|
||||
ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true);
|
||||
ReadParameter(param, "PostProcessing", "ErrorMessage", false);
|
||||
ReadParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", false);
|
||||
|
||||
@@ -1998,6 +2105,13 @@ function ReadParameterAll()
|
||||
ReadParameter(param, "InfluxDB", "user", true);
|
||||
ReadParameter(param, "InfluxDB", "password", true);
|
||||
|
||||
ReadParameter(param, "InfluxDBv2", "Uri", true);
|
||||
ReadParameter(param, "InfluxDBv2", "Database", true);
|
||||
ReadParameter(param, "InfluxDBv2", "Measurement", true);
|
||||
ReadParameter(param, "InfluxDBv2", "Org", true);
|
||||
ReadParameter(param, "InfluxDBv2", "Token", true);
|
||||
// ReadParameter(param, "InfluxDB", "Fieldname", true);
|
||||
|
||||
ReadParameter(param, "GPIO", "IO0", true);
|
||||
ReadParameter(param, "GPIO", "IO1", true);
|
||||
ReadParameter(param, "GPIO", "IO3", true);
|
||||
@@ -2029,7 +2143,8 @@ function ReadParameterAll()
|
||||
ReadParameter(param, "System", "TimeServer", true);
|
||||
ReadParameter(param, "System", "RSSIThreshold", true);
|
||||
|
||||
UpdateInputIndividual();
|
||||
var sel = document.getElementById("Numbers_value1");
|
||||
UpdateInputIndividual(sel);
|
||||
|
||||
// FormatDecimalValue(param, "PostProcessing", "MaxRateValue");
|
||||
}
|
||||
@@ -2049,10 +2164,12 @@ function UpdateAfterCategoryCheck() {
|
||||
category["Digits"]["enabled"] = document.getElementById("Category_Digits_enabled").checked;
|
||||
category["MQTT"]["enabled"] = document.getElementById("Category_MQTT_enabled").checked;
|
||||
category["InfluxDB"]["enabled"] = document.getElementById("Category_InfluxDB_enabled").checked;
|
||||
category["InfluxDBv2"]["enabled"] = document.getElementById("Category_InfluxDBv2_enabled").checked;
|
||||
category["GPIO"]["enabled"] = document.getElementById("Category_GPIO_enabled").checked;
|
||||
|
||||
UpdateInput();
|
||||
UpdateInputIndividual();
|
||||
var sel = document.getElementById("Numbers_value1");
|
||||
UpdateInputIndividual(sel);
|
||||
}
|
||||
|
||||
function UpdateExpertModus()
|
||||
@@ -2103,7 +2220,7 @@ function saveTextAsFile()
|
||||
ReadParameterAll();
|
||||
WriteConfigININew();
|
||||
SaveConfigToServer(domainname);
|
||||
firework.launch('Configuration got updated. Please reboot to activate changes!', 'success', 5000);
|
||||
firework.launch('Configuration got updated. It will get applied after the next reboot!', 'success', 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2129,7 +2246,24 @@ function editConfigDirect() {
|
||||
|
||||
function numberChanged()
|
||||
{
|
||||
UpdateInputIndividual();
|
||||
var sel = document.getElementById("Numbers_value1");
|
||||
_neu = sel.selectedIndex;
|
||||
UpdateInputIndividual(sel);
|
||||
|
||||
var _selInflux = document.getElementById("NumbersInfluxDB_value1");
|
||||
if (_selInflux.selectedIndex != _neu)
|
||||
_selInflux.selectedIndex = _neu
|
||||
}
|
||||
|
||||
function numberInfluxDBChanged()
|
||||
{
|
||||
var sel = document.getElementById("NumbersInfluxDB_value1");
|
||||
_neu = sel.selectedIndex;
|
||||
UpdateInputIndividual(sel);
|
||||
|
||||
var _sel2 = document.getElementById("Numbers_value1");
|
||||
if (_sel2.selectedIndex != _neu)
|
||||
_sel2.selectedIndex = _neu
|
||||
}
|
||||
|
||||
LoadConfigNeu();
|
||||
|
||||
Reference in New Issue
Block a user