Выход новой бэта версии программы

Это мой личный форум. Здесь я буду задавать вопросы пользователям, проводить опросы, и тому подобное. Темы в этом форуме могу создавать только я, Вы можете создавать комментарии и отвечать на опросы.
Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Выход новой бэта версии программы

#1

Сообщение support » 03.11.2021{, 06:40}

Вышла новая версия программы FLProg с номером 7.4.0.

Подробнее о новой версии программы можно почитать здесь: https://flprog.ru/news/vyhod-novoj-bjet ... programmy/

В этой теме будем обсуждать линейку 7.4.Х. Приглашаю всех желающих приступить к тестированию.

Пере залил дистрибутивы программы версии 7.4.0 для Windows 32 и Windows 64 в 22:10 04-10-21. Если Вы скачали дистрибутив программы версии 7.4.0 для Windows 32 и Windows 64 до этого времени, рекомендую загрузить его повторно и заново установить.
Прошу прощения за причинённые неудобства.

Вышла новая версия бетки с номером 7.4.1. подробнее о этой версии можно прочитать здесь.

Вышла новая версия бетки с номером 7.4.2. подробнее о этой версии можно прочитать здесь

Вышла новая версия бетки с номером 7.4.4. подробнее о этой версии можно прочитать здесь

Вышла новая версия бетки с номером 7.4.6. подробнее о этой версии можно прочитать здесь

Вышла новая версия бетки с номером 7.5.0. подробнее о этой версии можно прочитать здесь

Вышла новая версия бетки с номером 7.5.1. подробнее о этой версии можно прочитать здесь

Перезаливка бэта версии - подробнее здесь
Автор программы FLProg.

olegmak22
Рядовой
Сообщения: 4
Зарегистрирован: 17.04.2022{, 02:16}
Репутация: 0
Имя: олег

Выход новой бэта версии программы

#481

Сообщение olegmak22 » 28.05.2022{, 11:17}

Phazz писал(а):
15.05.2022{, 22:47}
Я примерно понимаю причину.
Не поделитесь?
Две недели уже прошло... Вроде как в личку писал...

Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 20
Откуда: bish
Имя: Антон

Выход новой бэта версии программы

#482

Сообщение Cancertanly » 31.05.2022{, 09:27}

support, можно ли в штатный блок записи на СД карту добавить возможность менять разделители? Да и комментарии не всегда нужны, и имя переменной иногда нужно с заглавных символов чтобы было. Заранее спасибо!

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Выход новой бэта версии программы

#483

Сообщение support » 06.06.2022{, 13:02}

olegmak22 писал(а):
15.05.2022{, 22:07}
Изменения касаются логики работы одной из плат( контроль нагрева в частности), дисплея не касается вовсе.И почему при одном и том же синтаксисе память стартует нормально в одном случае,и выдает ошибку в другом.
Может скинуть два варианта кода (компилируемый и не компилируемый)?
Скиньте оба варианта - посмотрю сегодня вечером
Автор программы FLProg.

artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03.09.2020{, 15:41}
Репутация: 216
Откуда: Питер
Имя: Артем

Выход новой бэта версии программы

#484

Сообщение artemka19 » 06.06.2022{, 15:02}

support,
если будет возможность - добавьте в меню слева возможность включения Сors на сервере ЕСП. (там всего одна строка в Setup добавляется)

starmos
Сержант
Сообщения: 114
Зарегистрирован: 11.04.2016{, 15:46}
Репутация: 13
Откуда: Челябинск

Выход новой бэта версии программы

#485

Сообщение starmos » 07.06.2022{, 12:13}

ESP32. Modbus Master похоже таки не работает нормально. Пакеты доходят через пень-колоду, наверное один из 10-20. Зато блок написанные специально под обмен с устройством = работает хорошо. Это говорит о том, что проблема где-то в стандартном софте. Я уже здесь сообщал об этом, проблема была (и видимо есть) где-то в вычислении CRC, при котором нормальный пакет объявляется ошибочным.

svv
Рядовой
Сообщения: 12
Зарегистрирован: 06.02.2022{, 21:33}
Репутация: 1
Имя: vxxx1980

