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

Это мой личный форум. Здесь я буду задавать вопросы пользователям, проводить опросы, и тому подобное. Темы в этом форуме могу создавать только я, Вы можете создавать комментарии и отвечать на опросы.
olegmak22
Рядовой
Сообщения: 4
Зарегистрирован: 17 апр 2022, 02:16
Имя: олег

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

Сообщение olegmak22 »

Phazz писал(а): 15 май 2022, 22:47 Я примерно понимаю причину.
Не поделитесь?
Две недели уже прошло... Вроде как в личку писал...
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

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

Сообщение Cancertanly »

[ref=#00aa00]support[/ref], можно ли в штатный блок записи на СД карту добавить возможность менять разделители? Да и комментарии не всегда нужны, и имя переменной иногда нужно с заглавных символов чтобы было. Заранее спасибо!
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

olegmak22 писал(а): 15 май 2022, 22:07 Изменения касаются логики работы одной из плат( контроль нагрева в частности), дисплея не касается вовсе.И почему при одном и том же синтаксисе память стартует нормально в одном случае,и выдает ошибку в другом.
Может скинуть два варианта кода (компилируемый и не компилируемый)?
Скиньте оба варианта - посмотрю сегодня вечером
Автор программы FLProg.
artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03 сен 2020, 15:41
Откуда: Питер
Имя: Артем
Поблагодарили: 1 раз

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

Сообщение artemka19 »

[ref=#00aa00]support[/ref],
если будет возможность - добавьте в меню слева возможность включения Сors на сервере ЕСП. (там всего одна строка в Setup добавляется)
starmos
Сержант
Сообщения: 142
Зарегистрирован: 11 апр 2016, 15:46
Откуда: Челябинск

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

Сообщение starmos »

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

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

Сообщение svv »

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

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

Сообщение garry »

svv писал(а): 07 июн 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 фев 2022, 21:33
Имя: vxxx1980

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

Сообщение svv »

garry писал(а): 07 июн 2022, 14:10 Не заморачивайтесь со штатным блоком. Возьмите лучше блок от ecoins, работает стабильно и намного быстрее.
Отлично. Подскажите пожалуйста где его скачать!
Аватара пользователя
garry
Сержант
Сообщения: 101
Зарегистрирован: 22 янв 2016, 11:20

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

Сообщение garry »

svv писал(а): 07 июн 2022, 14:16
garry писал(а): 07 июн 2022, 14:10 Не заморачивайтесь со штатным блоком. Возьмите лучше блок от ecoins, работает стабильно и намного быстрее.
Отлично. Подскажите пожалуйста где его скачать!
viewtopic.php?f=247&t=8064
svv
Рядовой
Сообщения: 12
Зарегистрирован: 06 фев 2022, 21:33
Имя: vxxx1980

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

Сообщение svv »

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

Отправлено спустя 37 минут 54 секунды:
garry Спасибо за помощь все заработало на ecoins! И за отличную наводку на ecoins очень много интересного. Буду изучать!
И кстати еще один интересный момент. Увидев что в ecoins датчики DHT21 и DHT22 представлены одной библиотекой, я решил попробовать из набора стандартных блоков поставить в настройках блока для датчика DHT21 тип DHT22. И он заработал! )))
И ещё раз большое спасибо!
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

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

Сообщение vovka1973 »

Даже не знаю баг программы или что то я не знаю ,делал проект на есп-01 и почему-то пины не совпадают ставлю gpio1 оказывается gpio3 методом тыка узнал.версия программы самая последняя 7.5.2
кажется понял нужно блок подвигать что бы обновилось программа и смена пина ,раньше такого не замечал
Изображение
hayk
Сержант
Сообщения: 108
Зарегистрирован: 27 июл 2016, 03:06
Откуда: Yerevan
Имя: Hayk
Благодарил (а): 1 раз

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

Сообщение hayk »

Ребята,а куда загрузка программы FLprog пропала или я что-то упустил?
Аватара пользователя
Dryundel
Полковник
Сообщения: 2435
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

