Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IR передатчик SendRaw. #164

Open
multiminik opened this issue Jun 12, 2019 · 2 comments
Open

IR передатчик SendRaw. #164

multiminik opened this issue Jun 12, 2019 · 2 comments

Comments

@multiminik
Copy link

multiminik commented Jun 12, 2019

Есть проблема с пультом от ресивера Yamaha. Протокол передачи Nec. С частью кнопок проблем нет, т.к. их коды не выходят за пределы максимально возможного целого числа(0х7fffffff) для 32 битной переменной. Но есть кнопки с кодами, которые преодолевают этот предел в 2 раза (например: 0хFE80DA24). При отправке таких кодов с esp8266 всегда на выходе получим код - 0x7fffffff.
Отсюда вопрос? Есть ли в вашей прошивке возможность использовать SendRaw() из библиотеки irremote, не прибегая к ковыряниям в исходниках? Иначе проще будет подправить SendNec и перекомпмлировать прошивку.

@multiminik
Copy link
Author

multiminik commented Jun 19, 2019

Отвечу сам себе.
Функция SendRaw() не задействована в вашей прошивке. Пришлось всё же заглянуть в исходный код. Что касается предела в "0x7fffffff", - оказалось библиотека irremote не причём. Проблема была в 21 строчке скетча IR.ino. Необходимо в присвоении переменной "code" сменить функцию "strtol()" (string to long) на "strtoul()" (string to unsigned long). Эта замена позволит работать только с беззнаковыми целыми числами и расширит диапазон до заветных "0xffffffff".

@tretyakovsa
Copy link
Owner

@multiminik Огромное спасибо за сообщение.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants