mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-09 04:56:53 +03:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2ac4cdc64 | ||
|
|
be902401d1 | ||
|
|
020e93bca2 | ||
|
|
61dfdc2258 | ||
|
|
a98e3c8eab | ||
|
|
58a90ff706 | ||
|
|
d0bf12f3d4 | ||
|
|
af16785bbf |
16
README.md
16
README.md
@@ -6,6 +6,8 @@ This is an example of Artificial Intelligence (AI) calculations on a very cheap
|
||||
|
||||
A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4573481
|
||||
|
||||
or here https://www.thingiverse.com/thing:5028229
|
||||
|
||||
respectively ESP32-Cam housing only: https://www.thingiverse.com/thing:4571627
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/watermeter_all.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/main.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/size.png" width="200">
|
||||
@@ -47,6 +49,20 @@ In other cases you can contact the developer via email: <img src="https://raw.gi
|
||||
|
||||
|
||||
|
||||
##### 9.0.0 - External Illumination (2021-10-23)
|
||||
|
||||
* Implementation of external illumination to adjust positioning, brightness and color of the illumination now individually
|
||||
* Technical details can be found in the wiki: https://github.com/jomjol/AI-on-the-edge-device/wiki/External-LED
|
||||
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/intern_vs_external.jpg" width="500">
|
||||
* New housing published for external LEDs and small clearing: https://www.thingiverse.com/thing:5028229
|
||||
|
||||
|
||||
|
||||
##### 8.5.0 - Multi Meter Support (2021-10-07)
|
||||
|
||||
* Upgrade digital CNN to v13.1.0 (added new images)
|
||||
* bug fix: wlan password with space, double digit output
|
||||
|
||||
##### 8.4.0 - Multi Meter Support (2021-09-25)
|
||||
|
||||
* License change (remove MIT license, remark see below)
|
||||
|
||||
@@ -61,6 +61,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
|
||||
prev = ZeigerEval(GENERAL[_analog]->ROI[i]->result_float, prev);
|
||||
result = std::to_string(prev) + result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
if (CNNType == Digital)
|
||||
@@ -72,6 +73,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
|
||||
else
|
||||
result = result + std::to_string(GENERAL[_analog]->ROI[i]->result_klasse);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
if (CNNType == DigitalHyprid)
|
||||
@@ -116,6 +118,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
|
||||
result = "N" + result;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -540,7 +543,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
|
||||
if (debugdetailgeneral) LogFile.WriteToFile("Nach Invoke");
|
||||
|
||||
_num = tflite->GetOutClassification(0, 10);
|
||||
_nachkomma = tflite->GetOutClassification(11, 22);
|
||||
_nachkomma = tflite->GetOutClassification(11, 21);
|
||||
|
||||
|
||||
string _zwres = "Nach Invoke - Nummer: " + to_string(_num) + " Nachkomma: " + to_string(_nachkomma);
|
||||
|
||||
@@ -89,7 +89,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
|
||||
if (NUMBERS[j]->name == name)
|
||||
{
|
||||
NUMBERS[j]->PreValue = stof(zwvalue.c_str());
|
||||
NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
||||
NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma + 1); // SIcherheitshalber 1 Stelle mehr, da ggf. Exgtended Resolution an ist (wird erst beim ersten Durchlauf gesetzt)
|
||||
|
||||
time_t tStart;
|
||||
int yy, month, dd, hh, mm, ss;
|
||||
@@ -123,7 +123,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
|
||||
|
||||
if (NUMBERS[j]->digit_roi || NUMBERS[j]->analog_roi)
|
||||
{
|
||||
NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma);
|
||||
NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma + 1); // SIcherheitshalber 1 Stelle mehr, da ggf. Exgtended Resolution an ist (wird erst beim ersten Durchlauf gesetzt)
|
||||
NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
|
||||
}
|
||||
}
|
||||
@@ -602,6 +602,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
||||
}
|
||||
if (NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi)
|
||||
NUMBERS[j]->ReturnRawValue = NUMBERS[j]->ReturnRawValue + ".";
|
||||
|
||||
if (NUMBERS[j]->analog_roi)
|
||||
NUMBERS[j]->ReturnRawValue = NUMBERS[j]->ReturnRawValue + flowAnalog->getReadout(j, NUMBERS[j]->isExtendedResolution);
|
||||
|
||||
@@ -822,14 +823,14 @@ float ClassFlowPostProcessing::checkDigitConsistency(float input, int _decilamsh
|
||||
while (pot <= pot_max)
|
||||
{
|
||||
zw = input / pow(10, pot-1);
|
||||
aktdigit_before = ((int) zw) % 10;
|
||||
aktdigit_before = ((int) zw + 10) % 10;
|
||||
zw = _preValue / pow(10, pot-1);
|
||||
olddigit_before = ((int) zw) % 10;
|
||||
olddigit_before = ((int) zw + 10) % 10;
|
||||
|
||||
zw = input / pow(10, pot);
|
||||
aktdigit = ((int) zw) % 10;
|
||||
aktdigit = ((int) zw + 10) % 10;
|
||||
zw = _preValue / pow(10, pot);
|
||||
olddigit = ((int) zw) % 10;
|
||||
olddigit = ((int) zw + 10) % 10;
|
||||
|
||||
no_nulldurchgang = (olddigit_before <= aktdigit_before);
|
||||
|
||||
|
||||
@@ -44,12 +44,12 @@ int CTfLiteClass::GetOutClassification(int _von, int _bis)
|
||||
//printf("\n number output neurons: %d\n\n", numeroutput);
|
||||
|
||||
if (_bis == -1)
|
||||
_bis = numeroutput;
|
||||
_bis = numeroutput -1;
|
||||
|
||||
if (_von == -1)
|
||||
_von = 0;
|
||||
|
||||
if (_bis > numeroutput)
|
||||
if (_bis >= numeroutput)
|
||||
{
|
||||
printf("ANZAHL OUTPUT NEURONS passt nicht zu geforderter Classifizierung!");
|
||||
return -1;
|
||||
@@ -57,7 +57,7 @@ int CTfLiteClass::GetOutClassification(int _von, int _bis)
|
||||
|
||||
zw_max = output2->data.f[_von];
|
||||
zw_class = _von;
|
||||
for (int i = _von+1; i <= _bis; ++i)
|
||||
for (int i = _von + 1; i <= _bis; ++i)
|
||||
{
|
||||
zw = output2->data.f[i];
|
||||
if (zw > zw_max)
|
||||
|
||||
@@ -184,32 +184,6 @@ void wifi_init_sta(const char *_ssid, const char *_password, const char *_hostna
|
||||
ip_addr_set_ip4_u32(&dns_info.ip, ip.addr);
|
||||
ESP_ERROR_CHECK(esp_netif_set_dns_info(my_sta, ESP_NETIF_DNS_MAIN, &dns_info));
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// esp_netif_create_default_wifi_sta();
|
||||
|
||||
// wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
// ESP_ERROR_CHECK(esp_wifi_init(&cfg));
|
||||
|
||||
|
||||
|
||||
/*
|
||||
////////////////////////////// esp-idf 4.2 //////////////////////////
|
||||
esp_event_handler_instance_t instance_any_id;
|
||||
esp_event_handler_instance_t instance_got_ip;
|
||||
ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,
|
||||
ESP_EVENT_ANY_ID,
|
||||
&event_handler,
|
||||
NULL,
|
||||
&instance_any_id));
|
||||
ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT,
|
||||
IP_EVENT_STA_GOT_IP,
|
||||
&event_handler,
|
||||
NULL,
|
||||
&instance_got_ip));
|
||||
////////////////////////// ENDE esp-idf 4.2 ///////////////////////////
|
||||
*/
|
||||
|
||||
ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL));
|
||||
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL));
|
||||
@@ -253,27 +227,6 @@ void wifi_init_sta(const char *_ssid, const char *_password, const char *_hostna
|
||||
} else {
|
||||
ESP_LOGE(TAG, "UNEXPECTED EVENT");
|
||||
}
|
||||
|
||||
/* The event will not be processed after unregister */
|
||||
/*
|
||||
////////////////////////////// esp-idf 4.2 //////////////////////////
|
||||
ESP_ERROR_CHECK(esp_event_handler_instance_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, instance_got_ip));
|
||||
ESP_ERROR_CHECK(esp_event_handler_instance_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, instance_any_id));
|
||||
////////////////////////// ENDE esp-idf 4.2 ///////////////////////////
|
||||
*/
|
||||
|
||||
/* Deaktiveren, damit bei einen Verbindungsabbruch neu aufgebaut wird
|
||||
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler));
|
||||
ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler));
|
||||
vEventGroupDelete(s_wifi_event_group);
|
||||
*/
|
||||
|
||||
/*
|
||||
while (BlinkIsRunning)
|
||||
{
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <string.h>
|
||||
|
||||
|
||||
std::vector<string> ZerlegeZeile(std::string input, std::string _delimiter = "")
|
||||
std::vector<string> ZerlegeZeileWLAN(std::string input, std::string _delimiter = "")
|
||||
{
|
||||
std::vector<string> Output;
|
||||
std::string delimiter = " =,";
|
||||
@@ -23,13 +23,13 @@ std::vector<string> ZerlegeZeile(std::string input, std::string _delimiter = "")
|
||||
input = trim(input, delimiter);
|
||||
size_t pos = findDelimiterPos(input, delimiter);
|
||||
std::string token;
|
||||
while (pos != std::string::npos) {
|
||||
if (pos != std::string::npos) // Zerlegt nur bis ersten Gleichheitszeichen !!! Sonderfall für WLAN.ini
|
||||
{
|
||||
token = input.substr(0, pos);
|
||||
token = trim(token, delimiter);
|
||||
Output.push_back(token);
|
||||
input.erase(0, pos + 1);
|
||||
input = trim(input, delimiter);
|
||||
pos = findDelimiterPos(input, delimiter);
|
||||
}
|
||||
Output.push_back(input);
|
||||
|
||||
@@ -67,10 +67,8 @@ void LoadWlanFromFile(std::string fn, char *&_ssid, char *&_password, char *&_ho
|
||||
while ((line.size() > 0) || !(feof(pFile)))
|
||||
{
|
||||
// printf("%s", line.c_str());
|
||||
zerlegt = ZerlegeZeile(line, "=");
|
||||
zerlegt = ZerlegeZeileWLAN(line, "=");
|
||||
zerlegt[0] = trim(zerlegt[0], " ");
|
||||
for (int i = 2; i < zerlegt.size(); ++i)
|
||||
zerlegt[1] = zerlegt[1] + "=" + zerlegt[i];
|
||||
|
||||
if ((zerlegt.size() > 1) && (toUpper(zerlegt[0]) == "HOSTNAME")){
|
||||
hostname = trim(zerlegt[1]);
|
||||
@@ -212,7 +210,7 @@ bool ChangeHostName(std::string fn, std::string _newhostname)
|
||||
while ((line.size() > 0) || !(feof(pFile)))
|
||||
{
|
||||
printf("%s", line.c_str());
|
||||
zerlegt = ZerlegeZeile(line, "=");
|
||||
zerlegt = ZerlegeZeileWLAN(line, "=");
|
||||
zerlegt[0] = trim(zerlegt[0], " ");
|
||||
|
||||
if ((zerlegt.size() > 1) && (toUpper(zerlegt[0]) == "HOSTNAME")){
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const char* GIT_REV="147d974";
|
||||
const char* GIT_REV="be90240";
|
||||
const char* GIT_TAG="";
|
||||
const char* GIT_BRANCH="master";
|
||||
const char* BUILD_TIME="2021-09-25 18:55";
|
||||
const char* BUILD_TIME="2021-10-23 16:33";
|
||||
@@ -13,7 +13,7 @@ extern "C"
|
||||
#include "Helper.h"
|
||||
#include <fstream>
|
||||
|
||||
const char* GIT_BASE_BRANCH = "master - v8.4.0 - 2021-09-25";
|
||||
const char* GIT_BASE_BRANCH = "master - v9.0.0 - 2021-10-23";
|
||||
|
||||
|
||||
const char* git_base_branch(void)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const char* GIT_REV="147d974";
|
||||
const char* GIT_REV="be90240";
|
||||
const char* GIT_TAG="";
|
||||
const char* GIT_BRANCH="master";
|
||||
const char* BUILD_TIME="2021-09-25 18:55";
|
||||
const char* BUILD_TIME="2021-10-23 16:33";
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
images/Power_Meter_Mounted.jpg
Normal file
BIN
images/Power_Meter_Mounted.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 438 KiB |
BIN
images/external_GPIO_settings.jpg
Normal file
BIN
images/external_GPIO_settings.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
BIN
images/install_external_led.jpg
Normal file
BIN
images/install_external_led.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
BIN
images/intern_vs_external.jpg
Normal file
BIN
images/intern_vs_external.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
@@ -20,7 +20,7 @@ FlipImageSize = false
|
||||
/config/ref1.jpg 442 142
|
||||
|
||||
[Digits]
|
||||
Model = /config/dig1210s2q.tflite
|
||||
Model = /config/dig1310s3q.tflite
|
||||
;LogImageLocation = /log/digit
|
||||
;LogfileRetentionInDays = 3
|
||||
ModelInputSize = 20 32
|
||||
@@ -63,6 +63,9 @@ CheckDigitIncreaseConsistency = true
|
||||
;IO4 = built-in-led disabled 10 false false
|
||||
;IO12 = input-pullup disabled 10 false false
|
||||
;IO13 = input-pullup disabled 10 false false
|
||||
LEDType = WS2812
|
||||
LEDNumbers = 2
|
||||
LEDColor = 50 50 50
|
||||
|
||||
[AutoTimer]
|
||||
AutoStart = true
|
||||
|
||||
BIN
sd-card/config/dig1310s3q.tflite
Normal file
BIN
sd-card/config/dig1310s3q.tflite
Normal file
Binary file not shown.
@@ -636,13 +636,13 @@ textarea {
|
||||
<td colspan="4" style="padding-left: 20px;">
|
||||
<h4><input type="checkbox" id="Category_GPIO_enabled" value="1" onclick='UpdateAfterCategoryCheck()' unchecked >
|
||||
GPIO Settings
|
||||
<span class="GPIO_item" style="color: red;"><b>EXPERIMENTAL</b> - Enabling GPIO handler, disable by default integrated flash light. Please enable it with GPIO4 settings.</span>
|
||||
<span class="GPIO_item" > - Enabling GPIO handler, disable by default integrated flash light. Please enable it with GPIO4 (internal flash LED) settings or GPIO12 (external LED).</span>
|
||||
</h4>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!------------- GPIO0 begin ------------------>
|
||||
<tr class="GPIO_IO0 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
<input type="checkbox" id="GPIO_IO0_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO0")' unchecked>
|
||||
</td>
|
||||
@@ -656,9 +656,6 @@ textarea {
|
||||
<option value="input-pullup">input pullup</option>
|
||||
<option value="input-pulldown">input pulldown</option>
|
||||
<option value="output">output</option>
|
||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
||||
</select>
|
||||
</td>
|
||||
</td>
|
||||
@@ -668,10 +665,10 @@ textarea {
|
||||
<span style="color: red">Pin is used to activate flash mode and must therefore be HIGH when booting.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO0 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 0 use interrupt</span>
|
||||
<span id="GPIO_IO0_text" class="GPIO_IO0 GPIO_item">GPIO 0 use interrupt</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -689,10 +686,10 @@ textarea {
|
||||
GPIO 0 enable interrupt trigger
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO0 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 0 PWM duty resolution</span>
|
||||
<span class="GPIO_IO0 GPIO_item">GPIO 0 PWM duty resolution</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="number" id="GPIO_IO0_value3" min="1" max="20"></td>
|
||||
@@ -701,10 +698,10 @@ textarea {
|
||||
GPIO 0 LEDC PWM duty resolution in bit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO0 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 0 enable MQTT</span>
|
||||
<span class="GPIO_IO0 GPIO_item">GPIO 0 enable MQTT</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO0_value4"></td>
|
||||
@@ -713,10 +710,10 @@ textarea {
|
||||
GPIO 0 enable MQTT publishing/subscribing
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO0 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 0 enable HTTP</span>
|
||||
<span class="GPIO_IO0 GPIO_item">GPIO 0 enable HTTP</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO0_value5"></td>
|
||||
@@ -725,10 +722,10 @@ textarea {
|
||||
GPIO 0 enable HTTP write/read
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO0 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO0 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 0 name</span>
|
||||
<span class="GPIO_IO0 GPIO_item">GPIO 0 name</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="text" id="GPIO_IO0_value6"></td>
|
||||
@@ -740,12 +737,12 @@ textarea {
|
||||
<!------------- GPIO0 end ------------------>
|
||||
|
||||
<!------------- GPIO1 begin ------------------>
|
||||
<tr class="GPIO_IO1 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
<input type="checkbox" id="GPIO_IO1_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO1")' unchecked>
|
||||
</td>
|
||||
<td>
|
||||
<span id="GPIO_IO1_text">GPIO 1 state</span>
|
||||
<span id="GPIO_IO1_text" class="GPIO_IO1 GPIO_item">GPIO 1 state</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -754,9 +751,6 @@ textarea {
|
||||
<option value="input-pullup">input pullup</option>
|
||||
<option value="input-pulldown">input pulldown</option>
|
||||
<option value="output">output</option>
|
||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
||||
</select>
|
||||
</td>
|
||||
</td>
|
||||
@@ -764,10 +758,10 @@ textarea {
|
||||
GPIO 1 <br><span style="color: blue">Used by default for serial communication as TX pin.<br>Required for seriales monitor.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO1 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 1 use interrupt</span>
|
||||
<span class="GPIO_IO1 GPIO_item" class="expert">GPIO 1 use interrupt</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -785,10 +779,10 @@ textarea {
|
||||
GPIO 1 enable interrupt trigger
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO1 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 1 PWM duty resolution</span>
|
||||
<span class="GPIO_IO1 GPIO_item">GPIO 1 PWM duty resolution</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="number" id="GPIO_IO1_value3" min="1" max="20"></td>
|
||||
@@ -797,10 +791,10 @@ textarea {
|
||||
GPIO 1 LEDC PWM duty resolution in bit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO1 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 1 enable MQTT</span>
|
||||
<span class="GPIO_IO1 GPIO_item">GPIO 1 enable MQTT</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO1_value4"></td>
|
||||
@@ -809,10 +803,10 @@ textarea {
|
||||
GPIO 1 enable MQTT publishing/subscribing
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO1 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 1 enable HTTP</span>
|
||||
<span class="GPIO_IO1 GPIO_item">GPIO 1 enable HTTP</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO1_value5"></td>
|
||||
@@ -821,10 +815,10 @@ textarea {
|
||||
GPIO 1 enable HTTP write/read
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO1 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO1 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 1 name</span>
|
||||
<span class="GPIO_IO1 GPIO_item" class="expert">GPIO 1 name</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="text" id="GPIO_IO1_value6"></td>
|
||||
@@ -836,12 +830,12 @@ textarea {
|
||||
<!------------- GPIO1 end ------------------>
|
||||
|
||||
<!------------- GPIO3 begin ------------------>
|
||||
<tr class="GPIO_IO3 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
<input type="checkbox" id="GPIO_IO3_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO3")' unchecked>
|
||||
</td>
|
||||
<td>
|
||||
<span id="GPIO_IO3_text">GPIO 3 state</span>
|
||||
<span id="GPIO_IO3_text" class="GPIO_IO3 GPIO_item">GPIO 3 state</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -850,9 +844,6 @@ textarea {
|
||||
<option value="input-pullup">input pullup</option>
|
||||
<option value="input-pulldown">input pulldown</option>
|
||||
<option value="output">output</option>
|
||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
||||
</select>
|
||||
</td>
|
||||
</td>
|
||||
@@ -860,10 +851,10 @@ textarea {
|
||||
GPIO 3 <span style="color: blue">Used by default for serial communication as RX pin.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO3 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 3 use interrupt</span>
|
||||
<span class="GPIO_IO3 GPIO_item">GPIO 3 use interrupt</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -881,10 +872,10 @@ textarea {
|
||||
GPIO 3 Used by default for serial communication as RX pin.
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO3 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 3 PWM duty resolution</span>
|
||||
<span class="GPIO_IO3 GPIO_item">GPIO 3 PWM duty resolution</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="number" id="GPIO_IO3_value3" min="1" max="20"></td>
|
||||
@@ -893,10 +884,10 @@ textarea {
|
||||
GPIO 3 LEDC PWM duty resolution in bit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO3 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 3 enable MQTT</span>
|
||||
<span class="GPIO_IO3 GPIO_item">GPIO 3 enable MQTT</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO3_value4"></td>
|
||||
@@ -905,10 +896,10 @@ textarea {
|
||||
GPIO 3 enable MQTT publishing/subscribing
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO3 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 3 enable HTTP</span>
|
||||
<span class="GPIO_IO3 GPIO_item">GPIO 3 enable HTTP</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO3_value5"></td>
|
||||
@@ -917,10 +908,10 @@ textarea {
|
||||
GPIO 3 enable HTTP write/read
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO3 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO3 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 3 name</span>
|
||||
<span class="GPIO_IO3 GPIO_item">GPIO 3 name</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="text" id="GPIO_IO3_value6"></td>
|
||||
@@ -937,7 +928,7 @@ textarea {
|
||||
<input type="checkbox" id="GPIO_IO4_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO4")' unchecked>
|
||||
</td>
|
||||
<td>
|
||||
<span id="GPIO_IO4_text">GPIO 4 state</span>
|
||||
<span id="GPIO_IO4_text" class="GPIO_IO4 GPIO_item">GPIO 4 state</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -947,9 +938,6 @@ textarea {
|
||||
<option value="input-pulldown">input pulldown</option>
|
||||
<option value="output">output</option>
|
||||
<option value="built-in-led">built-in led flash light</option>
|
||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
||||
</select>
|
||||
</td>
|
||||
</td>
|
||||
@@ -958,10 +946,10 @@ textarea {
|
||||
<span style="color: red">Pin is used for build-in flash light.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO4 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 4 use interrupt</span>
|
||||
<span class="GPIO_IO4 GPIO_item">GPIO 4 use interrupt</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -979,10 +967,10 @@ textarea {
|
||||
GPIO 4 enable interrupt trigger
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO4 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 4 PWM duty resolution</span>
|
||||
<span class="GPIO_IO4 GPIO_item">GPIO 4 PWM duty resolution</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="number" id="GPIO_IO4_value3" min="1" max="20"></td>
|
||||
@@ -991,10 +979,10 @@ textarea {
|
||||
GPIO 4 LEDC PWM duty resolution in bit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO4 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 4 enable MQTT</span>
|
||||
<span class="GPIO_IO4 GPIO_item">GPIO 4 enable MQTT</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO4_value4"></td>
|
||||
@@ -1003,10 +991,10 @@ textarea {
|
||||
GPIO 4 enable MQTT publishing/subscribing
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO4 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 4 enable HTTP</span>
|
||||
<span class="GPIO_IO4 GPIO_item">GPIO 4 enable HTTP</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO4_value5"></td>
|
||||
@@ -1015,10 +1003,10 @@ textarea {
|
||||
GPIO 4 enable HTTP write/read
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO4 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO4 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 4 name</span>
|
||||
<span class="GPIO_IO4 GPIO_item">GPIO 4 name</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="text" id="GPIO_IO4_value6"></td>
|
||||
@@ -1035,7 +1023,7 @@ textarea {
|
||||
<input type="checkbox" id="GPIO_IO12_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO12")' unchecked>
|
||||
</td>
|
||||
<td>
|
||||
<span id="GPIO_IO12_text">GPIO 12 state</span>
|
||||
<span class="GPIO_IO12 GPIO_item" id="GPIO_IO12_text">GPIO 12 state</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -1044,9 +1032,7 @@ textarea {
|
||||
<option value="input-pullup">input pullup</option>
|
||||
<option value="input-pulldown">input pulldown</option>
|
||||
<option value="output">output</option>
|
||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
||||
<option value="external-flash-ws281x">external flash light ws281x controlled (experimental)</option>
|
||||
<option value="external-flash-ws281x">external flash light ws281x controlled</option>
|
||||
</select>
|
||||
</td>
|
||||
</td>
|
||||
@@ -1054,14 +1040,14 @@ textarea {
|
||||
GPIO 12 is usable without restrictions
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO12 GPIO_item">
|
||||
<tr class=expert class="GPIO_IO12 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 12 use interrupt</span>
|
||||
<span class="GPIO_IO12 GPIO_item">GPIO 12 use interrupt</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
<select id="GPIO_IO12_value2">
|
||||
<td>
|
||||
<select class="GPIO_IO12 GPIO_item" id="GPIO_IO12_value2">
|
||||
<option value="disabled">disabled</option>
|
||||
<option value="rising-edge">rising edge</option>
|
||||
<option value="falling-edge">falling edge</option>
|
||||
@@ -1075,10 +1061,10 @@ textarea {
|
||||
GPIO 12 enable interrupt trigger
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO12 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 12 PWM duty resolution</span>
|
||||
<span class="GPIO_IO12 GPIO_item">GPIO 12 PWM duty resolution</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="number" id="GPIO_IO12_value3" min="1" max="20"></td>
|
||||
@@ -1087,10 +1073,10 @@ textarea {
|
||||
GPIO 12 LEDC PWM duty resolution in bit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO12 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 12 enable MQTT</span>
|
||||
<span class="GPIO_IO12 GPIO_item">GPIO 12 enable MQTT</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO12_value4"></td>
|
||||
@@ -1099,10 +1085,10 @@ textarea {
|
||||
GPIO 12 enable MQTT publishing/subscribing
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO12 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 12 enable HTTP</span>
|
||||
<span class="GPIO_IO12 GPIO_item">GPIO 12 enable HTTP</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO12_value5"></td>
|
||||
@@ -1111,10 +1097,10 @@ textarea {
|
||||
GPIO 12 enable HTTP write/read
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO12 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO12 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 12 name</span>
|
||||
<span class="GPIO_IO12 GPIO_item">GPIO 12 name</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="text" id="GPIO_IO12_value6"></td>
|
||||
@@ -1123,10 +1109,60 @@ textarea {
|
||||
GPIO 12 MQTT topic name (empty = GPIO12). Allowed characters (a-z, A-Z, 0-9, _, -)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="GPIO_IO12 GPIO_item" id="wstypeex3">
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
</td>
|
||||
<td>
|
||||
<span class="GPIO_IO12 GPIO_item" id="GPIO_LEDType_text">LED-Type</span>
|
||||
</td>
|
||||
<td class="GPIO_IO12 GPIO_item">
|
||||
<select class="GPIO_IO12 GPIO_item" id="GPIO_LEDType_value1">
|
||||
<option value="WS2812" selected>WS2812</option>
|
||||
<option value="WS2812B">WS2812B</option>
|
||||
<option value="SK6812">SK6812 (not tested)</option>
|
||||
<option value="WS2813">WS2813 (not tested)</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="description">
|
||||
Type of WS2812x, that is connected to GPIO12
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="GPIO_IO12 GPIO_item" id="LEDANZex8" >
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
</td>
|
||||
<td>
|
||||
<span class="GPIO_IO12 GPIO_item" id="GPIO_LEDNumbers_text">Numbers of LEDs</span>
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" name="name" id="GPIO_LEDNumbers_value1" size="13" min="1">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Number of LEDs on the external LED-stripe
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO12 GPIO_item" id="LEDRGBex9">
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
</td>
|
||||
<td>
|
||||
<span class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_text">LED Color</span>
|
||||
</td>
|
||||
<td class="GPIO_IO12 GPIO_item">
|
||||
R <input class="smallSelect" class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_value1" size="12">
|
||||
G <input class="smallSelect" class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_value2" size="12">
|
||||
B <input class="smallSelect" class="GPIO_IO12 GPIO_item" id="GPIO_LEDColor_value3" size="12">
|
||||
</td>
|
||||
<td style="font-size: 80%;">
|
||||
Color of LEDs in (R)ed, (G)reen (B)lue from 0...255
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<!------------- GPIO12 end ------------------>
|
||||
|
||||
<!------------- GPIO13 begin ------------------>
|
||||
<tr class="GPIO_IO13 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;">
|
||||
<input type="checkbox" id="GPIO_IO13_enabled" value="1" onclick = 'InvertEnableItem("GPIO", "IO13")' unchecked>
|
||||
</td>
|
||||
@@ -1140,9 +1176,6 @@ textarea {
|
||||
<option value="input-pullup">input pullup</option>
|
||||
<option value="input-pulldown">input pulldown</option>
|
||||
<option value="output">output</option>
|
||||
<option value="output-pwm" disabled>output pwm (not implemented)</option>
|
||||
<option value="external-flash-pwm" disabled>external flash light pwm controlled (not implemented)</option>
|
||||
<option value="external-flash-ws281x" disabled>external flash light ws281x controlled (not implemented)</option>
|
||||
</select>
|
||||
</td>
|
||||
</td>
|
||||
@@ -1150,10 +1183,10 @@ textarea {
|
||||
GPIO 13 is usable without restrictions
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO13 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 13 use interrupt</span>
|
||||
<span class="GPIO_IO13 GPIO_item">GPIO 13 use interrupt</span>
|
||||
</td>
|
||||
<td>
|
||||
<td">
|
||||
@@ -1171,10 +1204,10 @@ textarea {
|
||||
GPIO 13 enable interrupt trigger
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO13 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 13 PWM duty resolution</span>
|
||||
<span class="GPIO_IO13 GPIO_item">GPIO 13 PWM duty resolution</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="number" id="GPIO_IO13_value3" min="1" max="20"></td>
|
||||
@@ -1183,10 +1216,10 @@ textarea {
|
||||
GPIO 13 LEDC PWM duty resolution in bit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO13 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 13 enable MQTT</span>
|
||||
<span class="GPIO_IO13 GPIO_item">GPIO 13 enable MQTT</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO13_value4"></td>
|
||||
@@ -1195,10 +1228,10 @@ textarea {
|
||||
GPIO 13 enable MQTT publishing/subscribing
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO13 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 13 enable HTTP</span>
|
||||
<span class="GPIO_IO13 GPIO_item">GPIO 13 enable HTTP</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="checkbox" id="GPIO_IO13_value5"></td>
|
||||
@@ -1207,10 +1240,10 @@ textarea {
|
||||
GPIO 13 enable HTTP write/read
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="GPIO_IO13 GPIO_item">
|
||||
<tr class="expert" class="GPIO_IO13 GPIO_item">
|
||||
<td width="20px" style="padding-left: 40px;"></td>
|
||||
<td>
|
||||
<span>GPIO 13 name</span>
|
||||
<span class="GPIO_IO13 GPIO_item">GPIO 13 name</span>
|
||||
</td>
|
||||
<td>
|
||||
<td"><input type="text" id="GPIO_IO13_value6"></td>
|
||||
@@ -1496,6 +1529,11 @@ function InvertEnableItem(_cat, _param)
|
||||
}
|
||||
|
||||
function setEnabled(className, enabled) {
|
||||
_color = "color:lightgrey;";
|
||||
if (enabled) {
|
||||
_color = "color:black;";
|
||||
}
|
||||
|
||||
let elements = document.getElementsByClassName(className);
|
||||
for (i = 0; i < elements.length; i++) {
|
||||
if (enabled) {
|
||||
@@ -1509,6 +1547,7 @@ function setEnabled(className, enabled) {
|
||||
if (inputs[j].id.endsWith("_enabled"))
|
||||
continue;
|
||||
|
||||
inputs[j].style = _color
|
||||
if (enabled) {
|
||||
inputs[j].removeAttribute("disabled");
|
||||
} else {
|
||||
@@ -1700,6 +1739,9 @@ function UpdateInput() {
|
||||
WriteParameter(param, category, "GPIO", "IO4", true);
|
||||
WriteParameter(param, category, "GPIO", "IO12", true);
|
||||
WriteParameter(param, category, "GPIO", "IO13", true);
|
||||
WriteParameter(param, category, "GPIO", "LEDType", false);
|
||||
WriteParameter(param, category, "GPIO", "LEDNumbers", false);
|
||||
WriteParameter(param, category, "GPIO", "LEDColor", false);
|
||||
|
||||
WriteParameter(param, category, "AutoTimer", "AutoStart", false);
|
||||
WriteParameter(param, category, "AutoTimer", "Intervall", false);
|
||||
@@ -1763,6 +1805,16 @@ function ReadParameterAll()
|
||||
ReadParameter(param, "GPIO", "IO4", true);
|
||||
ReadParameter(param, "GPIO", "IO12", true);
|
||||
ReadParameter(param, "GPIO", "IO13", true);
|
||||
ReadParameter(param, "GPIO", "LEDType", false);
|
||||
ReadParameter(param, "GPIO", "LEDNumbers", false);
|
||||
ReadParameter(param, "GPIO", "LEDColor", false);
|
||||
// Folgende Zeilen sind für Abwärtskompatibität < v9.0.0 notwendig (manchmal parameter auskommentiert)
|
||||
param["GPIO"]["LEDType"]["enabled"] = true;
|
||||
param["GPIO"]["LEDNumbers"]["enabled"] = true;
|
||||
param["GPIO"]["LEDColor"]["enabled"] = true;
|
||||
param["GPIO"]["LEDType"]["found"] = true;
|
||||
param["GPIO"]["LEDNumbers"]["found"] = true;
|
||||
param["GPIO"]["LEDColor"]["found"] = true;
|
||||
|
||||
ReadParameter(param, "AutoTimer", "AutoStart", false);
|
||||
ReadParameter(param, "AutoTimer", "Intervall", false);
|
||||
@@ -1799,9 +1851,13 @@ function UpdateAfterCategoryCheck() {
|
||||
|
||||
function UpdateExpertModus()
|
||||
{
|
||||
var _style = 'display:none;';
|
||||
// var _style = 'display:none;';
|
||||
var _style_pur = 'none';
|
||||
var _hidden = true;
|
||||
if (document.getElementById("ExpertModus_enabled").checked) {
|
||||
_style = '';
|
||||
// _style = '';
|
||||
_style_pur = '';
|
||||
_hidden = false;
|
||||
document.getElementById("Edit_Config_Direct").style.display = "";
|
||||
}
|
||||
else
|
||||
@@ -1811,8 +1867,22 @@ function UpdateExpertModus()
|
||||
|
||||
const expert = document.querySelectorAll(".expert");
|
||||
for (var i = 0; i < expert.length; i++) {
|
||||
document.getElementById(expert[i].id).style = _style;
|
||||
expert[i].style.display = _style_pur;
|
||||
// document.getElementById(expert[i].id).style = _style;
|
||||
}
|
||||
|
||||
|
||||
// Enable / Disable die Optionen in den Menues für die Auswahl. Falls kein Expertenmodus soll nur ein Wert (built-in-led oder externan-flash-ws281x) möglich sein
|
||||
Array.from(document.querySelector("#GPIO_IO4_value1").options).forEach(function(option_element) {
|
||||
if (option_element.value != "built-in-led")
|
||||
option_element.hidden = _hidden;
|
||||
});
|
||||
|
||||
Array.from(document.querySelector("#GPIO_IO12_value1").options).forEach(function(option_element) {
|
||||
if (option_element.value != "external-flash-ws281x")
|
||||
option_element.hidden = _hidden;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function saveTextAsFile()
|
||||
|
||||
@@ -62,7 +62,7 @@ p {font-size: 1em;}
|
||||
}
|
||||
ParseConfig();
|
||||
param = getConfigParameters();
|
||||
param["System"]["SetupMode"]["enabled"] = false;
|
||||
param["System"]["SetupMode"]["enabled"] = true;
|
||||
param["System"]["SetupMode"]["value1"] = "false";
|
||||
|
||||
WriteConfigININew();
|
||||
|
||||
@@ -9,7 +9,7 @@ function getbasepath(){
|
||||
{
|
||||
// host = "http://192.168.2.219"; // jomjol interner test
|
||||
// host = "http://192.168.178.46"; // jomjol interner test
|
||||
host = "http://192.168.178.22"; // jomjol interner Real
|
||||
host = "http://192.168.178.79"; // jomjol interner Real
|
||||
// host = "http://192.168.43.191";
|
||||
// host = "."; // jomjol interner localhost
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ function ParseConfig() {
|
||||
ParamAddValue(param, catname, "ImageQuality");
|
||||
ParamAddValue(param, catname, "ImageSize");
|
||||
ParamAddValue(param, catname, "FixedExposure");
|
||||
ParamAddValue(param, catname, "UseGPIOControlledIllumination");
|
||||
|
||||
var catname = "Alignment";
|
||||
category[catname] = new Object();
|
||||
@@ -54,7 +53,6 @@ function ParseConfig() {
|
||||
ParamAddValue(param, catname, "LogImageLocation");
|
||||
ParamAddValue(param, catname, "LogfileRetentionInDays");
|
||||
ParamAddValue(param, catname, "ModelInputSize", 2);
|
||||
// ParamAddValue(param, catname, "ExtendedResolution");
|
||||
|
||||
var catname = "Analog";
|
||||
category[catname] = new Object();
|
||||
@@ -65,7 +63,6 @@ function ParseConfig() {
|
||||
ParamAddValue(param, catname, "LogImageLocation");
|
||||
ParamAddValue(param, catname, "LogfileRetentionInDays");
|
||||
ParamAddValue(param, catname, "ModelInputSize", 2);
|
||||
// ParamAddValue(param, catname, "ExtendedResolution");
|
||||
|
||||
var catname = "PostProcessing";
|
||||
category[catname] = new Object();
|
||||
@@ -81,7 +78,6 @@ function ParseConfig() {
|
||||
ParamAddValue(param, catname, "IgnoreLeadingNaN", 1, true);
|
||||
ParamAddValue(param, catname, "ErrorMessage");
|
||||
ParamAddValue(param, catname, "CheckDigitIncreaseConsistency");
|
||||
// ParamAddValue(param, catname, "IgnoreLeadingNaN");
|
||||
|
||||
var catname = "MQTT";
|
||||
category[catname] = new Object();
|
||||
@@ -108,6 +104,12 @@ function ParseConfig() {
|
||||
ParamAddValue(param, catname, "LEDType");
|
||||
ParamAddValue(param, catname, "LEDNumbers");
|
||||
ParamAddValue(param, catname, "LEDColor", 3);
|
||||
// Default Values, um abwärtskompatiblität zu gewährleisten
|
||||
param[catname]["LEDType"]["value1"] = "WS2812";
|
||||
param[catname]["LEDNumbers"]["value1"] = "2";
|
||||
param[catname]["LEDColor"]["value1"] = "50";
|
||||
param[catname]["LEDColor"]["value2"] = "50";
|
||||
param[catname]["LEDColor"]["value3"] = "50";
|
||||
|
||||
|
||||
var catname = "AutoTimer";
|
||||
|
||||
@@ -1 +1 @@
|
||||
10.1.0
|
||||
11.0.0
|
||||
Reference in New Issue
Block a user