bool A3MLGM5600ReaderProvider::refreshReaderList()
	{
		d_readers.clear();

		d_readers.push_back(createReaderUnit());

		return true;
	}	
 std::shared_ptr<ISO7816ReaderUnit> STidSTRReaderProvider::createReaderUnit(std::string readerunitname)
 {
     auto ru = std::dynamic_pointer_cast<STidSTRReaderUnit>(createReaderUnit());
     auto dt = std::make_shared<STidSTRDataTransport>(readerunitname);
     dt->setPortBaudRate(38400);
     ru->setDataTransport(dt);
     return ru;
 }
    void ACSACR1222LReaderUnit::establish_background_connection()
    {
        kill_background_connection();

        LLA_LOG_CTX("Setting up feedback PCSC connection for ACSACR1222L.");
        auto provider =
            std::dynamic_pointer_cast<PCSCReaderProvider>(getReaderProvider());
        assert(provider);

        assert(getACSACR1222LConfiguration());
        auto name = getACSACR1222LConfiguration()->getUserFeedbackReader();
        if (name.empty())
        {
            LOG(WARNINGS) << "Cannot fetch name for the reader unit that would be used as " <<
                    "a background connection for ACSACR1222L";
            return;
        }
        try
        {
            sam_used_as_perma_connection_ =
                std::dynamic_pointer_cast<PCSCReaderUnit>(
                    provider->createReaderUnit(name));
            assert(sam_used_as_perma_connection_);

            sam_used_as_perma_connection_->setup_pcsc_connection(SC_DIRECT);
        }
        catch (const std::exception &e)
        {
            LOG(ERRORS)
                << "Failed to establish PCSC connection when establishing "
                << "background connection for ACSACR1222L: " << e.what();
            sam_used_as_perma_connection_ = nullptr;
            return;
        }

        auto lcd = std::make_shared<ACSACR1222LLCDDisplay>();
        lcd->setReaderCardAdapter(
            sam_used_as_perma_connection_->getDefaultReaderCardAdapter());
        sam_used_as_perma_connection_->setLCDDisplay(lcd);

        auto ledbuzzer = std::make_shared<ACSACR1222LLEDBuzzerDisplay>();
        ledbuzzer->setReaderCardAdapter(
            sam_used_as_perma_connection_->getDefaultReaderCardAdapter());
        sam_used_as_perma_connection_->setLEDBuzzerDisplay(ledbuzzer);
    }
 std::shared_ptr<ISO7816ReaderUnit> RplethReaderProvider::createReaderUnit(std::string /*readerunitname*/)
 {
     return std::dynamic_pointer_cast<ISO7816ReaderUnit>(createReaderUnit());
 }