Выход новой бэта версии программы

#486

Сообщение svv » 07.06.2022{, 13:59}

Добрый день! Помогите пожалуйста вот с токай проблемой.
Нужно получить данные с DHT21 на ESP32.
При компиляции выпадает ошибку ( 'DHT21' is not a member of 'DHTesp' )
При этом если выставить в проекте на ESP32 тип датчика DHT11 (и соответственно его подключить) то проект компилируется и всё работает.
Также пробивал подключать DHT21 к UNO все также компилируется без проблем.
Значит проблема именно в связке DHT21 и ESP32.
Может кто подскажет решение проблемы? (версия FLprog 7.5.2)

Аватара пользователя
garry
Рядовой
Сообщения: 99
Зарегистрирован: 22.01.2016{, 11:20}
Репутация: 7

Выход новой бэта версии программы

#487

Сообщение garry » 07.06.2022{, 14:10}

svv писал(а):
07.06.2022{, 13:59}
Добрый день! Помогите пожалуйста вот с токай проблемой.
Нужно получить данные с DHT21 на ESP32.
При компиляции выпадает ошибку ( 'DHT21' is not a member of 'DHTesp' )
При этом если выставить в проекте на ESP32 тип датчика DHT11 (и соответственно его подключить) то проект компилируется и всё работает.
Также пробивал подключать DHT21 к UNO все также компилируется.
Значит проблема именно в связке DHT21 и ESP32.
Может кто подскажет решение проблемы? (версия FLprog 7.5.2)
Не заморачивайтесь со штатным блоком. Возьмите лучше блок от ecoins, работает стабильно и намного быстрее.

svv
Рядовой
Сообщения: 12
Зарегистрирован: 06.02.2022{, 21:33}
Репутация: 1
Имя: vxxx1980

Выход новой бэта версии программы

#488

Сообщение svv » 07.06.2022{, 14:16}

garry писал(а):
07.06.2022{, 14:10}
Не заморачивайтесь со штатным блоком. Возьмите лучше блок от ecoins, работает стабильно и намного быстрее.
Отлично. Подскажите пожалуйста где его скачать!

Аватара пользователя
garry
Рядовой
Сообщения: 99
Зарегистрирован: 22.01.2016{, 11:20}
Репутация: 7

Выход новой бэта версии программы

#489

Сообщение garry » 07.06.2022{, 14:18}

svv писал(а):
07.06.2022{, 14:16}
garry писал(а):
07.06.2022{, 14:10}
Не заморачивайтесь со штатным блоком. Возьмите лучше блок от ecoins, работает стабильно и намного быстрее.
Отлично. Подскажите пожалуйста где его скачать!
viewtopic.php?f=247&t=8064

svv
Рядовой
Сообщения: 12
Зарегистрирован: 06.02.2022{, 21:33}
Репутация: 1
Имя: vxxx1980

Выход новой бэта версии программы

#490

Сообщение svv » 07.06.2022{, 14:20}

Спасибо буду читать!

Отправлено спустя 37 минут 54 секунды:
garry Спасибо за помощь все заработало на ecoins! И за отличную наводку на ecoins очень много интересного. Буду изучать!
И кстати еще один интересный момент. Увидев что в ecoins датчики DHT21 и DHT22 представлены одной библиотекой, я решил попробовать из набора стандартных блоков поставить в настройках блока для датчика DHT21 тип DHT22. И он заработал! )))
И ещё раз большое спасибо!

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

Выход новой бэта версии программы

#491

Сообщение vovka1973 » 12.06.2022{, 18:22}

Даже не знаю баг программы или что то я не знаю ,делал проект на есп-01 и почему-то пины не совпадают ставлю gpio1 оказывается gpio3 методом тыка узнал.версия программы самая последняя 7.5.2
кажется понял нужно блок подвигать что бы обновилось программа и смена пина ,раньше такого не замечал
Изображение

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

Выход новой бэта версии программы

#492

Сообщение hayk » 15.06.2022{, 23:41}

