IgnoreLeadingNaN fix (#3547)

* test1

* test2

* Update edit_config_template.html

* fix

* Update NUMBER.CheckDigitIncreaseConsistency.md

---------

Co-authored-by: CaCO3 <caco3@ruinelli.ch>
This commit is contained in:
SybexX
2025-03-01 00:09:11 +01:00
committed by GitHub
parent c587ca3224
commit cd1165e547
7 changed files with 1828 additions and 1857 deletions

View File

@@ -31,7 +31,6 @@ enum t_RateType {
RateChange // time difference is considered and a normalized rate is used for comparison with NumberPost.maxRate RateChange // time difference is considered and a normalized rate is used for comparison with NumberPost.maxRate
}; };
/** /**
* Holds all properties and settings of a sequence. A sequence is a set of digit and/or analog ROIs that are combined to * Holds all properties and settings of a sequence. A sequence is a set of digit and/or analog ROIs that are combined to
* provide one meter reading (value). * provide one meter reading (value).
@@ -45,6 +44,7 @@ struct NumberPost {
int ChangeRateThreshold; // threshold parameter for negative rate detection int ChangeRateThreshold; // threshold parameter for negative rate detection
bool PreValueOkay; // previousValueValid; indicates that the reading of the previous round has no errors bool PreValueOkay; // previousValueValid; indicates that the reading of the previous round has no errors
bool AllowNegativeRates; // allowNegativeRate; defines if the consistency checks allow negative rates between consecutive meter readings. bool AllowNegativeRates; // allowNegativeRate; defines if the consistency checks allow negative rates between consecutive meter readings.
bool IgnoreLeadingNaN;
bool checkDigitIncreaseConsistency; // extendedConsistencyCheck; performs an additional consistency check to avoid wrong readings bool checkDigitIncreaseConsistency; // extendedConsistencyCheck; performs an additional consistency check to avoid wrong readings
time_t timeStampLastValue; // Timestamp for the last read value; is used for the log time_t timeStampLastValue; // Timestamp for the last read value; is used for the log
time_t timeStampLastPreValue; // Timestamp for the last PreValue set; is used for useMaxRateValue time_t timeStampLastPreValue; // Timestamp for the last PreValue set; is used for useMaxRateValue
@@ -83,4 +83,3 @@ struct NumberPost {
}; };
#endif #endif

View File

@@ -320,7 +320,6 @@ ClassFlowPostProcessing::ClassFlowPostProcessing(std::vector<ClassFlow*>* lfc, C
ListFlowControll = lfc; ListFlowControll = lfc;
flowTakeImage = NULL; flowTakeImage = NULL;
UpdatePreValueINI = false; UpdatePreValueINI = false;
IgnoreLeadingNaN = false;
flowAnalog = _analog; flowAnalog = _analog;
flowDigit = _digit; flowDigit = _digit;
@@ -431,6 +430,27 @@ void ClassFlowPostProcessing::handleAllowNegativeRate(string _decsep, string _va
} }
} }
void ClassFlowPostProcessing::handleIgnoreLeadingNaN(string _decsep, string _value) {
string _digit, _decpos;
int _pospunkt = _decsep.find_first_of(".");
if (_pospunkt > -1) {
_digit = _decsep.substr(0, _pospunkt);
}
else {
_digit = "default";
}
for (int j = 0; j < NUMBERS.size(); ++j) {
bool _zwdc = alphanumericToBoolean(_value);
// Set to default first (if nothing else is set)
if ((_digit == "default") || (NUMBERS[j]->name == _digit)) {
NUMBERS[j]->IgnoreLeadingNaN = _zwdc;
}
}
}
void ClassFlowPostProcessing::handleMaxRateType(string _decsep, string _value) { void ClassFlowPostProcessing::handleMaxRateType(string _decsep, string _value) {
string _digit, _decpos; string _digit, _decpos;
int _pospunkt = _decsep.find_first_of("."); int _pospunkt = _decsep.find_first_of(".");
@@ -509,7 +529,7 @@ void ClassFlowPostProcessing::handleChangeRateThreshold(string _decsep, string _
} }
} }
} }
/*
void ClassFlowPostProcessing::handlecheckDigitIncreaseConsistency(std::string _decsep, std::string _value) void ClassFlowPostProcessing::handlecheckDigitIncreaseConsistency(std::string _decsep, std::string _value)
{ {
std::string _digit; std::string _digit;
@@ -532,7 +552,7 @@ void ClassFlowPostProcessing::handlecheckDigitIncreaseConsistency(std::string _d
} }
} }
} }
*/
bool ClassFlowPostProcessing::ReadParameter(FILE* pfile, string& aktparamgraph) { bool ClassFlowPostProcessing::ReadParameter(FILE* pfile, string& aktparamgraph) {
std::vector<string> splitted; std::vector<string> splitted;
int _n; int _n;
@@ -585,12 +605,7 @@ bool ClassFlowPostProcessing::ReadParameter(FILE* pfile, string& aktparamgraph)
} }
if ((toUpper(_param) == "CHECKDIGITINCREASECONSISTENCY") && (splitted.size() > 1)) { if ((toUpper(_param) == "CHECKDIGITINCREASECONSISTENCY") && (splitted.size() > 1)) {
// handlecheckDigitIncreaseConsistency(splitted[0], splitted[1]); handlecheckDigitIncreaseConsistency(splitted[0], splitted[1]);
if (alphanumericToBoolean(splitted[1])) {
for (_n = 0; _n < NUMBERS.size(); ++_n) {
NUMBERS[_n]->checkDigitIncreaseConsistency = true;
}
}
} }
if ((toUpper(_param) == "ALLOWNEGATIVERATES") && (splitted.size() > 1)) { if ((toUpper(_param) == "ALLOWNEGATIVERATES") && (splitted.size() > 1)) {
@@ -602,7 +617,7 @@ bool ClassFlowPostProcessing::ReadParameter(FILE* pfile, string& aktparamgraph)
} }
if ((toUpper(_param) == "IGNORELEADINGNAN") && (splitted.size() > 1)) { if ((toUpper(_param) == "IGNORELEADINGNAN") && (splitted.size() > 1)) {
IgnoreLeadingNaN = alphanumericToBoolean(splitted[1]); handleIgnoreLeadingNaN(splitted[0], splitted[1]);
} }
if ((toUpper(_param) == "PREVALUEAGESTARTUP") && (splitted.size() > 1)) { if ((toUpper(_param) == "PREVALUEAGESTARTUP") && (splitted.size() > 1)) {
@@ -670,6 +685,7 @@ void ClassFlowPostProcessing::InitNUMBERS() {
_number->FlowRateAct = 0; // m3 / min _number->FlowRateAct = 0; // m3 / min
_number->PreValueOkay = false; _number->PreValueOkay = false;
_number->AllowNegativeRates = false; _number->AllowNegativeRates = false;
_number->IgnoreLeadingNaN = false;
_number->MaxRateValue = 0.1; _number->MaxRateValue = 0.1;
_number->MaxRateType = AbsoluteChange; _number->MaxRateType = AbsoluteChange;
_number->useMaxRateValue = false; _number->useMaxRateValue = false;
@@ -821,7 +837,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime) {
ESP_LOGD(TAG, "After ShiftDecimal: ReturnRaw %s", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After ShiftDecimal: ReturnRaw %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
if (IgnoreLeadingNaN) { if (NUMBERS[j]->IgnoreLeadingNaN) {
while ((NUMBERS[j]->ReturnRawValue.length() > 1) && (NUMBERS[j]->ReturnRawValue[0] == 'N')) { while ((NUMBERS[j]->ReturnRawValue.length() > 1) && (NUMBERS[j]->ReturnRawValue[0] == 'N')) {
NUMBERS[j]->ReturnRawValue.erase(0, 1); NUMBERS[j]->ReturnRawValue.erase(0, 1);
} }
@@ -868,13 +884,8 @@ bool ClassFlowPostProcessing::doFlow(string zwtime) {
if (NUMBERS[j]->checkDigitIncreaseConsistency) { if (NUMBERS[j]->checkDigitIncreaseConsistency) {
if (flowDigit) { if (flowDigit) {
if (flowDigit->getCNNType() != Digit) {
ESP_LOGD(TAG, "checkDigitIncreaseConsistency = true - ignored due to wrong CNN-Type (not Digit Classification)");
}
else {
NUMBERS[j]->Value = checkDigitConsistency(NUMBERS[j]->Value, NUMBERS[j]->DecimalShift, NUMBERS[j]->analog_roi != NULL, NUMBERS[j]->PreValue); NUMBERS[j]->Value = checkDigitConsistency(NUMBERS[j]->Value, NUMBERS[j]->DecimalShift, NUMBERS[j]->analog_roi != NULL, NUMBERS[j]->PreValue);
} }
}
else { else {
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
ESP_LOGD(TAG, "checkDigitIncreaseConsistency = true - no digit numbers defined!"); ESP_LOGD(TAG, "checkDigitIncreaseConsistency = true - no digit numbers defined!");

View File

@@ -10,7 +10,6 @@
#include <string> #include <string>
class ClassFlowPostProcessing : class ClassFlowPostProcessing :
public ClassFlow public ClassFlow
{ {
@@ -19,7 +18,6 @@ protected:
int PreValueAgeStartup; int PreValueAgeStartup;
bool ErrorMessage; bool ErrorMessage;
bool IgnoreLeadingNaN; // SPECIAL CASE for User Gustl ???
ClassFlowCNNGeneral* flowAnalog; ClassFlowCNNGeneral* flowAnalog;
ClassFlowCNNGeneral* flowDigit; ClassFlowCNNGeneral* flowDigit;
@@ -35,15 +33,16 @@ protected:
float checkDigitConsistency(double input, int _decilamshift, bool _isanalog, double _preValue); float checkDigitConsistency(double input, int _decilamshift, bool _isanalog, double _preValue);
void InitNUMBERS(); void InitNUMBERS();
void handleDecimalSeparator(string _decsep, string _value); void handleDecimalSeparator(string _decsep, string _value);
void handleMaxRateValue(string _decsep, string _value); void handleMaxRateValue(string _decsep, string _value);
void handleDecimalExtendedResolution(string _decsep, string _value); void handleDecimalExtendedResolution(string _decsep, string _value);
void handleMaxRateType(string _decsep, string _value); void handleMaxRateType(string _decsep, string _value);
void handleAnalogToDigitTransitionStart(string _decsep, string _value); void handleAnalogToDigitTransitionStart(string _decsep, string _value);
void handleAllowNegativeRate(string _decsep, string _value); void handleAllowNegativeRate(string _decsep, string _value);
void handleIgnoreLeadingNaN(string _decsep, string _value);
void handleChangeRateThreshold(string _decsep, string _value); void handleChangeRateThreshold(string _decsep, string _value);
void handlecheckDigitIncreaseConsistency(std::string _decsep, std::string _value);
std::string GetStringReadouts(general);
void WriteDataLog(int _index); void WriteDataLog(int _index);
@@ -75,5 +74,4 @@ public:
string name(){return "ClassFlowPostProcessing";}; string name(){return "ClassFlowPostProcessing";};
}; };
#endif //CLASSFFLOWPOSTPROCESSING_H #endif //CLASSFFLOWPOSTPROCESSING_H

View File

@@ -31,7 +31,6 @@ AlignmentAlgo
CNNGoodThreshold CNNGoodThreshold
PreValueAgeStartup PreValueAgeStartup
ErrorMessage ErrorMessage
CheckDigitIncreaseConsistency
IO0 IO0
IO1 IO1
IO3 IO3

View File

@@ -6,3 +6,6 @@ Default Value: `false`
An additional consistency check. An additional consistency check.
It especially improves the zero crossing check between digits. It especially improves the zero crossing check between digits.
!!! Note
This parameter must be prefixed with `<NUMBER>` followed by a dot (eg. `main.CheckDigitIncreaseConsistency`). `<NUMBER>` is the name of the number sequence defined in the ROI's.

View File

@@ -2,7 +2,7 @@
<html lang="en" xml:lang="en"> <html lang="en" xml:lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8"/>
<title>Configuration</title> <title>Configuration</title>
<style> <style>
@@ -245,9 +245,7 @@
<hr /> <hr />
<div id="divall" style="display:none"> <div id="divall" style="display:none">
<table class="table"> <table class="table">
<colgroup> <colgroup>
<col span="1" style="width:290px"> <col span="1" style="width:290px">
<col span="1" style="width:300px;"> <col span="1" style="width:300px;">
@@ -257,6 +255,7 @@
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Configuration View</h4></td> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Configuration View</h4></td>
</tr> </tr>
<tr> <tr>
<td class="indent1"> <td class="indent1">
<input style="margin-top:12px;margin-bottom:12px" type="checkbox" id="ExpertModus_enabled" value="1" onclick='UpdateExpertModus()' unchecked> <input style="margin-top:12px;margin-bottom:12px" type="checkbox" id="ExpertModus_enabled" value="1" onclick='UpdateExpertModus()' unchecked>
@@ -809,7 +808,6 @@
<td>$TOOLTIP_Digits_ROIImagesRetention</td> <td>$TOOLTIP_Digits_ROIImagesRetention</td>
</tr> </tr>
<!------------- Ananlog ROIs ------------------> <!------------- Ananlog ROIs ------------------>
<tr style="border-bottom: 2px solid lightgray;" id="Category_Analog_ex4"> <tr style="border-bottom: 2px solid lightgray;" id="Category_Analog_ex4">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;">
@@ -823,8 +821,7 @@
<class id="Analog_Model_text" style="color:black;">Model</class> <class id="Analog_Model_text" style="color:black;">Model</class>
</td> </td>
<td> <td>
<select required class="select_large" id="Analog_Model_value1"> <select required class="select_large" id="Analog_Model_value1"></select>
</select>
</td> </td>
<td>$TOOLTIP_Analog_Model</td> <td>$TOOLTIP_Analog_Model</td>
</tr> </tr>
@@ -832,8 +829,7 @@
<tr class="AnalogItem"> <tr class="AnalogItem">
<td class="indent1"> <td class="indent1">
<input type="checkbox" id="Analog_ROIImagesLocation_enabled" value="1" onclick = 'InvertEnableItem("Analog", "ROIImagesLocation")' unchecked > <input type="checkbox" id="Analog_ROIImagesLocation_enabled" value="1" onclick = 'InvertEnableItem("Analog", "ROIImagesLocation")' unchecked >
<label for=Analog_ROIImagesLocation_enabled><class id="Analog_ROIImagesLocation_text" style="color:black;">ROI Images Location</class> <label for=Analog_ROIImagesLocation_enabled><class id="Analog_ROIImagesLocation_text" style="color:black;">ROI Images Location</class></label>
</label>
</td> </td>
<td> <input required type="text" name="name" id="Analog_ROIImagesLocation_value1"> </td> <td> <input required type="text" name="name" id="Analog_ROIImagesLocation_value1"> </td>
<td>$TOOLTIP_Analog_ROIImagesLocation</td> <td>$TOOLTIP_Analog_ROIImagesLocation</td>
@@ -842,7 +838,8 @@
<tr class="AnalogItem"> <tr class="AnalogItem">
<td class="indent1"> <td class="indent1">
<input type="checkbox" id="Analog_ROIImagesRetention_enabled" value="1" onclick = 'InvertEnableItem("Analog", "ROIImagesRetention")' unchecked > <input type="checkbox" id="Analog_ROIImagesRetention_enabled" value="1" onclick = 'InvertEnableItem("Analog", "ROIImagesRetention")' unchecked >
<label for=Analog_ROIImagesRetention_enabled><class id="Analog_ROIImagesRetention_text" style="color:black;">ROI Images Retention</class></label></td> <label for=Analog_ROIImagesRetention_enabled><class id="Analog_ROIImagesRetention_text" style="color:black;">ROI Images Retention</class></label>
</td>
<td> <td>
<input required type="number" id="Analog_ROIImagesRetention_value1" min="0" step="1" <input required type="number" id="Analog_ROIImagesRetention_value1" min="0" step="1"
oninput="(!validity.rangeUnderflow||(value=0)) && (!validity.stepMismatch||(value=parseInt(this.value)));">Days oninput="(!validity.rangeUnderflow||(value=0)) && (!validity.stepMismatch||(value=parseInt(this.value)));">Days
@@ -850,7 +847,6 @@
<td>$TOOLTIP_Analog_ROIImagesRetention</td> <td>$TOOLTIP_Analog_ROIImagesRetention</td>
</tr> </tr>
<!------------- Post-Processing ------------------> <!------------- Post-Processing ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Post-Processing</h4></td> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Post-Processing</h4></td>
@@ -894,25 +890,10 @@
<td>$TOOLTIP_PostProcessing_ErrorMessage</td> <td>$TOOLTIP_PostProcessing_ErrorMessage</td>
</tr> </tr>
<tr class="expert" unused_id="ex1dddd">
<td class="indent1">
<label><class id="PostProcessing_CheckDigitIncreaseConsistency_text" style="color:black;">Check Digit Increase Consistency</class></label>
</td>
<td>
<select id="PostProcessing_CheckDigitIncreaseConsistency_value1">
<option value="true">enabled (true)</option>
<option value="false" selected>disabled (false)</option>
</select>
</td>
<td>$TOOLTIP_PostProcessing_CheckDigitIncreaseConsistency</td>
</tr>
<tr style="margin-top:12px"> <tr style="margin-top:12px">
<td class="indent1" style="padding-top:25px" colspan="3"> <td class="indent1" style="padding-top:25px" colspan="3">
<b>The following parameters are configurable individually for each number sequence:</b> <b>The following parameters are configurable individually for each number sequence:</b>
<select <select style="font-weight: bold; margin-left:17px" id="Numbers_value1" onchange="numberChanged()"></select>
style="font-weight: bold; margin-left:17px" id="Numbers_value1" onchange="numberChanged()">
</select>
</td> </td>
</tr> </tr>
@@ -1033,6 +1014,18 @@
<td>$TOOLTIP_PostProcessing_NUMBER.IgnoreAllNaN</td> <td>$TOOLTIP_PostProcessing_NUMBER.IgnoreAllNaN</td>
</tr> </tr>
------------------> ------------------>
<tr class="expert" unused_id="ex1dddd">
<td class="indent2">
<label><class id="PostProcessing_CheckDigitIncreaseConsistency_text" style="color:black;">Check Digit Increase Consistency</class></label>
</td>
<td>
<select id="PostProcessing_CheckDigitIncreaseConsistency_value1">
<option value="true">enabled (true)</option>
<option value="false" selected>disabled (false)</option>
</select>
</td>
<td>$TOOLTIP_PostProcessing_NUMBER.CheckDigitIncreaseConsistency</td>
</tr>
<!------------- MQTT ------------------> <!------------- MQTT ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
@@ -1200,8 +1193,8 @@
<option value="energy_mwh">Energymeter (Value: MWh, Rate: MW)</option> <option value="energy_mwh">Energymeter (Value: MWh, Rate: MW)</option>
<option value="energy_gj">Energymeter (Value: GJ, Rate: GJ/h)</option> <option value="energy_gj">Energymeter (Value: GJ, Rate: GJ/h)</option>
<option value="temperature_c">Thermometer (Value: °C, Rate: °C/min)</option> <option value="temperature_c">Thermometer (Value: °C, Rate: °C/min)</option>
<option value="temperature_f">Thermometer (Value: °F, Rate: °F/min)</option> <option value="temperature_c">Thermometer (Value: °F, Rate: °F/min)</option>
<option value="temperature_k">Thermometer (Value: K, Rate: K/min)</option> <option value="temperature_c">Thermometer (Value: K, Rate: K/min)</option>
</select> </select>
</td> </td>
<td>$TOOLTIP_MQTT_MeterType</td> <td>$TOOLTIP_MQTT_MeterType</td>
@@ -1221,11 +1214,10 @@
<tr class="MQTTItem" style="margin-top:12px"> <tr class="MQTTItem" style="margin-top:12px">
<td class="indent1" style="padding-top:25px" colspan="3"> <td class="indent1" style="padding-top:25px" colspan="3">
<b>The following parameters are configurable individually for each number sequence:</b> <b>The following parameters are configurable individually for each number sequence:</b>
<select <select style="font-weight: bold; margin-left:17px" id="NumbersMQTTIdx_value1" onchange="numberMQTTIdxChanged()"></select>
style="font-weight: bold; margin-left:17px" id="NumbersMQTTIdx_value1" onchange="numberMQTTIdxChanged()">
</select>
</td> </td>
</tr> </tr>
<tr class="MQTTItem"> <tr class="MQTTItem">
<td class="indent2"> <td class="indent2">
<input type="checkbox" id="MQTT_DomoticzIDX_enabled" value="1" onclick = 'InvertEnableItem("MQTT", "DomoticzIDX")' unchecked > <input type="checkbox" id="MQTT_DomoticzIDX_enabled" value="1" onclick = 'InvertEnableItem("MQTT", "DomoticzIDX")' unchecked >
@@ -1237,13 +1229,13 @@
<td>$TOOLTIP_MQTT_NUMBER.DomoticzIDX</td> <td>$TOOLTIP_MQTT_NUMBER.DomoticzIDX</td>
</tr> </tr>
<!------------- INFLUXDB v1 ------------------> <!------------- INFLUXDB v1 ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;">
<h4> <h4>
<input type="checkbox" id="Category_InfluxDB_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked > <input type="checkbox" id="Category_InfluxDB_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked >
<label for=Category_InfluxDB_enabled>InfluxDB v1.x</label></h4> <label for=Category_InfluxDB_enabled>InfluxDB v1.x</label>
</h4>
</td> </td>
</tr> </tr>
@@ -1294,9 +1286,7 @@
<tr class="InfluxDBv1Item" style="margin-top:12px"> <tr class="InfluxDBv1Item" style="margin-top:12px">
<td class="indent1" style="padding-top:25px" colspan="3"> <td class="indent1" style="padding-top:25px" colspan="3">
<b>Parameter per number sequence:</b> <b>Parameter per number sequence:</b>
<select <select style="font-weight: bold; margin-left:17px" id="NumbersInfluxDB_value1" onchange="numberInfluxDBChanged()"></select>
style="font-weight: bold; margin-left:17px" id="NumbersInfluxDB_value1" onchange="numberInfluxDBChanged()">
</select>
</td> </td>
</tr> </tr>
@@ -1322,13 +1312,13 @@
<td>$TOOLTIP_InfluxDB_NUMBER.Field</td> <td>$TOOLTIP_InfluxDB_NUMBER.Field</td>
</tr> </tr>
<!------------- INFLUXDB v2 ------------------> <!------------- INFLUXDB v2 ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;">
<h4> <h4>
<input type="checkbox" id="Category_InfluxDBv2_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked > <input type="checkbox" id="Category_InfluxDBv2_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked >
<label for=Category_InfluxDBv2_enabled>InfluxDB v2.x</label></h4> <label for=Category_InfluxDBv2_enabled>InfluxDB v2.x</label>
</h4>
</td> </td>
</tr> </tr>
@@ -1379,9 +1369,7 @@
<tr class="InfluxDBv2Item" style="margin-top:12px"> <tr class="InfluxDBv2Item" style="margin-top:12px">
<td class="indent1" style="padding-top:25px" colspan="3"> <td class="indent1" style="padding-top:25px" colspan="3">
<b>Parameter per number sequence:</b> <b>Parameter per number sequence:</b>
<select <select style="font-weight: bold; margin-left:17px" id="NumbersInfluxDBv2_value1" onchange="numberInfluxDBv2Changed()"></select>
style="font-weight: bold; margin-left:17px" id="NumbersInfluxDBv2_value1" onchange="numberInfluxDBv2Changed()">
</select>
</td> </td>
</tr> </tr>
@@ -1571,7 +1559,8 @@
<td class="indent2"> <td class="indent2">
<span class="GPIO_IO1 GPIO_item">GPIO1 PWM Duty Cycle Resolution</span> <span class="GPIO_IO1 GPIO_item">GPIO1 PWM Duty Cycle Resolution</span>
</td> </td>
<td><input required type="number" id="GPIO_IO1_value3" min="1" max="20" <td>
<input required type="number" id="GPIO_IO1_value3" min="1" max="20"
oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) && oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) &&
(!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO1 GPIO_item">Bits</span> (!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO1 GPIO_item">Bits</span>
</td> </td>
@@ -1641,7 +1630,8 @@
<td class="indent2"> <td class="indent2">
<span class="GPIO_IO3 GPIO_item">GPIO3 PWM Duty Cycle Resolution</span> <span class="GPIO_IO3 GPIO_item">GPIO3 PWM Duty Cycle Resolution</span>
</td> </td>
<td><input required type="number" id="GPIO_IO3_value3" min="1" max="20" <td>
<input required type="number" id="GPIO_IO3_value3" min="1" max="20"
oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) && oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) &&
(!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO3 GPIO_item">Bits</span> (!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO3 GPIO_item">Bits</span>
</td> </td>
@@ -1690,6 +1680,7 @@
</td> </td>
<td>$TOOLTIP_GPIO_IO4</td> <td>$TOOLTIP_GPIO_IO4</td>
</tr> </tr>
<tr class="GPIO_item" style="border-top: 0px;"> <tr class="GPIO_item" style="border-top: 0px;">
<td colspan="2" style="padding-left:28px"> <td colspan="2" style="padding-left:28px">
<b>IMPORTANT NOTE:</b><br> <b>IMPORTANT NOTE:</b><br>
@@ -1698,6 +1689,7 @@
intensity control (PWM) of the LED flash light is not functional anymore (only 100%). intensity control (PWM) of the LED flash light is not functional anymore (only 100%).
</td> </td>
</tr> </tr>
<tr class="GPIO_IO4 GPIO_item expert"> <tr class="GPIO_IO4 GPIO_item expert">
<td class="indent2"> <td class="indent2">
<span class="GPIO_IO4 GPIO_item">GPIO4 Use Interrupt</span> <span class="GPIO_IO4 GPIO_item">GPIO4 Use Interrupt</span>
@@ -1719,7 +1711,8 @@
<td class="indent2"> <td class="indent2">
<span class="GPIO_IO4 GPIO_item">GPIO4 PWM Duty Cycle Resolution</span> <span class="GPIO_IO4 GPIO_item">GPIO4 PWM Duty Cycle Resolution</span>
</td> </td>
<td><input required type="number" id="GPIO_IO4_value3" min="1" max="20" <td>
<input required type="number" id="GPIO_IO4_value3" min="1" max="20"
oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) && oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) &&
(!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO4 GPIO_item">Bits</span> (!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO4 GPIO_item">Bits</span>
</td> </td>
@@ -1792,7 +1785,8 @@
<td class="indent2"> <td class="indent2">
<span class="GPIO_IO12 GPIO_item">GPIO12 PWM Duty Cycle Resolution</span> <span class="GPIO_IO12 GPIO_item">GPIO12 PWM Duty Cycle Resolution</span>
</td> </td>
<td><input required type="number" id="GPIO_IO12_value3" min="1" max="20" <td>
<input required type="number" id="GPIO_IO12_value3" min="1" max="20"
oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) && oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) &&
(!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO12 GPIO_item">Bits</span> (!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO12 GPIO_item">Bits</span>
</td> </td>
@@ -1860,6 +1854,7 @@
</td> </td>
<td>$TOOLTIP_GPIO_LEDColor</td> <td>$TOOLTIP_GPIO_LEDColor</td>
</tr> </tr>
<tr class="GPIO_item" unused_id="LEDRGBex9"> <tr class="GPIO_item" unused_id="LEDRGBex9">
<td></td> <td></td>
<td> <td>
@@ -1868,6 +1863,7 @@
(!validity.stepMismatch||(value=parseInt(this.value)));"> (!validity.stepMismatch||(value=parseInt(this.value)));">
</td> </td>
</tr> </tr>
<tr class="GPIO_item" unused_id="LEDRGBex9"> <tr class="GPIO_item" unused_id="LEDRGBex9">
<td></td> <td></td>
<td> <td>
@@ -1916,9 +1912,11 @@
<td class="indent2"> <td class="indent2">
<span class="GPIO_IO13 GPIO_item">GPIO13 PWM Duty Cycle Resolution</span> <span class="GPIO_IO13 GPIO_item">GPIO13 PWM Duty Cycle Resolution</span>
</td> </td>
<td><input required type="number" id="GPIO_IO13_value3" min="1" max="20" <td>
<input required type="number" id="GPIO_IO13_value3" min="1" max="20"
oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) && oninput="(!validity.rangeUnderflow||(value=1)) && (!validity.rangeOverflow||(value=20)) &&
(!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO13 GPIO_item">Bits</span></td> (!validity.stepMismatch||(value=parseInt(this.value)));"><span class="GPIO_IO13 GPIO_item">Bits</span>
</td>
<td></td> <td></td>
</tr> </tr>
@@ -1947,12 +1945,10 @@
</tr> </tr>
<!------------- GPIO13 end ------------------> <!------------- GPIO13 end ------------------>
<!------------- Autotimer ------------------> <!------------- Autotimer ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Auto Timer</h4></td> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Auto Timer</h4></td>
</tr> </tr>
<!-- <!--
<tr class="expert" unused_id="ex13"> <tr class="expert" unused_id="ex13">
<td class="indent1"> <td class="indent1">
@@ -1967,7 +1963,6 @@
<td>$TOOLTIP_AutoTimer_AutoStart</td> <td>$TOOLTIP_AutoTimer_AutoStart</td>
</tr> </tr>
--> -->
<tr> <tr>
<td class="indent1"> <td class="indent1">
<class id="AutoTimer_Interval_text" style="color:black;">Round Interval</class> <class id="AutoTimer_Interval_text" style="color:black;">Round Interval</class>
@@ -1979,7 +1974,6 @@
<td>$TOOLTIP_AutoTimer_Interval</td> <td>$TOOLTIP_AutoTimer_Interval</td>
</tr> </tr>
<!------------- Data Logging ------------------> <!------------- Data Logging ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Data Logging</h4></td> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Data Logging</h4></td>
@@ -2009,7 +2003,6 @@
<td>$TOOLTIP_DataLogging_DataFilesRetention</td> <td>$TOOLTIP_DataLogging_DataFilesRetention</td>
</tr> </tr>
<!------------- Debug Logging ------------------> <!------------- Debug Logging ------------------>
<tr style="border-bottom: 2px solid lightgray;"> <tr style="border-bottom: 2px solid lightgray;">
<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Debug</h4></td> <td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Debug</h4></td>
@@ -2124,10 +2117,8 @@
<hr> <hr>
<button class="button" onclick="saveTextAsFile()">Save Config</button> <button class="button" onclick="saveTextAsFile()">Save Config</button>
</div> </div>
<script type="text/javascript" src="readconfigparam.js?v=$COMMIT_HASH"></script> <script type="text/javascript" src="readconfigparam.js?v=$COMMIT_HASH"></script>
<script type="text/javascript" src="readconfigcommon.js?v=$COMMIT_HASH"></script> <script type="text/javascript" src="readconfigcommon.js?v=$COMMIT_HASH"></script>
@@ -2264,6 +2255,7 @@ function UpdateInputIndividual(sel) {
ReadParameter(param, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt); ReadParameter(param, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt);
// ReadParameter(param, "PostProcessing", "IgnoreAllNaN", false, NUNBERSAkt); // ReadParameter(param, "PostProcessing", "IgnoreAllNaN", false, NUNBERSAkt);
ReadParameter(param, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt); ReadParameter(param, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt);
ReadParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", false, NUNBERSAkt);
ReadParameter(param, "InfluxDB", "Field", true, NUNBERSAkt); ReadParameter(param, "InfluxDB", "Field", true, NUNBERSAkt);
ReadParameter(param, "InfluxDBv2", "Field", true, NUNBERSAkt); ReadParameter(param, "InfluxDBv2", "Field", true, NUNBERSAkt);
ReadParameter(param, "InfluxDB", "Measurement", true, NUNBERSAkt); ReadParameter(param, "InfluxDB", "Measurement", true, NUNBERSAkt);
@@ -2283,12 +2275,12 @@ function UpdateInputIndividual(sel) {
WriteParameter(param, category, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt); WriteParameter(param, category, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt);
// WriteParameter(param, category, "PostProcessing", "IgnoreAllNaN", false, NUNBERSAkt); // WriteParameter(param, category, "PostProcessing", "IgnoreAllNaN", false, NUNBERSAkt);
WriteParameter(param, category, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt); WriteParameter(param, category, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt);
WriteParameter(param, category, "PostProcessing", "CheckDigitIncreaseConsistency", false, NUNBERSAkt);
WriteParameter(param, category, "InfluxDB", "Field", true, NUNBERSAkt); WriteParameter(param, category, "InfluxDB", "Field", true, NUNBERSAkt);
WriteParameter(param, category, "InfluxDBv2", "Field", true, NUNBERSAkt); WriteParameter(param, category, "InfluxDBv2", "Field", true, NUNBERSAkt);
WriteParameter(param, category, "InfluxDB", "Measurement", true, NUNBERSAkt); WriteParameter(param, category, "InfluxDB", "Measurement", true, NUNBERSAkt);
WriteParameter(param, category, "InfluxDBv2", "Measurement", true, NUNBERSAkt); WriteParameter(param, category, "InfluxDBv2", "Measurement", true, NUNBERSAkt);
WriteParameter(param, category, "MQTT", "DomoticzIDX", true, NUNBERSAkt); WriteParameter(param, category, "MQTT", "DomoticzIDX", true, NUNBERSAkt);
} }
function UpdateInput() { function UpdateInput() {
@@ -2364,7 +2356,7 @@ function UpdateInput() {
WriteParameter(param, category, "PostProcessing", "PreValueUse", false); WriteParameter(param, category, "PostProcessing", "PreValueUse", false);
WriteParameter(param, category, "PostProcessing", "PreValueAgeStartup", true); WriteParameter(param, category, "PostProcessing", "PreValueAgeStartup", true);
WriteParameter(param, category, "PostProcessing", "ErrorMessage", false); WriteParameter(param, category, "PostProcessing", "ErrorMessage", false);
WriteParameter(param, category, "PostProcessing", "CheckDigitIncreaseConsistency", false); // WriteParameter(param, category, "PostProcessing", "CheckDigitIncreaseConsistency", false);
WriteParameter(param, category, "MQTT", "Uri", true); WriteParameter(param, category, "MQTT", "Uri", true);
WriteParameter(param, category, "MQTT", "MainTopic", true); WriteParameter(param, category, "MQTT", "MainTopic", true);
@@ -2533,7 +2525,7 @@ function ReadParameterAll() {
ReadParameter(param, "PostProcessing", "PreValueUse", false); ReadParameter(param, "PostProcessing", "PreValueUse", false);
ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true); ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true);
ReadParameter(param, "PostProcessing", "ErrorMessage", false); ReadParameter(param, "PostProcessing", "ErrorMessage", false);
ReadParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", false); // ReadParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", false);
ReadParameter(param, "MQTT", "Uri", true); ReadParameter(param, "MQTT", "Uri", true);
ReadParameter(param, "MQTT", "MainTopic", true); ReadParameter(param, "MQTT", "MainTopic", true);
@@ -2819,7 +2811,6 @@ function camSettingsSet(){
} }
var _denoise_temp = document.getElementById("TakeImage_CamDenoise_value1").value; var _denoise_temp = document.getElementById("TakeImage_CamDenoise_value1").value;
var _ledi_temp = document.getElementById("TakeImage_LEDIntensity_value1").value; var _ledi_temp = document.getElementById("TakeImage_LEDIntensity_value1").value;
var _zoom_temp = document.getElementById("TakeImage_CamZoom_value1").selectedIndex; var _zoom_temp = document.getElementById("TakeImage_CamZoom_value1").selectedIndex;
@@ -2880,7 +2871,7 @@ function camSettingsSet(){
if (xhttp.responseText == "CamSettingsSet") { if (xhttp.responseText == "CamSettingsSet") {
document.getElementById("overlay").style.display = "none"; document.getElementById("overlay").style.display = "none";
firework.launch('Cam Settings saved', 'success', 5000); firework.launch('Cam Settings saved', 'success', 2000);
return; return;
} }
else { else {
@@ -3099,7 +3090,6 @@ function setVisible(className, visible) {
function EnDisableItem(_status, _param, _category, _cat, _name, _optional, _number = -1) { function EnDisableItem(_status, _param, _category, _cat, _name, _optional, _number = -1) {
// _status = _category[_cat]["enabled"]; // _status = _category[_cat]["enabled"];
_color = "rgb(122, 122, 122)"; _color = "rgb(122, 122, 122)";
if (_status) { if (_status) {

View File

@@ -6,7 +6,6 @@ var ref = new Array(2);
var NUMBERS = new Array(0); var NUMBERS = new Array(0);
var REFERENCES = new Array(0); var REFERENCES = new Array(0);
function getNUMBERSList() { function getNUMBERSList() {
_domainname = getDomainname(); _domainname = getDomainname();
var namenumberslist = ""; var namenumberslist = "";
@@ -33,7 +32,6 @@ function getNUMBERSList() {
return namenumberslist; return namenumberslist;
} }
function getDATAList() { function getDATAList() {
_domainname = getDomainname(); _domainname = getDomainname();
datalist = ""; datalist = "";
@@ -62,7 +60,6 @@ function getDATAList() {
return datalist; return datalist;
} }
function getTFLITEList() { function getTFLITEList() {
_domainname = getDomainname(); _domainname = getDomainname();
tflitelist = ""; tflitelist = "";
@@ -90,7 +87,6 @@ function getTFLITEList() {
return tflitelist; return tflitelist;
} }
function ParseConfig() { function ParseConfig() {
config_split = config_gesamt.split("\n"); config_split = config_gesamt.split("\n");
var aktline = 0; var aktline = 0;
@@ -172,7 +168,7 @@ function ParseConfig() {
category[catname]["enabled"] = false; category[catname]["enabled"] = false;
category[catname]["found"] = false; category[catname]["found"] = false;
param[catname] = new Object(); param[catname] = new Object();
ParamAddValue(param, catname, "DecimalShift", 1, true); ParamAddValue(param, catname, "DecimalShift", 1, true, "0");
ParamAddValue(param, catname, "AnalogToDigitTransitionStart", 1, true, "9.2"); ParamAddValue(param, catname, "AnalogToDigitTransitionStart", 1, true, "9.2");
ParamAddValue(param, catname, "ChangeRateThreshold", 1, true, "2"); ParamAddValue(param, catname, "ChangeRateThreshold", 1, true, "2");
// ParamAddValue(param, catname, "PreValueUse", 1, true, "true"); // ParamAddValue(param, catname, "PreValueUse", 1, true, "true");
@@ -185,7 +181,7 @@ function ParseConfig() {
ParamAddValue(param, catname, "IgnoreLeadingNaN", 1, true, "false"); ParamAddValue(param, catname, "IgnoreLeadingNaN", 1, true, "false");
// ParamAddValue(param, catname, "IgnoreAllNaN", 1, true, "false"); // ParamAddValue(param, catname, "IgnoreAllNaN", 1, true, "false");
ParamAddValue(param, catname, "ErrorMessage"); ParamAddValue(param, catname, "ErrorMessage");
ParamAddValue(param, catname, "CheckDigitIncreaseConsistency"); ParamAddValue(param, catname, "CheckDigitIncreaseConsistency", 1, true, "false");
var catname = "MQTT"; var catname = "MQTT";
category[catname] = new Object(); category[catname] = new Object();
@@ -359,7 +355,6 @@ function ParseConfig() {
} }
} }
function ParamAddValue(param, _cat, _param, _anzParam = 1, _isNUMBER = false, _defaultValue = "", _checkRegExList = null) { function ParamAddValue(param, _cat, _param, _anzParam = 1, _isNUMBER = false, _defaultValue = "", _checkRegExList = null) {
param[_cat][_param] = new Object(); param[_cat][_param] = new Object();
param[_cat][_param]["found"] = false; param[_cat][_param]["found"] = false;
@@ -371,7 +366,6 @@ function ParamAddValue(param, _cat, _param, _anzParam = 1, _isNUMBER = false, _d
param[_cat][_param].checkRegExList = _checkRegExList; param[_cat][_param].checkRegExList = _checkRegExList;
}; };
function ParseConfigParamAll(_aktline, _catname) { function ParseConfigParamAll(_aktline, _catname) {
++_aktline; ++_aktline;
@@ -403,7 +397,6 @@ function ParseConfigParamAll(_aktline, _catname) {
return _aktline; return _aktline;
} }
function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _iscom, _anzvalue = 1) { function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _iscom, _anzvalue = 1) {
if ((_linesplit[0].toUpperCase() == _paramname.toUpperCase()) && (_linesplit.length > _anzvalue)) { if ((_linesplit[0].toUpperCase() == _paramname.toUpperCase()) && (_linesplit.length > _anzvalue)) {
_param[_catname][_paramname]["found"] = true; _param[_catname][_paramname]["found"] = true;
@@ -417,7 +410,6 @@ function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _
} }
} }
function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom) { function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom) {
for (var paramname in _param[_catname]) { for (var paramname in _param[_catname]) {
_AktROI = "default"; _AktROI = "default";
@@ -475,7 +467,6 @@ function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom) {
} }
} }
function getCamConfig() { function getCamConfig() {
ParseConfig(); ParseConfig();
@@ -653,12 +644,10 @@ function getCamConfig() {
return param; return param;
} }
function getConfigParameters() { function getConfigParameters() {
return param; return param;
} }
function WriteConfigININew() { function WriteConfigININew() {
// Cleanup empty NUMBERS // Cleanup empty NUMBERS
for (var j = 0; j < NUMBERS.length; ++j) { for (var j = 0; j < NUMBERS.length; ++j) {
@@ -760,7 +749,6 @@ function WriteConfigININew() {
} }
} }
function isCommented(input) { function isCommented(input) {
let isComment = false; let isComment = false;
@@ -772,7 +760,6 @@ function isCommented(input) {
return [isComment, input]; return [isComment, input];
} }
function SaveConfigToServer(_domainname){ function SaveConfigToServer(_domainname){
// leere Zeilen am Ende löschen // leere Zeilen am Ende löschen
var zw = config_split.length - 1; var zw = config_split.length - 1;
@@ -792,17 +779,14 @@ function SaveConfigToServer(_domainname){
FileSendContent(config_gesamt, "/config/config.ini", _domainname); FileSendContent(config_gesamt, "/config/config.ini", _domainname);
} }
function getConfig() { function getConfig() {
return config_gesamt; return config_gesamt;
} }
function getConfigCategory() { function getConfigCategory() {
return category; return category;
} }
function ExtractROIs(_aktline, _type){ function ExtractROIs(_aktline, _type){
var linesplit = ZerlegeZeile(_aktline); var linesplit = ZerlegeZeile(_aktline);
abc = getNUMBERS(linesplit[0], _type); abc = getNUMBERS(linesplit[0], _type);
@@ -819,7 +803,6 @@ function ExtractROIs(_aktline, _type){
} }
} }
function getNUMBERS(_name, _type, _create = true) { function getNUMBERS(_name, _type, _create = true) {
_pospunkt = _name.indexOf ("."); _pospunkt = _name.indexOf (".");
@@ -879,7 +862,6 @@ function getNUMBERS(_name, _type, _create = true) {
return neuroi; return neuroi;
} }
function CopyReferenceToImgTmp(_domainname) { function CopyReferenceToImgTmp(_domainname) {
for (index = 0; index < 2; ++index) { for (index = 0; index < 2; ++index) {
_filenamevon = REFERENCES[index]["name"]; _filenamevon = REFERENCES[index]["name"];
@@ -894,12 +876,10 @@ function CopyReferenceToImgTmp(_domainname) {
} }
} }
function GetReferencesInfo(){ function GetReferencesInfo(){
return REFERENCES; return REFERENCES;
} }
function UpdateConfigReferences(_domainname){ function UpdateConfigReferences(_domainname){
for (var index = 0; index < 2; ++index) { for (var index = 0; index < 2; ++index) {
_filenamenach = REFERENCES[index]["name"]; _filenamenach = REFERENCES[index]["name"];
@@ -914,7 +894,6 @@ function UpdateConfigReferences(_domainname){
} }
} }
function UpdateConfigReference(_anzneueref, _domainname){ function UpdateConfigReference(_anzneueref, _domainname){
var index = 0; var index = 0;
@@ -939,12 +918,10 @@ function UpdateConfigReference(_anzneueref, _domainname){
FileCopyOnServer(_filenamevon, _filenamenach, _domainname); FileCopyOnServer(_filenamevon, _filenamenach, _domainname);
} }
function getNUMBERInfo(){ function getNUMBERInfo(){
return NUMBERS; return NUMBERS;
} }
function RenameNUMBER(_alt, _neu){ function RenameNUMBER(_alt, _neu){
if ((_neu.indexOf(".") >= 0) || (_neu.indexOf(",") >= 0) || (_neu.indexOf(" ") >= 0) || (_neu.indexOf("\"") >= 0)) { if ((_neu.indexOf(".") >= 0) || (_neu.indexOf(",") >= 0) || (_neu.indexOf(" ") >= 0) || (_neu.indexOf("\"") >= 0)) {
return "Number sequence name must not contain , . \" or a space"; return "Number sequence name must not contain , . \" or a space";
@@ -972,7 +949,6 @@ function RenameNUMBER(_alt, _neu){
return ""; return "";
} }
function DeleteNUMBER(_delete){ function DeleteNUMBER(_delete){
if (NUMBERS.length == 1) { if (NUMBERS.length == 1) {
return "One number sequence is mandatory. Therefore this cannot be deleted" return "One number sequence is mandatory. Therefore this cannot be deleted"
@@ -993,7 +969,6 @@ function DeleteNUMBER(_delete){
return ""; return "";
} }
function CreateNUMBER(_numbernew){ function CreateNUMBER(_numbernew){
found = false; found = false;
@@ -1041,7 +1016,6 @@ function CreateNUMBER(_numbernew){
return ""; return "";
} }
function getROIInfo(_typeROI, _number){ function getROIInfo(_typeROI, _number){
index = -1; index = -1;
@@ -1059,7 +1033,6 @@ function getROIInfo(_typeROI, _number){
} }
} }
function RenameROI(_number, _type, _alt, _neu){ function RenameROI(_number, _type, _alt, _neu){
if ((_neu.includes("=")) || (_neu.includes(".")) || (_neu.includes(":")) || (_neu.includes(",")) || (_neu.includes(";")) || (_neu.includes(" ")) || (_neu.includes("\""))) { if ((_neu.includes("=")) || (_neu.includes(".")) || (_neu.includes(":")) || (_neu.includes(",")) || (_neu.includes(";")) || (_neu.includes(" ")) || (_neu.includes("\""))) {
return "ROI name must not contain . : , ; = \" or space"; return "ROI name must not contain . : , ; = \" or space";
@@ -1098,7 +1071,6 @@ function RenameROI(_number, _type, _alt, _neu){
return ""; return "";
} }
function DeleteNUMBER(_delte) { function DeleteNUMBER(_delte) {
if (NUMBERS.length == 1) { if (NUMBERS.length == 1) {
return "The last number cannot be deleted" return "The last number cannot be deleted"
@@ -1119,7 +1091,6 @@ function DeleteNUMBER(_delte) {
return ""; return "";
} }
function CreateROI(_number, _type, _pos, _roinew, _x, _y, _dx, _dy, _CCW){ function CreateROI(_number, _type, _pos, _roinew, _x, _y, _dx, _dy, _CCW){
_indexnumber = -1; _indexnumber = -1;