OSDPReaderUnitConfiguration::OSDPReaderUnitConfiguration()
		: ReaderUnitConfiguration(READER_OSDP)
	{
		resetConfiguration();

		//default keys
		setSCBKKey(std::make_shared<logicalaccess::AES128Key>("C1 8A 12 50 7E F2 71 FE D4 82 0E D7 51 28 EF 4E"));
		setSCBKDKey(std::make_shared<logicalaccess::AES128Key>("30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F"));
	}
int main(int argc, char *argv[]) {
	char *q=NULL;
	char c;
	short k;

	enoughtParametersCheck(argv[0], argc);
	resetConfiguration();
	c = parseParameters(argv);
	q = extractQuery(argv[c+1]);
	
	search(q, (argc-c-2), &argv[c+2]);
	
	free(q);
	exit(0);
}
 A3MLGM5600ReaderUnitConfiguration::A3MLGM5600ReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_A3MLGM5600)
 {
     resetConfiguration();
 }
KeyboardReaderUnitConfiguration::KeyboardReaderUnitConfiguration()
    : ReaderUnitConfiguration(READER_KEYBOARD)
{
    resetConfiguration();
}
	IdOnDemandReaderUnitConfiguration::IdOnDemandReaderUnitConfiguration()
		: ReaderUnitConfiguration(READER_IDONDEMAND)
	{
		resetConfiguration();
	}
 AdmittoReaderUnitConfiguration::AdmittoReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_ADMITTO)
 {
     resetConfiguration();
 }
 GunneboReaderUnitConfiguration::GunneboReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_GUNNEBO)
 {
     resetConfiguration();
 }
// Initialize the dialog widgets and connect the signals/slots
void ObservabilityDialog::createDialogContent()
{
	ui->setupUi(dialog);
	ui->tabs->setCurrentIndex(0);
	connect(&StelApp::getInstance(),
	        SIGNAL(languageChanged()), this, SLOT(retranslate()));

	Observability* plugin = GETSTELMODULE(Observability);

#ifdef Q_OS_WIN
	//Kinetic scrolling for tablet pc and pc
	QList<QWidget *> addscroll;
	addscroll << ui->aboutTextBrowser;
	installKineticScrolling(addscroll);
#endif

	// Settings:
	
	// clicked() is called only when the user makes an input,
	// so we avoid an endless loop when setting the value in updateControls().
	connect(ui->todayCheckBox, SIGNAL(clicked(bool)),
	        plugin, SLOT(enableTodayField(bool)));
	connect(ui->acroCosCheckBox, SIGNAL(clicked(bool)),
	        plugin, SLOT(enableAcroCosField(bool)));
	connect(ui->oppositionCheckBox, SIGNAL(clicked(bool)),
	        plugin, SLOT(enableOppositionField(bool)));
	connect(ui->goodNightsCheckBox, SIGNAL(clicked(bool)),
	        plugin, SLOT(enableGoodNightsField(bool)));
	connect(ui->fullMoonCheckBox, SIGNAL(clicked(bool)),
	        plugin, SLOT(enableFullMoonField(bool)));

	connect(ui->redSlider, SIGNAL(sliderMoved(int)),
	        this, SLOT(setColor()));
	connect(ui->greenSlider, SIGNAL(sliderMoved(int)),
	        this, SLOT(setColor()));
	connect(ui->blueSlider, SIGNAL(sliderMoved(int)),
	        this, SLOT(setColor()));
	
	// Isn't valueChanged() better? But then we'll have to block
	// signlas when settting the slider values.
	connect(ui->fontSize, SIGNAL(sliderMoved(int)),
	        plugin, SLOT(setFontSize(int)));
	connect(ui->sunAltitudeSlider, SIGNAL(sliderMoved(int)),
	        plugin, SLOT(setTwilightAltitude(int)));
	connect(ui->sunAltitudeSlider, SIGNAL(sliderMoved(int)),
	        this, SLOT(updateAltitudeLabel(int)));
	connect(ui->horizonAltitudeSlider, SIGNAL(sliderMoved(int)),
	        plugin, SLOT(setHorizonAltitude(int)));
	connect(ui->horizonAltitudeSlider, SIGNAL(sliderMoved(int)),
	        this, SLOT(updateHorizonLabel(int)));

	connect(ui->closeStelWindow, SIGNAL(clicked()), this, SLOT(close()));
	connect(ui->TitleBar, SIGNAL(movedTo(QPoint)), this, SLOT(handleMovedTo(QPoint)));
	connect(ui->restoreDefaultsButton, SIGNAL(clicked()),
	        plugin, SLOT(resetConfiguration()));
	// TODO: The plug-in should emit a signal when settings are changed.
	// This works, because slots are called in the order they were connected.
	connect(ui->restoreDefaultsButton, SIGNAL(clicked()),
	        this, SLOT(updateControls()));
	connect(ui->saveSettingsButton, SIGNAL(clicked()),
	        plugin, SLOT(saveConfiguration()));

	// About tab
	setAboutHtml();
	StelGui* gui = dynamic_cast<StelGui*>(StelApp::getInstance().getGui());
	if(gui!=NULL)
		ui->aboutTextBrowser->document()->setDefaultStyleSheet(QString(gui->getStelStyle().htmlStyleSheet));

	updateControls();
}
	OmnikeyXX21ReaderUnitConfiguration::OmnikeyXX21ReaderUnitConfiguration()
		: PCSCReaderUnitConfiguration()
	{
		resetConfiguration();	
	}
 RFIDeasReaderUnitConfiguration::RFIDeasReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_RFIDEAS)
 {
     resetConfiguration();
 }
 PCSCReaderUnitConfiguration::PCSCReaderUnitConfiguration()
     : ISO7816ReaderUnitConfiguration(READER_PCSC)
 {
     resetConfiguration();
 }
 ISO7816ReaderUnitConfiguration::ISO7816ReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_ISO7816)
 {
     resetConfiguration();
 }
 ISO7816ReaderUnitConfiguration::ISO7816ReaderUnitConfiguration(std::string rpt)
     : ReaderUnitConfiguration(rpt)
 {
     resetConfiguration();
 }
 SmartIDReaderUnitConfiguration::SmartIDReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_SMARTID)
 {
     d_baudrate = BaudRateOutput::BRO_4800BAUD;
     resetConfiguration();
 }
 STidSTRReaderUnitConfiguration::STidSTRReaderUnitConfiguration()
     : ReaderUnitConfiguration(READER_STIDSTR)
 {
     resetConfiguration();
 }
	SCIELReaderUnitConfiguration::SCIELReaderUnitConfiguration()
		: ReaderUnitConfiguration(READER_SCIEL)
	{
		resetConfiguration();
	}
	AxessTMCLegicReaderUnitConfiguration::AxessTMCLegicReaderUnitConfiguration()
		: ReaderUnitConfiguration(READER_AXESSTMCLEGIC)
	{
		resetConfiguration();
	}