Ребята,а куда загрузка программы FLprog пропала или я что-то упустил?

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Выход новой бэта версии программы

#493

Сообщение Dryundel » 16.06.2022{, 08:59}

hayk писал(а):
15.06.2022{, 23:41}
Ребята,а куда загрузка программы FLprog пропала или я что-то упустил?
Там же где и всегда.
https://flprog.ru/downloads/distrutives ... my-flprog/

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

Выход новой бэта версии программы

#494

Сообщение hayk » 16.06.2022{, 09:29}

Dryundel писал(а):
16.06.2022{, 08:59}
hayk писал(а):
15.06.2022{, 23:41}
Ребята,а куда загрузка программы FLprog пропала или я что-то упустил?
Там же где и всегда.
https://flprog.ru/downloads/distrutives ... my-flprog/
Да,действительно, сейчас все на месте,но два дня я заходил и на месте загрузки было сообщение 404 page not found, ну и ладно главное все нормально.

look
Рядовой
Сообщения: 7
Зарегистрирован: 22.09.2020{, 20:39}
Репутация: -1
Имя: Дмитрий

Выход новой бэта версии программы

#495

Сообщение look » 19.06.2022{, 12:01}

FLProg-7.5.2
Проблемы:

1. HTML код должен в виджетах и блоках html должен быть строго в одну строку без форматирования, в противном случае при компиляции вылазит ошибка:
Изображение

2. Если редактировать виджет или html-блок через меню слева Контроллер -> Настройки контроллера -> Web интерфейс настройки -> Страницы настроек -> Главная -> Отображаемые параметры, то при сохранении, программа зависает на несколько секунд, а потом аварийно закрывается.
Если редактировать через верхнее меню: Инструменты -> Отладчик веб интерфейса, то проблем не возникает.

3. Делаю проект автополива, решил сделать вывод значений меню в таблицу через веб-интерфейс, согласно видео на канале Сергея Глушенко в ютубе "Создание собственных виджетов в вэб интерфейсе в программе FLProg начиная с версии 7.4.4"
Заметил, что при запуске "Отладчика веб-интерфейса" компьютер сильно загружается и греется. Посмотрел в консоль браузера, а там куча запросов в бесконечном цикле:
Изображение

При загрузке скетча в контроллер, проблема тоже воспроизводится.
Вложения
Na_forum_ 8266-work.flp
(1.17 МБ) 46 скачиваний
Na_forum_ 8266.flp
(1.16 МБ) 35 скачиваний

artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03.09.2020{, 15:41}
Репутация: 216
Откуда: Питер
Имя: Артем

Выход новой бэта версии программы

#496

Сообщение artemka19 » 19.06.2022{, 12:27}

lool писал(а):
03.11.2021{, 06:40}
куча запросов в бесконечном цикле
а как данные получать без запросов?))
Последний раз редактировалось artemka19 19.06.2022{, 12:32}, всего редактировалось 1 раз.

artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03.09.2020{, 15:41}
Репутация: 216
Откуда: Питер
Имя: Артем

Выход новой бэта версии программы

#497

Сообщение artemka19 » 19.06.2022{, 12:31}

look писал(а):
19.06.2022{, 12:01}
при запуске "Отладчика веб-интерфейса" компьютер сильно загружается и греется
нет слов)

Отправлено спустя 30 минут 1 секунду:
look писал(а):
19.06.2022{, 12:01}
2. Если редактировать виджет или html-блок через меню слева Контроллер -> Настройки контроллера -> Web интерфейс настройки -> Страницы настроек -> Главная -> Отображаемые параметры, то при сохранении, программа зависает на несколько секунд, а потом аварийно закрывается.
Если редактировать через верхнее меню: Инструменты -> Отладчик веб интерфейса, то проблем не возникает.
у меня все норм - вылета нет при редактировании Параметра.
Вылет есть при редактировании HTML-кода.
Последний раз редактировалось artemka19 19.06.2022{, 13:03}, всего редактировалось 1 раз.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Выход новой бэта версии программы

#498

Сообщение Phazz » 19.06.2022{, 13:03}

