static void readOneDecode() { decode[0] = '\0'; #ifdef RECEIVELED LedLcdManager::setLogicLed(receiveled, LedLcdManager::on); #endif irReceiver->enable(); // Wait until something arrives while (!irReceiver->isReady()) LedLcdManager::checkTurnoff(); #ifdef RECEIVELED LedLcdManager::setLogicLed(receiveled, LedLcdManager::off); #endif MultiDecoder multiDecoder(*irReceiver); #ifdef LCD if (multiDecoder.getType() > MultiDecoder::noise) { LedLcdManager::lcdPrint(multiDecoder.getType() == MultiDecoder::nec_ditto ? "." : multiDecoder.getDecode(), multiDecoder.getType() != MultiDecoder::nec_ditto); if (multiDecoder.getType() == MultiDecoder::nec) LedLcdManager::lcdSetCursor(0, 1); // prepare for dittos } #endif MultiDecoder::Type type = multiDecoder.getType(); strncpy(decode, multiDecoder.getDecode(), 100); LedLcdManager::setLogicLed(GirsUtils::decode2logicalLed(type), LedLcdManager::blink); irReceiver->disable(); }
// Read and process one signal (or timeout). void loop() { irReceiver->enable(); // Wait until something arrives while (!irReceiver->isReady()) LedLcdManager::checkTurnoff(); MultiDecoder multiDecoder(*irReceiver); #ifdef LCD if (multiDecoder.getType() > MultiDecoder::noise) { LedLcdManager::lcdPrint(multiDecoder.getType() == MultiDecoder::nec_ditto ? "." : multiDecoder.getDecode(), multiDecoder.getType() != MultiDecoder::nec_ditto); if (multiDecoder.getType() == MultiDecoder::nec) LedLcdManager::lcdSetCursor(0, 1); // prepare for dittos } #endif LedLcdManager::setLogicLed(GirsUtils::decode2logicalLed(multiDecoder.getType()), LedLcdManager::blink); stream.println(multiDecoder.getDecode()); irReceiver->disable(); }