Almost done

This commit is contained in:
jomjol
2021-01-04 22:49:36 +01:00
parent 0e36010937
commit c675019ef3
42 changed files with 1175 additions and 823 deletions

View File

@@ -11,6 +11,7 @@ InitalRotate=180
/config/ref1.jpg 456 138
SearchFieldX = 20
SearchFieldY = 20
AlignmentAlgo = Default
[Digits]
@@ -60,6 +61,7 @@ LogfileRetentionInDays = 3
[System]
TimeZone = CET-1CEST,M3.5.0,M10.5.0/3
;TimeServer = fritz.box
;hostname = watermeter
SetupMode = true
[Ende]

View File

@@ -1 +1,2 @@
[1204/185120.033:ERROR:directory_reader_win.cc(43)] FindFirstFile: Das System kann den angegebenen Pfad nicht finden. (0x3)
[0102/122131.430:ERROR:directory_reader_win.cc(43)] FindFirstFile: Das System kann den angegebenen Pfad nicht finden. (0x3)

View File

@@ -90,7 +90,8 @@ select {
</table>
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfig.js"></script>
<script type="text/javascript" src="./readconfig.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script language="JavaScript">
var canvas = document.getElementById('canvas'),

View File

@@ -49,13 +49,26 @@ select {
th, td {
padding: 5px 5px 5px 0px;
}
#div2{
background-color:#777;
margin-bottom:20px;
}
.disabledDiv {
pointer-events: none;
opacity: 0.4;
}
</style>
</head>
<body style="font-family: arial; padding: 0px 10px;">
<h2>Edit Analog</h2>
<h2><input type="checkbox" id="Category_Analog_enabled" value="1" onclick = 'EnDisableAnalog()' checked >
Edit Analog</h2>
<div id="div1">
<table>
<tr>
@@ -78,8 +91,8 @@ th, td {
</td>
<td>Name: <input type="text" name="name" id="name" onchange="onNameChange()" size="13"></td>
<td>
<input class="move" type="submit" id="moveNext" onclick="moveNext()" value="move Next">
<input class="move" type="submit" id="movePrevious" onclick="movePrevious()" value="move Previous">
<input class="button" type="submit" id="moveNext" onclick="moveNext()" value="move Next">
<input class="button" type="submit" id="movePrevious" onclick="movePrevious()" value="move Previous">
</td>
</tr>
<tr>
@@ -92,15 +105,19 @@ th, td {
<td>dy: <input type="number" name="refdy" id="refdy" step=1 onchange="valuemanualchanged()"></td>
</tr>
</table>
</div>
<table>
<tr>
<td><input class="button" type="submit" id="saveroi" name="saveroi" onclick="SaveToConfig()" value="Save all to Config.ini"></td>
</tr>
</table>
</table>
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script type="text/javascript" src="./readconfig.js"></script>
<script type="text/javascript" src="./jquery-3.5.1.min.js"></script>
<script language="JavaScript">
var canvas = document.getElementById('canvas'),
@@ -114,6 +131,36 @@ th, td {
lockAR = true;
basepath = "http://192.168.178.26";
function EnDisableAnalog() {
isEnabled = document.getElementById("Category_Analog_enabled").checked;
$("#div2").attr("disabled", "disabled").off('click');
var x1=$("#div2").hasClass("disabledDiv");
if (isEnabled)
{
$("#div2").removeClass("disabledDiv");
}
else
{
$("#div2").addClass("disabledDiv");
}
sah1(document.getElementById("div1"));
}
function sah1(el) {
try {
el.disabled = el.disabled ? false : true;
} catch (E) {}
if (el.childNodes && el.childNodes.length > 0) {
for (var x = 0; x < el.childNodes.length; x++) {
sah1(el.childNodes[x]);
}
}
}
function onNameChange(){
ROIInfo[aktindex]["name"] = document.getElementById("name").value;
UpdateROIs();
@@ -172,7 +219,8 @@ function ChangeSelection(){
}
function SaveToConfig(){
SaveROIToConfig(ROIInfo, "[Analog]", basepath);
_enabled = document.getElementById("index").checked;
SaveROIToConfig(ROIInfo, "[Analog]", basepath, _enabled);
UpdatePage();
}
@@ -230,8 +278,18 @@ function UpdateROIs(){
function ParseIni(_basepath) {
loadConfig(_basepath);
ParseConfig();
document.getElementById("Category_Analog_enabled").checked = true;
ROIInfo = getROIInfo("[Analog]");
if (!GetAnalogEnabled())
{
document.getElementById("Category_Analog_enabled").checked = false;
EnDisableAnalog();
alert("Analog ROIs are disabled - please enable (Check box top left).\n");
return;
}
UpdateROIs();
}

View File

@@ -42,6 +42,7 @@ textarea {
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfig.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script type="text/javascript">
var canvas = document.getElementById('canvas'),

View File

@@ -61,7 +61,7 @@ textarea {
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<input type="checkbox" id="MakeImage_LogImageLocation_enabled" value="1" onclick = 'document.getElementById("MakeImage_LogImageLocation_value").disabled = !document.getElementById("MakeImage_LogImageLocation_value1").disabled' unchecked >
<input type="checkbox" id="MakeImage_LogImageLocation_enabled" value="1" onclick = 'document.getElementById("MakeImage_LogImageLocation_value1").disabled = !document.getElementById("MakeImage_LogImageLocation_value1").disabled' unchecked >
</td>
<td width="200px">
<class id="MakeImage_LogImageLocation_text" style="color:black;">LogImageLocation</class>
@@ -75,7 +75,7 @@ textarea {
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<td"><input type="checkbox" id="MakeImage_LogfileRetentionInDays_enabled" value="1" onclick = 'document.getElementById("MakeImage_LogfileRetentionInDays_value").disabled = !document.getElementById("MakeImage_LogfileRetentionInDays_value1").disabled' unchecked ></td>
<td"><input type="checkbox" id="MakeImage_LogfileRetentionInDays_enabled" value="1" onclick = 'document.getElementById("MakeImage_LogfileRetentionInDays_value1").disabled = !document.getElementById("MakeImage_LogfileRetentionInDays_value1").disabled' unchecked ></td>
</td>
<td>
<class id="MakeImage_LogfileRetentionInDays_text" style="color:black;">LogfileRetentionInDays</class>
@@ -160,6 +160,24 @@ textarea {
y size (height) in which the reference is searched (default = "20")
</td>
</tr>
<tr class="expert" id="AlignmentAlgo_ex8">
<td width="20px" style="padding-left: 40px;">
<input type="checkbox" id="Alignment_AlignmentAlgo_enabled" value="1" onclick = 'document.getElementById("Alignment_AlignmentAlgo_value1").disabled = !document.getElementById("Alignment_AlignmentAlgo_value1").disabled' unchecked >
</td>
<td>
<class id="Alignment_AlignmentAlgo_text" style="color:black;">AlignmentAlgo</class>
</td>
<td>
<select id="Alignment_AlignmentAlgo_value1">
<option value="0" selected>Default</option>
<option value="1" >HighAccurity</option>
<option value="2" >Fast</option>
</select>
</td>
<td style="font-size: 80%;">
"Default" = use only R-Channel, "HighAccurity" = use all Channels (RGB, 3x slower), <br> "Fast" (First time RGB, then only check if image is shifted)
</td>
</tr>
<tr class="expert" id="ex4">
<td colspan="4" style="padding-left: 20px;"><h4>Digits</h4></td>
@@ -221,62 +239,39 @@ textarea {
</tr>
<tr class="expert" id="ex4">
<td colspan="4" style="padding-left: 20px;"><h4>Analog</h4></td>
<td colspan="4" style="padding-left: 20px;">
<h4><input type="checkbox" id="Category_Analog_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked > Analog</h4></td>
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
</td>
<td width="200px">
<class id="Analog_Model_text" style="color:black;">Model</class>
</td>
<td>
<input type="text" id="Analog_Model_value1">
</td>
<td style="font-size: 80%;">
path to CNN model file for image recognition (in seconds)
</td>
<td width="20px" style="padding-left: 40px;"> </td>
<td width="200px"> <class id="Analog_Model_text" style="color:black;">Model</class> </td>
<td> <input type="text" id="Analog_Model_value1"> </td>
<td style="font-size: 80%;"> path to CNN model file for image recognition (in seconds) </td>
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<input type="checkbox" id="Analog_LogImageLocation_enabled" value="1" onclick = 'document.getElementById("Analog_LogImageLocation_value1").disabled = !document.getElementById("Analog_LogImageLocation_value1").disabled' unchecked >
</td>
<td>
<class id="Analog_LogImageLocation_text" style="color:black;">LogImageLocation</class>
</td>
<td>
<input type="text" name="name" id="Analog_LogImageLocation_value1">
</td>
<td style="font-size: 80%;">
Location to store separated digits for logging
</td>
<td> <class id="Analog_LogImageLocation_text" style="color:black;">LogImageLocation</class> </td>
<td> <input type="text" name="name" id="Analog_LogImageLocation_value1"> </td>
<td style="font-size: 80%;"> Location to store separated digits for logging </td>
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<td"><input type="checkbox" id="Analog_LogfileRetentionInDays_enabled" value="1" onclick = 'document.getElementById("Analog_LogfileRetentionInDays_value1").disabled = !document.getElementById("Analog_LogfileRetentionInDays_value1").disabled' unchecked ></td>
</td>
<td>
<class id="Analog_LogfileRetentionInDays_text" style="color:black;">LogfileRetentionInDays</class>
</td>
<td>
<input type="number" id="Analog_LogfileRetentionInDays_value1" min="0" step="1">
</td>
<td style="font-size: 80%;">
Time to keep the separated digit images (in days -"0" = forever)
</td>
<td> <class id="Analog_LogfileRetentionInDays_text" style="color:black;">LogfileRetentionInDays</class> </td>
<td> <input type="number" id="Analog_LogfileRetentionInDays_value1" min="0" step="1"> </td>
<td style="font-size: 80%;"> Time to keep the separated digit images (in days -"0" = forever) </td>
</tr>
<tr class="expert" id="ex10">
<td width="20px" style="padding-left: 40px;">
</td>
<td>
<class id="Analog_ModelInputSize_text" style="color:black;">ModelInputSize</class>
</td>
<td width="20px" style="padding-left: 40px;"> </td>
<td> <class id="Analog_ModelInputSize_text" style="color:black;">ModelInputSize</class> </td>
<td>
x: <input type="number" id="Analog_ModelInputSize_value1" style="width: 30px;" min="1" step="1">
y: <input type="number" id="Analog_ModelInputSize_value2" style="width: 30px;" min="1" step="1">
</td>
<td style="font-size: 80%;">
Size of the input image for the CNN model
</td>
<td style="font-size: 80%;"> Size of the input image for the CNN model </td>
</tr>
<tr>
@@ -394,7 +389,7 @@ textarea {
</tr>
<tr>
<td colspan="4" style="padding-left: 20px;"><h4>MQTT</h4></td>
<td colspan="4" style="padding-left: 20px;"><h4><input type="checkbox" id="Category_MQTT_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked > MQTT</h4></td>
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
@@ -468,7 +463,7 @@ textarea {
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<input type="checkbox" id="MQTT_password_enabled" value="1" onclick = 'document.getElementById("MQTT_password_value1").disabled = !document.getElementById("MQTT_password_value1").disabled' checked >
<input type="checkbox" id="MQTT_password_enabled" value="1" onclick = 'document.getElementById("MQTT_password_value1").disabled = !document.getElementById("MQTT_password_value1").disabled' unchecked >
</td>
<td width="200px">
<class id="MQTT_password_text" style="color:black;">password</class>
@@ -538,7 +533,7 @@ textarea {
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<td"><input type="checkbox" id="Debug_LogfileRetentionInDays_enabled" value="1" onclick = 'document.getElementById("Debug_LogfileRetentionInDays_value").disabled = !document.getElementById("Debug_LogfileRetentionInDays_value1").disabled' unchecked ></td>
<td"><input type="checkbox" id="Debug_LogfileRetentionInDays_enabled" value="1" onclick = 'document.getElementById("Debug_LogfileRetentionInDays_value1").disabled = !document.getElementById("Debug_LogfileRetentionInDays_value1").disabled' unchecked ></td>
</td>
<td>
<class id="Debug_LogfileRetentionInDays_text" style="color:black;">LogfileRetentionInDays</class>
@@ -556,7 +551,7 @@ textarea {
</tr>
<tr>
<td width="20px" style="padding-left: 40px;">
<td"><input type="checkbox" id="System_TimeZone_enabled" value="1" onclick = 'document.getElementById("System_TimeZone_value").disabled = !document.getElementById("System_TimeZone_value1").disabled' unchecked ></td>
<td"><input type="checkbox" id="System_TimeZone_enabled" value="1" onclick = 'document.getElementById("System_TimeZone_value1").disabled = !document.getElementById("System_TimeZone_value1").disabled' unchecked ></td>
</td>
<td>
<class id="System_TimeZone_text" style="color:black;">TimeZone</class>
@@ -582,6 +577,21 @@ textarea {
Time server to synchronize system time (default: "pool.ntp.org" - used if nothing is specified)
</td>
</tr>
<tr class="expert" id="System_Hostname">
<td width="20px" style="padding-left: 40px;">
<td"><input type="checkbox" id="System_Hostname_enabled" value="1" onclick = 'document.getElementById("System_Hostname_value1").disabled = !document.getElementById("System_Hostname_value1").disabled' unchecked ></td>
</td>
<td>
<class id="System_Hostname_text" style="color:black;">Hostname</class>
</td>
<td>
<input type="text" id="System_Hostname_value1">
</td>
<td style="font-size: 80%;">
Hostname for server - will be transfered to wlan.ini at next startup)
</td>
</tr>
</table>
<p>
@@ -597,12 +607,14 @@ textarea {
</div>
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script type="text/javascript" src="./readconfigparam.js"></script>
<script type="text/javascript">
var canvas = document.getElementById('canvas'),
basepath = "http://192.168.178.22";
param;
category;
function LoadConfigNeu() {
@@ -613,12 +625,14 @@ function LoadConfigNeu() {
}
loadConfig(basepath);
ParseConfig();
param = getConfigParameters();
category = getConfigCategory();
UpdateInput();
UpdateExpertModus();
document.getElementById("divall").style.display = '';
}
function WriteParameter(_param, _cat, _name, _optional, _select = false, _anzpara = 1){
function WriteParameter(_param, _category, _cat, _name, _optional, _select = false, _anzpara = 1){
if (_param[_cat][_name]["found"]){
if (_optional) {
document.getElementById(_cat+"_"+_name+"_enabled").checked = _param[_cat][_name]["enabled"];
@@ -654,6 +668,52 @@ function WriteParameter(_param, _cat, _name, _optional, _select = false, _anzpar
document.getElementById(_cat+"_"+_name+"_text").style="color:lightgrey;"
}
///////////////// am Ende, falls Kategorie als gesamtes nicht ausgewählt --> deaktivieren
if (_category[_cat]["enabled"] == false)
{
if (_optional) {
document.getElementById(_cat+"_"+_name+"_enabled").disabled = true;
for (var j = 1; j <= _anzpara; ++j) {
document.getElementById(_cat+"_"+_name+"_value"+j).disabled = true;
}
}
document.getElementById(_cat+"_"+_name+"_text").style="color:lightgrey;"
}
EnDisableItem(_category[_cat]["enabled"], _param, _category, _cat, _name, _optional);
}
function EnDisableItem(_status, _param, _category, _cat, _name, _optional)
{
_status = _param[_cat][_name]["found"] && _category[_cat]["enabled"];
_color = "color:lightgrey;";
if (_status) {
_color = "color:black;";
}
if (_optional) {
document.getElementById(_cat+"_"+_name+"_enabled").disabled = !_status;
document.getElementById(_cat+"_"+_name+"_enabled").style=_color;
}
if (!_param[_cat][_name]["enabled"]) {
_status = false;
_color = "color:lightgrey;";
}
document.getElementById(_cat+"_"+_name+"_text").disabled = !_status;
document.getElementById(_cat+"_"+_name+"_text").style = _color;
if (_param[_cat][_name]["anzParam"] == 2) {
_color = "width: 30px;" + _color;
}
for (var j = 1; j <= _param[_cat][_name]["anzParam"]; ++j) {
document.getElementById(_cat+"_"+_name+"_value"+j).disabled = !_status;
document.getElementById(_cat+"_"+_name+"_value"+j).style=_color;
}
}
@@ -667,7 +727,7 @@ function ReadParameter(_param, _cat, _name, _optional, _select = false){
_param[_cat][_name]["value1"] = sel.options[sel.selectedIndex].text;
}
else {
for (var j = 1; j <= _param[_cat][_name]["anzpara"]; ++j) {
for (var j = 1; j <= _param[_cat][_name]["anzParam"]; ++j) {
_param[_cat][_name]["value"+j] = document.getElementById(_cat+"_"+_name+"_value"+j).value;
}
}
@@ -675,52 +735,60 @@ function ReadParameter(_param, _cat, _name, _optional, _select = false){
}
function UpdateInput() {
param = getConfigParameters();
WriteParameter(param, "MakeImage", "LogImageLocation", true);
WriteParameter(param, "MakeImage", "LogfileRetentionInDays", true);
WriteParameter(param, "MakeImage", "WaitBeforeTakingPicture", false);
WriteParameter(param, "MakeImage", "ImageQuality", false);
WriteParameter(param, "MakeImage", "ImageSize", false, true, true);
document.getElementById("Category_Analog_enabled").checked = category["Analog"]["enabled"];
document.getElementById("Category_MQTT_enabled").checked = category["MQTT"]["enabled"];
WriteParameter(param, "Alignment", "SearchFieldX", false);
WriteParameter(param, "Alignment", "SearchFieldY", false);
WriteParameter(param, category, "MakeImage", "LogImageLocation", true);
WriteParameter(param, category, "MakeImage", "LogfileRetentionInDays", true);
WriteParameter(param, category, "MakeImage", "WaitBeforeTakingPicture", false);
WriteParameter(param, category, "MakeImage", "ImageQuality", false);
WriteParameter(param, category, "MakeImage", "ImageSize", false, true, true);
WriteParameter(param, "Digits", "Model", false);
WriteParameter(param, "Digits", "LogImageLocation", false);
WriteParameter(param, "Digits", "LogfileRetentionInDays", false);
WriteParameter(param, "Digits", "ModelInputSize", false, false, 2);
WriteParameter(param, category, "Alignment", "SearchFieldX", false);
WriteParameter(param, category, "Alignment", "SearchFieldY", false);
WriteParameter(param, category, "Alignment", "AlignmentAlgo", true, true, true);
WriteParameter(param, category, "Digits", "Model", false);
WriteParameter(param, category, "Digits", "LogImageLocation", true);
WriteParameter(param, category, "Digits", "LogfileRetentionInDays", true);
WriteParameter(param, category, "Digits", "ModelInputSize", false, false, 2);
WriteParameter(param, "Analog", "Model", false);
WriteParameter(param, "Analog", "LogImageLocation", false);
WriteParameter(param, "Analog", "LogfileRetentionInDays", false);
WriteParameter(param, "Analog", "ModelInputSize", false, false, 2);
WriteParameter(param, category, "Analog", "Model", false);
WriteParameter(param, category, "Analog", "LogImageLocation", true);
WriteParameter(param, category, "Analog", "LogfileRetentionInDays", true);
WriteParameter(param, category, "Analog", "ModelInputSize", false, false, 2);
WriteParameter(param, "PostProcessing", "DecimalShift", true);
WriteParameter(param, "PostProcessing", "PreValueUse", true, true);
WriteParameter(param, "PostProcessing", "PreValueAgeStartup", true);
WriteParameter(param, "PostProcessing", "AllowNegativeRates", true, true);
WriteParameter(param, "PostProcessing", "MaxRateValue", true);
WriteParameter(param, "PostProcessing", "ErrorMessage", true, true);
WriteParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", true, true);
WriteParameter(param, category, "PostProcessing", "DecimalShift", true);
WriteParameter(param, category, "PostProcessing", "PreValueUse", true, true);
WriteParameter(param, category, "PostProcessing", "PreValueAgeStartup", true);
WriteParameter(param, category, "PostProcessing", "AllowNegativeRates", true, true);
WriteParameter(param, category, "PostProcessing", "MaxRateValue", true);
WriteParameter(param, category, "PostProcessing", "ErrorMessage", true, true);
WriteParameter(param, category, "PostProcessing", "CheckDigitIncreaseConsistency", true, true);
WriteParameter(param, "MQTT", "Uri", true);
WriteParameter(param, "MQTT", "Topic", true);
WriteParameter(param, "MQTT", "TopicError", true);
WriteParameter(param, "MQTT", "ClientID", true);
WriteParameter(param, "MQTT", "user", true);
WriteParameter(param, "MQTT", "password", true);
WriteParameter(param, category, "MQTT", "Uri", true);
WriteParameter(param, category, "MQTT", "Topic", true);
WriteParameter(param, category, "MQTT", "TopicError", true);
WriteParameter(param, category, "MQTT", "ClientID", true);
WriteParameter(param, category, "MQTT", "user", true);
WriteParameter(param, category, "MQTT", "password", true);
WriteParameter(param, "AutoTimer", "AutoStart", true, true);
WriteParameter(param, "AutoTimer", "Intervall", true);
WriteParameter(param, category, "AutoTimer", "AutoStart", true, true);
WriteParameter(param, category, "AutoTimer", "Intervall", true);
WriteParameter(param, "Debug", "Logfile", true, true);
WriteParameter(param, "Debug", "LogfileRetentionInDays", true);
WriteParameter(param, category, "Debug", "Logfile", true, true);
WriteParameter(param, category, "Debug", "LogfileRetentionInDays", true);
WriteParameter(param, "System", "TimeZone", true);
WriteParameter(param, "System", "TimeServer", true);
WriteParameter(param, category, "System", "TimeZone", true);
WriteParameter(param, category, "System", "Hostname", true);
WriteParameter(param, category, "System", "TimeServer", true);
}
function WriteConfig(){
function ReadParameterAll()
{
category["Analog"]["enabled"] = document.getElementById("Category_Analog_enabled").checked;
category["MQTT"]["enabled"] = document.getElementById("Category_MQTT_enabled").checked;
ReadParameter(param, "MakeImage", "LogImageLocation", true);
ReadParameter(param, "MakeImage", "LogfileRetentionInDays", true);
ReadParameter(param, "MakeImage", "WaitBeforeTakingPicture", false);
@@ -728,7 +796,8 @@ function WriteConfig(){
ReadParameter(param, "MakeImage", "ImageSize", false, true);
ReadParameter(param, "Alignment", "SearchFieldX", false);
ReadParameter(param, "Alignment", "SearchFieldY", false);
ReadParameter(param, "Alignment", "SearchFieldY", false);
ReadParameter(param, "Alignment", "AlignmentAlgo", true, true);
ReadParameter(param, "Digits", "Model", false);
ReadParameter(param, "Digits", "LogImageLocation", true);
@@ -762,21 +831,31 @@ function WriteConfig(){
ReadParameter(param, "Debug", "LogfileRetentionInDays", true);
ReadParameter(param, "System", "TimeZone", true);
ReadParameter(param, "System", "Hostname", true);
ReadParameter(param, "System", "TimeServer", true);
FormatDecimalValue(param, "PostProcessing", "MaxRateValue");
}
return setConfigParameters(param);
function WriteConfig(){
ReadParameterAll();
return setConfigParameters(param, category);
}
function FormatDecimalValue(_param, _cat, _name) {
for (var j = 1; j <= _param[_cat][_name]["anzpara"]; ++j) {
for (var j = 1; j <= _param[_cat][_name]["anzParam"]; ++j) {
var _val = _param[_cat][_name]["value"+j];
_val = _val.replace(",", ".");
_param[_cat][_name]["value"+j] = _val;
}
}
function UpdateAfterCategoryCheck() {
ReadParameterAll();
category["Analog"]["enabled"] = document.getElementById("Category_Analog_enabled").checked;
UpdateInput();
}
function UpdateExpertModus()
{
var _style = 'display:none;';

View File

@@ -101,6 +101,7 @@ th, td {
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfig.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script language="JavaScript">
var canvas = document.getElementById('canvas'),

View File

@@ -45,6 +45,7 @@ p {font-size: 1em;}
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfigparam.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script type="text/javascript">
var canvas = document.getElementById('canvas'),

View File

@@ -67,6 +67,7 @@ table {
<script type="text/javascript" src="./gethost.js"></script>
<script type="text/javascript" src="./readconfig.js"></script>
<script type="text/javascript" src="./readconfigcommon.js"></script>
<script language="JavaScript">
var canvas = document.getElementById('canvas'),

View File

@@ -7,8 +7,8 @@ function getbasepath(){
var host = window.location.hostname;
if ((host == "127.0.0.1") || (host == "localhost"))
{
host = "http://192.168.2.118"; // jomjol interner test
// host = "http://192.168.178.26"; // jomjol interner test
// host = "http://192.168.2.118"; // jomjol interner test
host = "http://192.168.178.26"; // jomjol interner test
// host = "http://192.168.178.22"; // jomjol interner Real
// host = "."; // jomjol interner localhost

View File

@@ -8,6 +8,8 @@ var ref = new Array(2);
var digit = new Array(0);
var analog = new Array(0);
var initalrotate = new Object();
var analogEnabled = false;
var posAnalogHeader;
function MakeRefZW(zw, _basepath){
url = _basepath + "/editflow.html?task=cutref&in=/config/reference.jpg&out=/img_tmp/ref_zw_org.jpg&x=" + zw["x"] + "&y=" + zw["y"] + "&dx=" + zw["dx"] + "&dy=" + zw["dy"];
@@ -36,7 +38,9 @@ function ParseConfigAlignment(_aktline){
var akt_ref = 0;
++_aktline;
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
while ((_aktline < config_split.length)
&& !(config_split[_aktline][0] == "[")
&& !((config_split[_aktline][0] == ";") && (config_split[_aktline][1] == "["))) {
var linesplit = ZerlegeZeile(config_split[_aktline]);
if ((linesplit[0].toUpperCase() == "INITIALMIRROR") && (linesplit.length > 1))
{
@@ -67,7 +71,9 @@ function ParseConfigDigit(_aktline){
++_aktline;
digit.length = 0;
while ((_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
while ((_aktline < config_split.length)
&& !(config_split[_aktline][0] == "[")
&& !((config_split[_aktline][0] == ";") && (config_split[_aktline][1] == "["))) {
var linesplit = ZerlegeZeile(config_split[_aktline]);
if (linesplit.length >= 5)
{
@@ -86,12 +92,17 @@ function ParseConfigDigit(_aktline){
return _aktline;
}
function GetAnalogEnabled() {
return analogEnabled;
}
function ParseConfigAnalog(_aktline){
++_aktline;
analog.length = 0;
while ((_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
while ((_aktline < config_split.length)
&& !(config_split[_aktline][0] == "[")
&& !((config_split[_aktline][0] == ";") && (config_split[_aktline][1] == "["))) {
var linesplit = ZerlegeZeile(config_split[_aktline]);
if (linesplit.length >= 5)
{
@@ -121,11 +132,18 @@ function getROIInfo(_typeROI){
return targetROI.slice(); // Kopie senden, nicht orginal!!!
}
function SaveROIToConfig(_ROIInfo, _typeROI, _basepath){
function SaveROIToConfig(_ROIInfo, _typeROI, _basepath, _enabled){
if (_typeROI == "[Digits]"){
targetROI = digit;
}
if (_typeROI == "[Analog]"){
if (_enabled) {
text = _typeROI;
}
else {
text = ";" + _typeROI;
}
config_split[posAnalogHeader] = text;
targetROI = analog;
}
@@ -165,16 +183,20 @@ function ParseConfig() {
var aktline = 0;
while (aktline < config_split.length){
if (config_split[aktline].trim().toUpperCase() == "[ALIGNMENT]") {
if ((config_split[aktline].trim().toUpperCase() == "[ALIGNMENT]") || (config_split[aktline].trim().toUpperCase() == ";[ALIGNMENT]")){
aktline = ParseConfigAlignment(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[DIGITS]") {
if ((config_split[aktline].trim().toUpperCase() == "[DIGITS]") || (config_split[aktline].trim().toUpperCase() == ";[DIGITS]")){
aktline = ParseConfigDigit(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[ANALOG]") {
if ((config_split[aktline].trim().toUpperCase() == "[ANALOG]") || (config_split[aktline].trim().toUpperCase() == ";[ANALOG]")) {
if (config_split[aktline][0] == "[") {
analogEnabled = true;
posAnalogHeader = aktline;
}
aktline = ParseConfigAnalog(aktline);
continue;
}
@@ -313,19 +335,6 @@ function MakeContrastImageZW(zw, _enhance, _basepath){
}
}
function createReader(file) {
var image = new Image();
reader.onload = function(evt) {
var image = new Image();
image.onload = function(evt) {
var width = this.width;
var height = this.height;
alert (width); // will produce something like 198
};
image.src = evt.target.result;
};
reader.readAsDataURL(file);
}
function GetReferenceSize(name){
img = new Image();
@@ -346,83 +355,6 @@ function GetReferenceSize(name){
return [img.width, img.height];
}
function ZerlegeZeile(input)
{
var Output = Array(0);
delimiter = " =,\r";
input = trim(input, delimiter);
var pos = findDelimiterPos(input, delimiter);
var token;
while (pos > -1) {
token = input.substr(0, pos);
token = trim(token, delimiter);
Output.push(token);
input = input.substr(pos+1, input.length);
input = trim(input, delimiter);
pos = findDelimiterPos(input, delimiter);
}
Output.push(input);
return Output;
}
function findDelimiterPos(input, delimiter)
{
var pos = -1;
var zw;
var akt_del;
for (var anz = 0; anz < delimiter.length; ++anz)
{
akt_del = delimiter[anz];
zw = input.indexOf(akt_del);
if (zw > -1)
{
if (pos > -1)
{
if (zw < pos)
pos = zw;
}
else
pos = zw;
}
}
return pos;
}
function trim(istring, adddelimiter)
{
while ((istring.length > 0) && (adddelimiter.indexOf(istring[0]) >= 0)){
istring = istring.substr(1, istring.length-1);
}
while ((istring.length > 0) && (adddelimiter.indexOf(istring[istring.length-1]) >= 0)){
istring = istring.substr(0, istring.length-1);
}
return istring;
}
function loadConfig(_basepath) {
var xhttp = new XMLHttpRequest();
try {
url = _basepath + '/fileserver/config/config.ini';
xhttp.open("GET", url, false);
xhttp.send();
config_gesamt = xhttp.responseText;
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
}
function getConfig() {
return config_gesamt;
@@ -438,76 +370,7 @@ function dataURLtoBlob(dataurl) {
}
return new Blob([u8arr], {type:mime});
}
function FileCopyOnServer(_source, _target, _basepath = ""){
url = _basepath + "/editflow.html?task=copy&in=" + _source + "&out=" + _target;
var xhttp = new XMLHttpRequest();
try {
xhttp.open("GET", url, false);
xhttp.send(); }
catch (error)
{
// alert("Deleting Config.ini failed");
}
}
function FileDeleteOnServer(_filename, _basepath = ""){
var xhttp = new XMLHttpRequest();
var okay = false;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
okay = true;
} else if (xhttp.status == 0) {
// alert("Server closed the connection on delete abruptly!");
// location.reload()
} else {
// alert(xhttp.status + " Error!\n" + xhttp.responseText);
// location.reload()
}
}
};
try {
var url = _basepath + "/delete" + _filename;
xhttp.open("POST", url, false);
xhttp.send();
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return okay;
}
function FileSendContent(_content, _filename, _basepath = ""){
var xhttp = new XMLHttpRequest();
var okay = false;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
okay = true;
} else if (xhttp.status == 0) {
alert("Server closed the connection abruptly!");
} else {
alert(xhttp.status + " Error!\n" + xhttp.responseText);
}
}
};
try {
upload_path = _basepath + "/upload" + _filename;
xhttp.open("POST", upload_path, false);
xhttp.send(_content);
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return okay;
}
function SaveReferenceImage(_id_canvas, _filename, _doDelete, _basepath = ""){
if (_doDelete){

View File

@@ -0,0 +1,263 @@
function readconfig_Version(){
return "1.0.0 - 20200910";
}
function SaveConfigToServer(_basepath){
// leere Zeilen am Ende löschen
var zw = config_split.length - 1;
while (config_split[zw] == "") {
config_split.pop();
}
var config_gesamt = "";
for (var i = 0; i < config_split.length; ++i)
{
config_gesamt = config_gesamt + config_split[i] + "\n";
}
FileDeleteOnServer("/config/config.ini", _basepath);
FileSendContent(config_gesamt, "/config/config.ini", _basepath);
}
function UpdateConfigFileReferenceChange(_basepath){
for (var _index = 0; _index < ref.length; ++_index){
var zeile = ref[_index]["name"] + " " + ref[_index]["x"] + " " + ref[_index]["y"];
var _pos = ref[_index]["pos_ref"];
config_split[_pos] = zeile;
}
zeile = "InitialRotate = " + initalrotate["angle"];
var _pos = initalrotate["pos_config"];
config_split[_pos] = zeile;
var mirror = false;
if (initalrotate.hasOwnProperty("mirror")) {
mirror = initalrotate["mirror"];
}
var mirror_pos = -1;
if (initalrotate.hasOwnProperty("pos_config_mirror")) {
mirror_pos = initalrotate["pos_config_mirror"];
}
if (mirror_pos > -1) {
if (mirror) {
config_split[mirror_pos] = "InitialMirror = true";
}
else {
config_split[mirror_pos] = "InitialMirror = false";
}
}
else {
if (mirror) { // neue Zeile muss an der richtigen Stelle eingefügt werden - hier direct nach [Alignment]
var aktline = 0;
while (aktline < config_split.length){
if (config_split[aktline].trim() == "[Alignment]") {
break;
}
aktline++
}
// fuege neue Zeile in config_split ein
var zw = config_split[config_split.length-1];
config_split.push(zw);
for (var j = config_split.length-2; j > aktline + 1; --j){
config_split[j] = config_split[j-1];
}
config_split[aktline + 1] = "InitialMirror = True"
}
}
SaveConfigToServer(_basepath);
}
function UpdateConfig(zw, _index, _enhance, _basepath){
var zeile = zw["name"] + " " + zw["x"] + " " + zw["y"];
var _pos = ref[_index]["pos_ref"];
config_split[_pos] = zeile;
SaveConfigToServer(_basepath);
var namezw = zw["name"];
FileCopyOnServer("/img_tmp/ref_zw.jpg", namezw, _basepath);
var namezw = zw["name"].replace(".jpg", "_org.jpg");
FileCopyOnServer("/img_tmp/ref_zw_org.jpg", namezw, _basepath);
}
function createReader(file) {
var image = new Image();
reader.onload = function(evt) {
var image = new Image();
image.onload = function(evt) {
var width = this.width;
var height = this.height;
alert (width); // will produce something like 198
};
image.src = evt.target.result;
};
reader.readAsDataURL(file);
}
function ZerlegeZeile(input)
{
var Output = Array(0);
delimiter = " =,\r";
input = trim(input, delimiter);
var pos = findDelimiterPos(input, delimiter);
var token;
while (pos > -1) {
token = input.substr(0, pos);
token = trim(token, delimiter);
Output.push(token);
input = input.substr(pos+1, input.length);
input = trim(input, delimiter);
pos = findDelimiterPos(input, delimiter);
}
Output.push(input);
return Output;
}
function findDelimiterPos(input, delimiter)
{
var pos = -1;
var zw;
var akt_del;
for (var anz = 0; anz < delimiter.length; ++anz)
{
akt_del = delimiter[anz];
zw = input.indexOf(akt_del);
if (zw > -1)
{
if (pos > -1)
{
if (zw < pos)
pos = zw;
}
else
pos = zw;
}
}
return pos;
}
function trim(istring, adddelimiter)
{
while ((istring.length > 0) && (adddelimiter.indexOf(istring[0]) >= 0)){
istring = istring.substr(1, istring.length-1);
}
while ((istring.length > 0) && (adddelimiter.indexOf(istring[istring.length-1]) >= 0)){
istring = istring.substr(0, istring.length-1);
}
return istring;
}
function loadConfig(_basepath) {
var xhttp = new XMLHttpRequest();
try {
url = _basepath + '/fileserver/config/config.ini';
xhttp.open("GET", url, false);
xhttp.send();
config_gesamt = xhttp.responseText;
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return true;
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
function FileCopyOnServer(_source, _target, _basepath = ""){
url = _basepath + "/editflow.html?task=copy&in=" + _source + "&out=" + _target;
var xhttp = new XMLHttpRequest();
try {
xhttp.open("GET", url, false);
xhttp.send(); }
catch (error)
{
// alert("Deleting Config.ini failed");
}
}
function FileDeleteOnServer(_filename, _basepath = ""){
var xhttp = new XMLHttpRequest();
var okay = false;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
okay = true;
} else if (xhttp.status == 0) {
// alert("Server closed the connection on delete abruptly!");
// location.reload()
} else {
// alert(xhttp.status + " Error!\n" + xhttp.responseText);
// location.reload()
}
}
};
try {
var url = _basepath + "/delete" + _filename;
xhttp.open("POST", url, false);
xhttp.send();
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return okay;
}
function FileSendContent(_content, _filename, _basepath = ""){
var xhttp = new XMLHttpRequest();
var okay = false;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
okay = true;
} else if (xhttp.status == 0) {
alert("Server closed the connection abruptly!");
} else {
alert(xhttp.status + " Error!\n" + xhttp.responseText);
}
}
};
try {
upload_path = _basepath + "/upload" + _filename;
xhttp.open("POST", upload_path, false);
xhttp.send(_content);
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return okay;
}

View File

@@ -5,6 +5,7 @@ function readconfig_Version(){
var config_gesamt;
var config_split;
var param;
var category;
var ref = new Array(2);
function ParseConfig() {
@@ -12,8 +13,12 @@ function ParseConfig() {
var aktline = 0;
param = new Object();
category = new Object();
var catname = "MakeImage";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "LogImageLocation");
ParamAddValue(param, catname, "WaitBeforeTakingPicture");
@@ -22,25 +27,38 @@ function ParseConfig() {
ParamAddValue(param, catname, "ImageSize");
var catname = "Alignment";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "SearchFieldX");
ParamAddValue(param, catname, "SearchFieldY");
ParamAddValue(param, catname, "AlignmentAlgo");
var catname = "Digits";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "Model");
ParamAddValue(param, catname, "LogImageLocation");
ParamAddValue(param, catname, "LogfileRetentionInDays");
ParamAddValue(param, catname, "ModelInputSize");
ParamAddValue(param, catname, "ModelInputSize", 2);
var catname = "Analog";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "Model");
ParamAddValue(param, catname, "LogImageLocation");
ParamAddValue(param, catname, "LogfileRetentionInDays");
ParamAddValue(param, catname, "ModelInputSize");
ParamAddValue(param, catname, "ModelInputSize", 2);
var catname = "PostProcessing";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "DecimalShift");
ParamAddValue(param, catname, "PreValueUse");
@@ -51,6 +69,9 @@ function ParseConfig() {
ParamAddValue(param, catname, "CheckDigitIncreaseConsistency");
var catname = "MQTT";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "Uri");
ParamAddValue(param, catname, "Topic");
@@ -60,227 +81,77 @@ function ParseConfig() {
ParamAddValue(param, catname, "password");
var catname = "AutoTimer";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "AutoStart");
ParamAddValue(param, catname, "Intervall");
var catname = "Debug";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "Logfile");
ParamAddValue(param, catname, "LogfileRetentionInDays");
var catname = "System";
category[catname] = new Object();
category[catname]["enabled"] = false;
category[catname]["found"] = false;
param[catname] = new Object();
ParamAddValue(param, catname, "TimeZone");
ParamAddValue(param, catname, "TimeServer");
ParamAddValue(param, catname, "AutoAdjustSummertime");
ParamAddValue(param, catname, "Hostname");
ParamAddValue(param, catname, "SetupMode");
while (aktline < config_split.length){
if (config_split[aktline].trim().toUpperCase() == "[MAKEIMAGE]") {
aktline = ParseConfigParamMakeImage(aktline);
continue;
for (var cat in category) {
zw = cat.toUpperCase();
zw1 = "[" + zw + "]";
zw2 = ";[" + zw + "]";
if ((config_split[aktline].trim().toUpperCase() == zw1) || (config_split[aktline].trim().toUpperCase() == zw2)) {
if (config_split[aktline].trim().toUpperCase() == zw1) {
category[cat]["enabled"] = true;
}
category[cat]["found"] = true;
category[cat]["line"] = aktline;
aktline = ParseConfigParamAll(aktline, cat);
continue;
}
}
if (config_split[aktline].trim().toUpperCase() == "[ALIGNMENT]") {
aktline = ParseConfigParamAlignment(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[DIGITS]") {
aktline = ParseConfigParamDigit(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[ANALOG]") {
aktline = ParseConfigParamAnalog(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[POSTPROCESSING]") {
aktline = ParseConfigParamPostProcessing(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[MQTT]") {
aktline = ParseConfigParamMQTT(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[AUTOTIMER]") {
aktline = ParseConfigParamAutoTimer(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[DEBUG]") {
aktline = ParseConfigParamDebug(aktline);
continue;
}
if (config_split[aktline].trim().toUpperCase() == "[SYSTEM]") {
aktline = ParseConfigParamSystem(aktline);
continue;
}
aktline++;
}
}
function ParamAddValue(param, _cat, _param){
function ParamAddValue(param, _cat, _param, _anzParam = 1){
param[_cat][_param] = new Object();
param[_cat][_param]["found"] = false;
param[_cat][_param]["enabled"] = false;
param[_cat][_param]["line"] = -1;
param[_cat][_param]["line"] = -1;
param[_cat][_param]["anzParam"] = _anzParam;
};
function ParseConfigParamSystem(_aktline){
var akt_ref = 0;
function ParseConfigParamAll(_aktline, _catname){
++_aktline;
var catname = "System";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input, " =");
ParamExtractValue(param, linesplit, catname, "TimeZone", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "TimeServer", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "AutoAdjustSummertime", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "TimeUpdateIntervall", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "SetupMode", _aktline, isCom);
++_aktline;
}
return _aktline;
}
function ParseConfigParamDebug(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "Debug";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
while ((_aktline < config_split.length)
&& !(config_split[_aktline][0] == "[")
&& !((config_split[_aktline][0] == ";") && (config_split[_aktline][1] == "["))) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "Logfile", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "LogfileRetentionInDays", _aktline, isCom);
ParamExtractValueAll(param, linesplit, _catname, _aktline, isCom);
++_aktline;
}
return _aktline;
}
function ParseConfigParamAutoTimer(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "AutoTimer";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "AutoStart", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "Intervall", _aktline, isCom);
++_aktline;
}
return _aktline;
}
function ParseConfigParamMQTT(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "MQTT";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "Uri", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "Topic", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "TopicError", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "ClientID", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "user", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "password", _aktline, isCom);
++_aktline;
}
return _aktline;
}
function ParseConfigParamPostProcessing(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "PostProcessing";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "DecimalShift", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "PreValueUse", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "PreValueAgeStartup", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "AllowNegativeRates", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "MaxRateValue", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "ErrorMessage", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "CheckDigitIncreaseConsistency", _aktline, isCom);
++_aktline;
}
return _aktline;
}
function ParseConfigParamAnalog(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "Analog";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "Model", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "LogImageLocation", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "LogfileRetentionInDays", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "ModelInputSize", _aktline, isCom, 2);
++_aktline;
}
return _aktline;
}
function ParseConfigParamDigit(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "Digits";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "Model", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "LogImageLocation", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "LogfileRetentionInDays", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "ModelInputSize", _aktline, isCom, 2);
++_aktline;
}
return _aktline;
}
function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _iscom, _anzvalue = 1){
if ((_linesplit[0].toUpperCase() == _paramname.toUpperCase()) && (_linesplit.length > _anzvalue))
{
@@ -294,66 +165,40 @@ function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _
}
}
function ParseConfigParamAlignment(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "Alignment";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "SearchFieldX", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "SearchFieldY", _aktline, isCom);
++_aktline;
}
return _aktline;
}
function ParseConfigParamMakeImage(_aktline){
var akt_ref = 0;
++_aktline;
var catname = "MakeImage";
while ((akt_ref < 2) && (_aktline < config_split.length) && (config_split[_aktline][0] != "[")) {
var _input = config_split[_aktline];
let [isCom, input] = isCommented(_input);
var linesplit = ZerlegeZeile(input);
ParamExtractValue(param, linesplit, catname, "LogImageLocation", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "WaitBeforeTakingPicture", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "LogfileRetentionInDays", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "ImageQuality", _aktline, isCom);
ParamExtractValue(param, linesplit, catname, "ImageSize", _aktline, isCom);
++_aktline;
}
return _aktline;
function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom){
for (var paramname in _param[_catname]) {
if ((_linesplit[0].toUpperCase() == paramname.toUpperCase()) && (_linesplit.length > _param[_catname][paramname]["anzParam"]))
{
_param[_catname][paramname]["found"] = true;
_param[_catname][paramname]["enabled"] = !_iscom;
_param[_catname][paramname]["line"] = _aktline;
for (var j = 1; j <= _param[_catname][paramname]["anzParam"]; ++j) {
_param[_catname][paramname]["value"+j] = _linesplit[j];
}
}
}
}
function getConfigParameters() {
return param;
}
function setConfigParameters(_param) {
function setConfigParameters(_param, _category) {
for (var cat in _param) {
for (var name in _param[cat]) {
param[cat][name]["found"] = _param[cat][name]["found"];
param[cat][name]["enabled"] = _param[cat][name]["enabled"];
param[cat][name]["line"] = _param[cat][name]["line"];
param[cat][name]["anzpara"] = _param[cat][name]["anzpara"];
for (var j = 1; j <= _param[cat][name]["anzpara"]; ++j) {
param[cat][name]["anzParam"] = _param[cat][name]["anzParam"];
for (var j = 1; j <= _param[cat][name]["anzParam"]; ++j) {
param[cat][name]["value"+j] = _param[cat][name]["value"+j];
}
if (param[cat][name]["found"]) {
var text = name + " ="
for (var j = 1; j <= _param[cat][name]["anzpara"]; ++j) {
for (var j = 1; j <= _param[cat][name]["anzParam"]; ++j) {
text = text + " " + param[cat][name]["value"+j];
}
if (!param[cat][name]["enabled"]) {
@@ -364,6 +209,19 @@ function setConfigParameters(_param) {
}
}
for (var cat in _category) {
if (category[cat]["found"])
{
category[cat]["enabled"] = _category[cat]["enabled"];
text = "[" + cat + "]";
if (!category[cat]["enabled"]) {
text = ";" + text;
}
config_split[category[cat]["line"]] = text;
}
}
config_gesamt = config_split[0];
for (var i = 1; i < config_split.length; ++i){
config_gesamt = config_gesamt + "\n" + config_split[i];
@@ -397,171 +255,16 @@ function SaveConfigToServer(_basepath){
}
FileDeleteOnServer("/config/config.ini", _basepath);
FileSendContent(config_gesamt, "/config/config.ini", _basepath);
}
function createReader(file) {
var image = new Image();
reader.onload = function(evt) {
var image = new Image();
image.onload = function(evt) {
var width = this.width;
var height = this.height;
alert (width); // will produce something like 198
};
image.src = evt.target.result;
};
reader.readAsDataURL(file);
}
function ZerlegeZeile(input, delimiter = " =,")
{
var Output = Array(0);
// delimiter = " =,";
input = trim(input, delimiter);
var pos = findDelimiterPos(input, delimiter);
var token;
while (pos > -1) {
token = input.substr(0, pos);
token = trim(token, delimiter);
Output.push(token);
input = input.substr(pos+1, input.length);
input = trim(input, delimiter);
pos = findDelimiterPos(input, delimiter);
}
Output.push(input);
return Output;
}
function findDelimiterPos(input, delimiter)
{
var pos = -1;
var zw;
var akt_del;
for (var anz = 0; anz < delimiter.length; ++anz)
{
akt_del = delimiter[anz];
zw = input.indexOf(akt_del);
if (zw > -1)
{
if (pos > -1)
{
if (zw < pos)
pos = zw;
}
else
pos = zw;
}
}
return pos;
}
function trim(istring, adddelimiter)
{
while ((istring.length > 0) && (adddelimiter.indexOf(istring[0]) >= 0)){
istring = istring.substr(1, istring.length-1);
}
while ((istring.length > 0) && (adddelimiter.indexOf(istring[istring.length-1]) >= 0)){
istring = istring.substr(0, istring.length-1);
}
return istring;
}
function loadConfig(_basepath) {
var xhttp = new XMLHttpRequest();
config_gesamt = "";
try {
url = _basepath + '/fileserver/config/config.ini';
xhttp.open("GET", url, false);
xhttp.send();
config_gesamt = xhttp.responseText;
return true;
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return false;
}
function getConfig() {
return config_gesamt;
}
function getConfigCategory() {
return category;
}
function FileCopyOnServer(_source, _target, _basepath = ""){
url = _basepath + "/editflow.html?task=copy&in=" + _source + "&out=" + _target;
var xhttp = new XMLHttpRequest();
try {
xhttp.open("GET", url, false);
xhttp.send(); }
catch (error)
{
// alert("Deleting Config.ini failed");
}
}
function FileDeleteOnServer(_filename, _basepath = ""){
var xhttp = new XMLHttpRequest();
var okay = false;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
okay = true;
} else if (xhttp.status == 0) {
// alert("Server closed the connection on delete abruptly!");
// location.reload()
} else {
// alert(xhttp.status + " Error!\n" + xhttp.responseText);
// location.reload()
}
}
};
try {
var url = _basepath + "/delete" + _filename;
xhttp.open("POST", url, false);
xhttp.send();
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return okay;
}
function FileSendContent(_content, _filename, _basepath = ""){
var xhttp = new XMLHttpRequest();
var okay = false;
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
okay = true;
} else if (xhttp.status == 0) {
alert("Server closed the connection abruptly!");
} else {
alert(xhttp.status + " Error!\n" + xhttp.responseText);
}
}
};
try {
upload_path = _basepath + "/upload" + _filename;
xhttp.open("POST", upload_path, false);
xhttp.send(_content);
}
catch (error)
{
// alert("Deleting Config.ini failed");
}
return okay;
}

View File

@@ -1 +1 @@
4.0.1
5.0.0