Можно ограничить количество запросов через отладку в хроме

look
Рядовой
Сообщения: 7
Зарегистрирован: 22.09.2020{, 20:39}
Репутация: -1
Имя: Дмитрий

Выход новой бэта версии программы

#499

Сообщение look » 19.06.2022{, 13:34}

Phazz писал(а):
19.06.2022{, 13:03}
Можно ограничить количество запросов через отладку в хроме
Количество запросов растёт в геометрической прогрессии и достигает сотню тысяч за несколько секунд.
Скорее всего есть ошибка в части яваскрипта, который генерирует FLProg при создании кода.

Код: Выделить всё

	function gND() {
		let x = gX();
		x.onreadystatechange = function() {
			if(x.readyState == 4) {
				pRD(x);
			}
		};
		let r = "/e9f7d538-e80a-4e69-afe9-9610d0e54eff?page=1";
		x.open("GET", r, true);
		x.send();
	}

	function pRD(x) {
		try {
			var r = JSON.parse(x.responseText);
		} catch(e) {
			setTimeout(gND(), 1000);
			return;
		}
		if(r.au == "1") {
			document.location.reload(true);
			return;
		}
		if(r.r < 1) {
			setTimeout(gND(), 1000);
			return;
		}
		for(let i = 0; i < r.c; i++) {
			uCE(i, r);
		}
		setTimeout(gND(), 1000);
	}

Долгое открытие файла в браузере приводит к торможению компьютера. В диспетчере задач - ахтунг!
СпойлерПоказать

Код: Выделить всё