hayk писал(а): 15 июн 2022, 23:41 Ребята,а куда загрузка программы FLprog пропала или я что-то упустил?
Там же где и всегда.
https://flprog.ru/downloads/distrutives ... my-flprog/
hayk
Сержант
Сообщения: 108
Зарегистрирован: 27 июл 2016, 03:06
Откуда: Yerevan
Имя: Hayk
Благодарил (а): 1 раз

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

Сообщение hayk »

Dryundel писал(а): 16 июн 2022, 08:59
hayk писал(а): 15 июн 2022, 23:41 Ребята,а куда загрузка программы FLprog пропала или я что-то упустил?
Там же где и всегда.
https://flprog.ru/downloads/distrutives ... my-flprog/
Да,действительно, сейчас все на месте,но два дня я заходил и на месте загрузки было сообщение 404 page not found, ну и ладно главное все нормально.
look
Рядовой
Сообщения: 7
Зарегистрирован: 22 сен 2020, 20:39
Имя: Дмитрий

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

Сообщение look »

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

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

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

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

При загрузке скетча в контроллер, проблема тоже воспроизводится.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03 сен 2020, 15:41
Откуда: Питер
Имя: Артем
Поблагодарили: 1 раз

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

Сообщение artemka19 »

lool писал(а): 03 ноя 2021, 06:40 куча запросов в бесконечном цикле
а как данные получать без запросов?))
Последний раз редактировалось artemka19 19 июн 2022, 12:32, всего редактировалось 1 раз.
artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03 сен 2020, 15:41
Откуда: Питер
Имя: Артем
Поблагодарили: 1 раз

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

Сообщение artemka19 »

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

Отправлено спустя 30 минут 1 секунду:
look писал(а): 19 июн 2022, 12:01 2. Если редактировать виджет или html-блок через меню слева Контроллер -> Настройки контроллера -> Web интерфейс настройки -> Страницы настроек -> Главная -> Отображаемые параметры, то при сохранении, программа зависает на несколько секунд, а потом аварийно закрывается.
Если редактировать через верхнее меню: Инструменты -> Отладчик веб интерфейса, то проблем не возникает.
у меня все норм - вылета нет при редактировании Параметра.
Вылет есть при редактировании HTML-кода.
Последний раз редактировалось artemka19 19 июн 2022, 13:03, всего редактировалось 1 раз.
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

Можно ограничить количество запросов через отладку в хроме
look
Рядовой
Сообщения: 7
Зарегистрирован: 22 сен 2020, 20:39
Имя: Дмитрий

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

Сообщение look »

Phazz писал(а): 19 июн 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);
	}

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

[spoiler]

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

<!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('P14',1)" id="P14A">Кнопка MenuEn</label>
			<input type="hidden" id="P14" value="0">
		</div>
		<div>
			<button id="P3" onclick="bOc('P3')" class="stBtn">Кнопка MenuMU</button>
		</div>
		<div>
			<button id="P9" onclick="bOc('P9')" class="stBtn">Кнопка MenuMD</button>
		</div>
		<div>
			<button id="P10" onclick="bOc('P10')" class="stBtn">Кнопка MenuVplus</button>
		</div>
		<div>
			<button id="P11" onclick="bOc('P11')" class="stBtn">Кнопка MenuVminus</button>
		</div>
		<div>
			<button id="P12" onclick="bOc('P12')" class="stBtn">Кнопка MenuETM</button>
		</div>
		<div>
			<button id="P13" onclick="bOc('P13')" 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>
[/spoiler]
artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03 сен 2020, 15:41
Откуда: Питер
Имя: Артем
Поблагодарили: 1 раз

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

Сообщение artemka19 »

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

1-удаляем все что внутри функции gND:
[spoiler]
function gND(){

}
[/spoiler]

2-вставляем после функции gND() этот код:
[spoiler]
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 - это частота запросов в мсек.)
[/spoiler]

теперь происходят с частотой в 2 сек:
[spoiler]
1.png
[/spoiler]

Вот это все вышеописанное нужно делать в ArduinoIDE перед заливкой в МК
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость