IRremote.h+Samsung=IR code too long

legionercheg
legionercheg аватар
Offline
Зарегистрирован: 03.06.2015

Добрый день.

Пытаюсь считать дамп с кнопок от пульта для кондиционера Samsung. Пульт вот такой:

ИК датчик использую VS1838B:

Библиотека IRremote.h ver.2.0.1 by shirriff, версия IDE 1.6.9. Загружаю из нее пример IRrecvDumpV2. Подключаю ИК приемник на 11 ногу дуины(как в скетче),открываю сериал монитор,нажимаю допустим кнопку POWER на пульте и получаю ошибку- "IR code too long. Edit IRremoteInt.h and increase RAWLEN" ну и дальше кучу кучу тамингов, думаю нет смысла их тут указывать. Так вот как отредактировать файл IRremote.h так чтобы скетч корректно распознавал коды кнопок?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

legionercheg, На всякий случай -вы в курсе, что пульты от кондиционеров посылают не одну команду, а сразу по-много? Например нажав кнопку "+"  температура не просто увеличивается кондеем, а с пульта отсылается уже определённая цифра, за ней номер режима, скорость вентилятора, настройки таймеров и прочее. И всё в одной посылке.

legionercheg
legionercheg аватар
Offline
Зарегистрирован: 03.06.2015

Ну о чем то таком я догадывался, т.к. если отправить команду 'в сторону'(т.е. она точно не дойдет до приемника) и потом еще раз отправить-кондер именно последнюю команду выполнит. Т.е. в итоге вы хотите сказать что нельзя считать коды кнопок пульта и потом их через ик диод отправить на кондиционер?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

legionercheg, считать и сэмулировать весь пакет посылки можно, но пользу извлечь -вряд ли. Хотя вариант простого включения/выключения  с фиксированными всеми остальными настройками  возможен.

legionercheg
legionercheg аватар
Offline
Зарегистрирован: 03.06.2015

Ну да, хотя фиксированные значения отправлять. Не подскажите как это сделать ?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

legionercheg, попробуйте ту библиотеку настроить, я ей не пользуюсь, поэтому посоветовать ничего не могу. Я в подобных случаях беру логический анализатор, захватываю всю посылку от пульта фотодиодом, потом смотрю  в программе все тайминги и  сразу пишу программу-эмулятор :)

legionercheg
legionercheg аватар
Offline
Зарегистрирован: 03.06.2015

Дело в том что я как раз и не знаю что и где в это библиотеке править. Открыл ее, а толку? Поэтому т стал тут помощи просить.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

legionercheg, что значит где править, там единственный вариант, английским по белому ж написано.

#define RAWBUF 101 // Maximum length of raw duration buffer

 

legionercheg
legionercheg аватар
Offline
Зарегистрирован: 03.06.2015

Это вы файл IRremote.h смотрите? У меня нет такого( Я по поиску RAWBUF только это нашел:

{
public:
decode_type_t          decode_type;  // UNKNOWN, NEC, SONY, RC5, ...
unsigned int           address;      // Used by Panasonic & Sharp [16-bits]
unsigned long          value;        // Decoded value [max 32-bits]
int                    bits;         // Number of bits in decoded value
volatile unsigned int  *rawbuf;      // Raw intervals in 50uS ticks
int                    rawlen;       // Number of records in rawbuf
int                    overflow;     // true iff IR raw code too long
};
 
Нашел в IRremoteInt.h
А до скольки увеличивать можно?)))