<!DOCTYPE html>
<!-- saved from url=(0017)http://localhost/ -->
<html>

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<style>
	.menu {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 1%;
		margin: 1%;
		width: 16%;
		border: 1px solid black;
		border-radius: 8px;
	}
	
	.menuItem {
		font-weight: 600;
		font-family: 'Times New Roman', Times, serif;
		display: block;
		margin: 5px;
		width: 95%;
	}
	
	.header {
		padding: 10px;
		left: 0px;
		right: 0px;
		top: 0px;
		background: #00FFFF;
		text-align: center;
		font-weight: 600;
		font-family: 'Times New Roman', Times, serif;
		font-size: 250%;
	}
	
	.content {
		float: right;
		width: 78%;
	}
	
	.footer {
		float: left;
		padding: 1%;
		width: 98%;
		background: #00FFFF;
		margin-top: 1%;
		text-align: center;
		font-weight: 600;
		font-family: 'Times New Roman', Times, serif;
		font-size: 150%;
	}
	
	.buttonFlp {
		width: 150px;
		border-radius: 20px;
		background: #459DE5;
		color: #fff;
		font-size: 12px;
		cursor: pointer;
		float: left;
		padding: 1%;
		margin: 1%;
	}
	
	.buttonFlp:hover {
		background: #358DE5;
	}
	
	.buttonFlp:focus {
		outline: none;
	}
	
	.stLab {
		margin: 5px 0;
	}
	
	.stBtn {
		margin: 5px;
	}
	
	.stLig {
		margin: 5px;
		width: 50px;
		height: 50px;
		border-radius: 20%;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	
	.stText {
		margin: 5px 0;
	}
	
	.stIF {
		margin: 5px 0;
	}
	
	.stWL {
		height: 100px;
		width: 400px;
		overflow: auto;
	}
	
	.stChb {
		margin: 5px 0;
	}
	
	.stRb {
		margin: 5px 0;
	}
	
	.stCB {
		margin: 5px 0;
	}
	
	table {
		width: 60%;
		border: 1px solid #b3adad;
		border-collapse: collapse;
		padding: 5px;
		align: center;
	}
	
	table th {
		border: 1px solid #b3adad;
		padding: 5px;
		background: #f0f0f0;
		color: #454545;
	}
	
	table td {
		border: 1px solid #b3adad;
		text-align: center;
		padding: 5px;
		background: #ffffff;
		color: #2e2e2e;
	}
	
	.noBlock {
		display: inline;
	}
	</style>
</head>

<body>
	<div class="header">ESP8266</div>
	<div class="content">
		<br>
		<br>
		<table>
			<thead>
				<tr>
					<th>#</th>
					<th>Длит. пол.</th>
					<th>Счёт. воды</th>
					<th>Влажн. вкл</th>
					<th>Влажн. откл</th>
					<th>Полив по врем.</th>
					<th>Полив по счёт.</th>
					<th>Полив по влаж.</th>
					<th>Уст. час. пол.</th>
					<th>Уст. мин. пол.</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<th>T1G1</th>
					<td>
						<div id="T1G1dlitpoliv">0</div>
					</td>
					<td>
						<div id="T1G1countpoliv">0</div>
					</td>
					<td>
						<div id="T1G1hson">0</div>
					</td>
					<td>
						<div id="T1G1hsoff">0</div>
					</td>
					<td>
						<div id="T1G1worktime">false</div>
					</td>
					<td>
						<div id="T1G1workcount">false</div>
					</td>
					<td>
						<div id="T1G1workhs">false</div>
					</td>
					<td>
						<div id="T1G1minspoliv">0</div>
					</td>
					<td>
						<div id="T1G1hourspoliv">0</div>
					</td>
				</tr>
				<tr>
					<th>T1G2</th>
					<td>
						<div id="T1G2dlitpoliv">0</div>
					</td>
					<td>
						<div id="T1G2countpoliv">0</div>
					</td>
					<td>
						<div id="T1G2hson">0</div>
					</td>
					<td>
						<div id="T1G2hsoff">0</div>
					</td>
					<td>
						<div id="T1G2worktime">false</div>
					</td>
					<td>
						<div id="T1G2workcount">false</div>
					</td>
					<td>
						<div id="T1G2workhs">false</div>
					</td>
					<td>
						<div id="T1G2minspoliv">0</div>
					</td>
					<td>
						<div id="T1G2hourspoliv">0</div>
					</td>
				</tr>
				<tr>
					<th>T1G3</th>
					<td>
						<div id="T1G3dlitpoliv">0</div>
					</td>
					<td>
						<div id="T1G3countpoliv">0</div>
					</td>
					<td>
						<div id="T1G3hson">0</div>
					</td>
					<td>
						<div id="T1G3hsoff">0</div>
					</td>
					<td>
						<div id="T1G3worktime">false</div>
					</td>
					<td>
						<div id="T1G3workcount">false</div>
					</td>
					<td>
						<div id="T1G3workhs">false</div>
					</td>
					<td>
						<div id="T1G3minspoliv">0</div>
					</td>
					<td>
						<div id="T1G3hourspoliv">0</div>
					</td>
				</tr>
				<tr>
					<th>T2G1</th>
					<td>
						<div id="T2G1dlitpoliv">0</div>
					</td>
					<td>
						<div id="T2G1countpoliv">0</div>
					</td>
					<td>
						<div id="T2G1hson">0</div>
					</td>
					<td>
						<div id="T2G1hsoff">0</div>
					</td>
					<td>
						<div id="T2G1worktime">false</div>
					</td>
					<td>
						<div id="T2G1workcount">false</div>
					</td>
					<td>
						<div id="T2G1workhs">false</div>
					</td>
					<td>
						<div id="T2G1minspoliv">0</div>
					</td>
					<td>
						<div id="T2G1hourspoliv">0</div>
					</td>
				</tr>
				<tr>
					<th>T2G2</th>
					<td>
						<div id="T2G2dlitpoliv">0</div>
					</td>
					<td>
						<div id="T2G2countpoliv">0</div>
					</td>
					<td>
						<div id="T2G2hson">0</div>
					</td>
					<td>
						<div id="T2G2hsoff">0</div>
					</td>
					<td>
						<div id="T2G2worktime">false</div>
					</td>
					<td>
						<div id="T2G2workcount">false</div>
					</td>
					<td>
						<div id="T2G2workhs">false</div>
					</td>
					<td>
						<div id="T2G2minspoliv">0</div>
					</td>
					<td>
						<div id="T2G2hourspoliv">0</div>
					</td>
				</tr>
				<tr>
					<th>T2G3</th>
					<td>
						<div id="T2G3dlitpoliv">0</div>
					</td>
					<td>
						<div id="T2G3countpoliv">0</div>
					</td>
					<td>
						<div id="T2G3hson">0</div>
					</td>
					<td>
						<div id="T2G3hsoff">0</div>
					</td>
					<td>
						<div id="T2G3worktime">false</div>
					</td>
					<td>
						<div id="T2G3workcount">false</div>
					</td>
					<td>
						<div id="T2G3workhs">false</div>
					</td>
					<td>
						<div id="T2G3minspoliv">0</div>
					</td>
					<td>
						<div id="T2G3hourspoliv">0</div>
					</td>
				</tr>
			</tbody>
		</table>
		<div class="stChb">
			<label>
				<input type="checkbox" onchange="chOnC(&#39;P14&#39;,1)" id="P14A">Кнопка MenuEn</label>
			<input type="hidden" id="P14" value="0">
		</div>
		<div>
			<button id="P3" onclick="bOc(&#39;P3&#39;)" class="stBtn">Кнопка MenuMU</button>
		</div>
		<div>
			<button id="P9" onclick="bOc(&#39;P9&#39;)" class="stBtn">Кнопка MenuMD</button>
		</div>
		<div>
			<button id="P10" onclick="bOc(&#39;P10&#39;)" class="stBtn">Кнопка MenuVplus</button>
		</div>
		<div>
			<button id="P11" onclick="bOc(&#39;P11&#39;)" class="stBtn">Кнопка MenuVminus</button>
		</div>
		<div>
			<button id="P12" onclick="bOc(&#39;P12&#39;)" class="stBtn">Кнопка MenuETM</button>
		</div>
		<div>
			<button id="P13" onclick="bOc(&#39;P13&#39;)" class="stBtn">Кнопка MenuExFM</button>
		</div>
		<div>
			<div class="stLab">MenuName</div>
			<div id="P15" class="stText noBlock"></div>
		</div>
		<div class=".noBlock">
			<div class="stLab">MenuValStr</div>
			<div id="P16" class="stText noBlock"></div>
		</div>
		<div class=".noBlock">
			<div class="stLab">Род. меню</div>
			<div id="P17" class="stText noBlock"></div>
		</div>
		<div id="P18" class="stLig" style="background-color: rgb(0, 180, 0);"></div>
	</div>
	<div class="footer">ESP8266 - Разработано в программе FLProg (https://flprog.ru)</div>
	<script>
	function gX() {
		var x;
		try {
			x = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				x = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				x = false;
			}
		}
		if(!x && typeof XMLHttpRequest != 'undefined') {
			x = new XMLHttpRequest();
		}
		return x;
	}

	function chOnC(id, iAs) {
		let c = document.getElementById(id + "A");
		let e = document.getElementById(id);
		if((c != null) && (e != null)) {
			blI(id);
			if(c.checked) {
				e.value = "1";
			} else {
				e.value = "0";
			}
		}
		if(iAs) {
			sED(id);
		}
	}

	function bOc(id) {
		var x = gX();
		var r = "/bd6b07e5-b2cc-4336-aef9-197c32bb2b4f?id=" + id;
		if(x.readyState == 4) {}
		x.open("GET", r, true);
		x.send();
	}
	let sD = {
		c: 1,
		d: [{
			i: "P14",
			e: 0,
			t: "H"
		}]
	};

	function sED(id) {
		var x = gX();
		var r = "/1c3c2a92-e155-4419-bbb6-d2d01ee9cc1d?";
		var e = document.getElementById(id);
		if(e != null) {
			r = r + id + "=" + e.value;
		}
		for(let i = 0; i < sD.c; i++) {
			sD.d[i].e = false;
		}
		x.onreadystatechange = function() {
			if(x.readyState == 4) {}
		}
		x.open("GET", r, true);
		x.send();
	}

	function gND() {
		let x = gX();
		x.onreadystatechange = function() {
			if(x.readyState == 4) {
				pRD(x);
			}
		};
		let r = "/e9f7d538-e80a-4e69-afe9-9610d0e54eff?page=1";
		x.open("GET", r, true);
		x.send();
	}

	function pRD(x) {
		try {
			var r = JSON.parse(x.responseText);
		} catch(e) {
			setTimeout(gND(), 1000);
			return;
		}
		if(r.au == "1") {
			document.location.reload(true);
			return;
		}
		if(r.r < 1) {
			setTimeout(gND(), 1000);
			return;
		}
		for(let i = 0; i < r.c; i++) {
			uCE(i, r);
		}
		setTimeout(gND(), 1000);
	}

	function uCE(i, r) {
		if(r.d[i].t == "UH") {
			uUH(r.d[i].i, r.d[i].v);
			return;
		}
		let e = document.getElementById(r.d[i].i);
		if(e == null) {
			return;
		}
		if(r.d[i].t == "T") {
			e.innerHTML = r.d[i].v;
			return;
		}
		if(r.d[i].t == "L") {
			e.style.backgroundColor = r.d[i].v;
			return;
		}
		if(!(cND(r.d[i].i))) {
			return;
		}
		e.value = r.d[i].v;
		if(r.d[i].t == "H") {
			e = document.getElementById(r.d[i].i + "A");
			if(e != null) {
				e.checked = (r.d[i].v == "1");
			}
		}
		if(r.d[i].t == "R") {
			e = document.getElementsByName(r.d[i].i);
			if(e == null) {
				return;
			}
			for(let i1 = 0; i1 < e.length; i1++) {
				if(e[i1].value == r.d[i].v) {
					e[i1].checked = true;
				} else {
					e[i1].checked = false;
				}
			}
		}
	}

	function cND(id) {
		for(let i = 0; i < sD.c; i++) {
			if(sD.d[i].i == id) {
				return !sD.d[i].e;
			}
		}
		return false;
	}

	function blI(id) {
		for(let i = 0; i < sD.c; i++) {
			if(sD.d[i].i == id) {
				sD.d[i].e = true;
				return;
			}
		}
	}
	window.onload = function() {
		gND();
	};

	function uUH(i, v) {
		if(i == "P1") {
			uP1(v);
		}
		if(i == "P4") {
			uP4(v);
		}
		if(i == "P5") {
			uP5(v);
		}
		if(i == "P6") {
			uP6(v);
		}
		if(i == "P7") {
			uP7(v);
		}
		if(i == "P8") {
			uP8(v);
		}
	}

	function uP1(v) {
		document.getElementById("T1G1dlitpoliv").innerHTML = v.dlitpoliv;
		document.getElementById("T1G1countpoliv").innerHTML = v.countpoliv;
		document.getElementById("T1G1hson").innerHTML = v.hson;
		document.getElementById("T1G1hsoff").innerHTML = v.hsoff;
		document.getElementById("T1G1worktime").innerHTML = v.worktime;
		document.getElementById("T1G1workcount").innerHTML = v.workcount;
		document.getElementById("T1G1workhs").innerHTML = v.workhs;
		document.getElementById("T1G1minspoliv").innerHTML = v.minspoliv;
		document.getElementById("T1G1hourspoliv").innerHTML = v.hourspoliv;
	}

	function uP4(v) {
		document.getElementById("T1G2dlitpoliv").innerHTML = v.dlitpoliv;
		document.getElementById("T1G2countpoliv").innerHTML = v.countpoliv;
		document.getElementById("T1G2hson").innerHTML = v.hson;
		document.getElementById("T1G2hsoff").innerHTML = v.hsoff;
		document.getElementById("T1G2worktime").innerHTML = v.worktime;
		document.getElementById("T1G2workcount").innerHTML = v.workcount;
		document.getElementById("T1G2workhs").innerHTML = v.workhs;
		document.getElementById("T1G2minspoliv").innerHTML = v.minspoliv;
		document.getElementById("T1G2hourspoliv").innerHTML = v.hourspoliv;
	}

	function uP5(v) {
		document.getElementById("T1G3dlitpoliv").innerHTML = v.dlitpoliv;
		document.getElementById("T1G3countpoliv").innerHTML = v.countpoliv;
		document.getElementById("T1G3hson").innerHTML = v.hson;
		document.getElementById("T1G3hsoff").innerHTML = v.hsoff;
		document.getElementById("T1G3worktime").innerHTML = v.worktime;
		document.getElementById("T1G3workcount").innerHTML = v.workcount;
		document.getElementById("T1G3workhs").innerHTML = v.workhs;
		document.getElementById("T1G3minspoliv").innerHTML = v.minspoliv;
		document.getElementById("T1G3hourspoliv").innerHTML = v.hourspoliv;
	}

	function uP6(v) {
		document.getElementById("T2G1dlitpoliv").innerHTML = v.dlitpoliv;
		document.getElementById("T2G1countpoliv").innerHTML = v.countpoliv;
		document.getElementById("T2G1hson").innerHTML = v.hson;
		document.getElementById("T2G1hsoff").innerHTML = v.hsoff;
		document.getElementById("T2G1worktime").innerHTML = v.worktime;
		document.getElementById("T2G1workcount").innerHTML = v.workcount;
		document.getElementById("T2G1workhs").innerHTML = v.workhs;
		document.getElementById("T2G1minspoliv").innerHTML = v.minspoliv;
		document.getElementById("T2G1hourspoliv").innerHTML = v.hourspoliv;
	}

	function uP7(v) {
		document.getElementById("T2G2dlitpoliv").innerHTML = v.dlitpoliv;
		document.getElementById("T2G2countpoliv").innerHTML = v.countpoliv;
		document.getElementById("T2G2hson").innerHTML = v.hson;
		document.getElementById("T2G2hsoff").innerHTML = v.hsoff;
		document.getElementById("T2G2worktime").innerHTML = v.worktime;
		document.getElementById("T2G2workcount").innerHTML = v.workcount;
		document.getElementById("T2G2workhs").innerHTML = v.workhs;
		document.getElementById("T2G2minspoliv").innerHTML = v.minspoliv;
		document.getElementById("T2G2hourspoliv").innerHTML = v.hourspoliv;
	}

	function uP8(v) {
		document.getElementById("T2G3dlitpoliv").innerHTML = v.dlitpoliv;
		document.getElementById("T2G3countpoliv").innerHTML = v.countpoliv;
		document.getElementById("T2G3hson").innerHTML = v.hson;
		document.getElementById("T2G3hsoff").innerHTML = v.hsoff;
		document.getElementById("T2G3worktime").innerHTML = v.worktime;
		document.getElementById("T2G3workcount").innerHTML = v.workcount;
		document.getElementById("T2G3workhs").innerHTML = v.workhs;
		document.getElementById("T2G3minspoliv").innerHTML = v.minspoliv;
		document.getElementById("T2G3hourspoliv").innerHTML = v.hourspoliv;
	}
	</script>
</body>

</html>

artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03.09.2020{, 15:41}
Репутация: 216
Откуда: Питер
Имя: Артем

Выход новой бэта версии программы

#500

Сообщение artemka19 » 19.06.2022{, 14:54}

look писал(а):
19.06.2022{, 13:34}
Количество запросов растёт в геометрической прогрессии и достигает сотню тысяч за несколько секунд.
если очень нужно, то можно сделать запросы по таймеру:

1-удаляем все что внутри функции gND:
СпойлерПоказать
function gND(){

}
2-вставляем после функции gND() этот код:
СпойлерПоказать
setInterval(timer123,2000);

function timer123(){
let x=gX();
let r="/zapros_new_data?page=1";
x.open("GET",r,true);
x.send();
x.onreadystatechange=function()
{
if(x.readyState==4)
{
pRD(x);
}
}
}
(где 2000 - это частота запросов в мсек.)
теперь происходят с частотой в 2 сек:
СпойлерПоказать
1.png
Вот это все вышеописанное нужно делать в ArduinoIDE перед заливкой в МК

Ответить

Вернуться в «Темы от автора»