Сбросить значение после прихода через 433МГц

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
andrey856
Рядовой
Сообщения: 10
Зарегистрирован: 25.02.2019{, 20:18}
Репутация: 0
Имя: Андрей

Сбросить значение после прихода через 433МГц

#1

Сообщение andrey856 » 20.01.2022{, 16:41}

Господа !

Подскажите пожалуйста

Есть связка: приемник 433Мгц - массив, в котором проверяется код, который пришло по радио (типа датчики), если есть совпадение, то на выходе массива выставляется единица.

Не могу понять как сделать так, что б эта связка ресетилась и ждала следующей посылки, потом что если приходит следующий код и он в массиве, то она выходе как стояла единица, так и продолжает стоять, а мне нужно отделать эти события

Спасибо

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Сбросить значение после прихода через 433МГц

#2

Сообщение Sancho » 20.01.2022{, 16:52}

andrey856 писал(а):
20.01.2022{, 16:41}
Господа !

Подскажите пожалуйста

Есть связка: приемник 433Мгц - массив, в котором проверяется код, который пришло по радио (типа датчики), если есть совпадение, то на выходе массива выставляется единица.

Не могу понять как сделать так, что б эта связка ресетилась и ждала следующей посылки, потом что если приходит следующий код и он в массиве, то она выходе как стояла единица, так и продолжает стоять, а мне нужно отделать эти события

Спасибо
Типа так
СпойлерПоказать

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

	_nomer_cmd = -1;
	_comand_433=-1;
	if (rx433.available()) {    
		uint32_t rs =rx433.getReceivedValue();
		rx433.resetAvailable();
		for(int c = 0;c < razmer_arr_code;c++){	// с - размер массива кодов пультов
			if(rs == _array_key[c]){_nomer_cmd=c; break;}
		}
		_old_time_433 = millis();
		_est_data=1;
		if(_nomer_cmd != -1){
			if(_old_nomer_cmd == _nomer_cmd ){_kol_vo_paket++;} // {_comand_433=_nomer_cmd;}
			_old_nomer_cmd = _nomer_cmd;
		}
		if(_long_push_butn){
			if(_kol_vo_paket >= _long_kol_vo){ 	// _old_nomer_cmd == должна соответствовать номеру, команде, от пульта упр
				if(_old_nomer_cmd == 0) _update_long_push(0);// функция на выкл и запомнить состояние или вкл последний режим, из памяти
				if(_old_nomer_cmd == 1) _update_long_push(1);// номер пульта в массиве
			}
		}
	}
	
	if(_est_data){
		if(millis()- _old_time_433 > 300)
			{			
			if(_kol_vo_paket>0 && _kol_vo_paket < _long_kol_vo){_comand_433=_old_nomer_cmd;}// просто команда на изменение
			_old_nomer_cmd=111;
			_est_data=0;
			_kol_vo_paket=0;
			_long_push_butn = 1;	// разрешаем обработку длинного нажатия
			}
	}
	
	if(_comand_433 != -1 ){
		_upd_stat_ch(_comand_433);
	}
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Anydy

Сбросить значение после прихода через 433МГц

#3

Сообщение Anydy » 20.01.2022{, 17:03}

Вот верно! ...только бы прокоментировать

andrey856
Рядовой
Сообщения: 10
Зарегистрирован: 25.02.2019{, 20:18}
Репутация: 0
Имя: Андрей

Сбросить значение после прихода через 433МГц

#4

Сообщение andrey856 » 24.01.2022{, 10:14}

Спасибо !!!!!

Ответить

Вернуться в «Спросить у знатоков»