Sponsored Content
Top Forums Programming Proximity-card reader: no data when app window out of focus Post 302344926 by Dp0H on Tuesday 18th of August 2009 04:31:31 AM
Old 08-18-2009
Data Proximity-card reader: no data when app window out of focus

Hello. I can't get it work Smilie
My application receives data from em-marin reader only being active. Switching to another app makes the port become silent.
MarinReader works in another thread.
Port reading is going while the app is inactive (tested).
Env: Ubuntu 9.04, Gnome, Qt (i've tryed pure open and fopen - the same result)
Please, help anybody!

Code:
bool MarinReader::read_port(QFile* file)
{
	char first_char = '\0';
	file->getChar(&first_char);
	if (first_char == ':')
	{
		QByteArray bres = file->readAll();
		QString s(bres);
		s.resize(10);
		emit CardProcessed(s);
	}
	tcflush(file->handle(), TCIOFLUSH);
	return true;
}

void MarinReader::run()
{
	emit Message("opening port " + port_name);
	struct termios Posix_CommConfig;
	QFile* Posix_File = new QFile(port_name);
	if (!Posix_File->open(QIODevice::ReadOnly))
	{
		emit Error("open file error"); exit(-1); return;
	}
/* doesn't solve the problem
	struct flock fl;
	fl.l_type   = F_RDLCK;
	fl.l_whence = SEEK_SET;
	fl.l_start  = 0; 
	fl.l_len    = 0; 
	fl.l_pid    = getpid(); 
	fcntl(Posix_File->handle(), F_SETLK, &fl); 
*/
	tcgetattr(Posix_File->handle(), &Posix_CommConfig);
	Posix_CommConfig.c_cflag |= CREAD|CLOCAL;
	Posix_CommConfig.c_lflag &= (~(ICANON|ECHO|ECHOE|ECHOK|ECHONL|ISIG));
	Posix_CommConfig.c_iflag &= (~(INPCK|IGNPAR|PARMRK|ISTRIP|ICRNL|IXANY));
	Posix_CommConfig.c_oflag &= (~OPOST);
	Posix_CommConfig.c_cc[VMIN] = 0;
	Posix_CommConfig.c_cc[VINTR] = _POSIX_VDISABLE;
	Posix_CommConfig.c_cc[VQUIT] = _POSIX_VDISABLE;
	Posix_CommConfig.c_cc[VSTART] = _POSIX_VDISABLE;
	Posix_CommConfig.c_cc[VSTOP] = _POSIX_VDISABLE;
	Posix_CommConfig.c_cc[VSUSP] = _POSIX_VDISABLE;
	//speed
	cfsetispeed(&Posix_CommConfig, B9600);
	cfsetospeed(&Posix_CommConfig, B9600);
	//data bits
	Posix_CommConfig.c_cflag&=(~CSIZE);
	Posix_CommConfig.c_cflag|=CS8;
	//parity
	Posix_CommConfig.c_cflag&=(~PARENB);
	//stop bits
	Posix_CommConfig.c_cflag&=(~CSTOPB);
	//flow control
	Posix_CommConfig.c_cflag&=(~CRTSCTS);
	Posix_CommConfig.c_iflag&=(~(IXON|IXOFF|IXANY));
	//timeout
	Posix_CommConfig.c_cc[VTIME] = 1;
	if (tcsetattr(Posix_File->handle(), TCSAFLUSH, &Posix_CommConfig) == -1)
	{
		emit Error("tcsetattr error"); exit(-1); return;
	}
	is_open = true;
	emit Message("port opened successfully");
	do
	{
		if (!read_port(Posix_File)) break;
	}
	while (!needClose);
	needClose = false;
	//fl.l_type = F_UNLCK;
	//fcntl(Posix_File->handle(), F_SETLK, &fl); 
	Posix_File->close();
	delete Posix_File;
	emit Message("port closed");
	is_open = false;
}

 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

MSR magnetic stripe card reader

Hi all I am working on MSR110 ...Can anyone plz tell me how to use the configuration commands with magnetic reader???. Please help me out as i have to develop API in C on linux platform.MSR110 is not responding to the configuration commands. Please help... Regards Mahima (0 Replies)
Discussion started by: mahima_er
0 Replies

2. Programming

Hiding app window

I am facing a problem while creating/executing a process in C. I am using old fork/exec mechanism. The problem is: I want to hide the console window of the app i am instantiating. Remember i am instantiating a console application from a GUI application. Is this possible? How? Comments are... (1 Reply)
Discussion started by: amessbee
1 Replies

3. Solaris

Secure Card Reader

I see on some of the recent Sun workstations that there is a secure card reader installed. I have a Sunblade 100 and 150 and would like to know, how do you access this device or turn it on to use it? Thanks, (2 Replies)
Discussion started by: stocksj
2 Replies

4. Shell Programming and Scripting

Bash: Exiting while true loop when terminal is not the focus window

I am running an Ubuntu Gutsy laptop with Advanced Compiz fusion options enabled. I am using xdotool to simulate keyboard input in order to rotate through multiple desktops. I am looking for a way to kill a while true loop when the Enter key (or Control+C if it is easier) is pushed when the... (2 Replies)
Discussion started by: acclaypool
2 Replies

5. Programming

Multithread app - Read-Only Data

Hello, I'm coding an application using pthreads.At some point the threads will read some read-only variables.Is it safe NOT to use mutexes, in order to make the program lighter since mutex operations are resource-demanding... Thanks (1 Reply)
Discussion started by: jonas.gabriel
1 Replies

6. UNIX for Dummies Questions & Answers

grab the data from the unix window

Hi, How could i grab a set of data (eg:file execution start & stop time stamp f) from unix? (1 Reply)
Discussion started by: siriv
1 Replies

7. What is on Your Mind?

CNET News Reader App for the Forums

We are thinking of building a CNET style reader app for reading threads in the forums. One developer suggested we look at a CNN vBulletin app, which I am not familiar with (he said he will post the link tomorrow, Monday). Anyway, I asked the (potential) developer for this app to work with us in... (1 Reply)
Discussion started by: Neo
1 Replies

8. Programming

Building app. to send data to website

Hi. I plan to build an application which takes text data from a user. It then sends this to a website, login required. The business case being this site contains many text fields, mostly redundant to user. My application would only prompt user for necessary text. What language, methods... (4 Replies)
Discussion started by: cic
4 Replies

9. UNIX for Dummies Questions & Answers

How to regain the focus back to the launch window?

Consider this code snippet below:- char=`which afplay` if then xterm -e 'while true; do clear; echo "Press Ctrl-C to Quit..."; afplay /tmp/pulse.wav; done' & > /dev/null 2>&1 fi This launches a second terminal window that generates a specific waveform for the next calibration of... (4 Replies)
Discussion started by: wisecracker
4 Replies
OPENSC-TOOL(1)							   OpenSC tools 						    OPENSC-TOOL(1)

NAME
opensc-tool - generic smart card utility SYNOPSIS
opensc-tool [OPTIONS] DESCRIPTION
The opensc-tool utility can be used from the command line to perform miscellaneous smart card operations such as getting the card ATR or sending arbitrary APDU commands to a card. OPTIONS
--info, -i Print information about OpenSC, such as version and enabled components --atr, -a Print the Answer To Reset (ATR) of the card, output is in hex byte format --name, -n Print the name of the inserted card (driver) --serial Print the card serial number (normally the ICCSN), output is in hex byte format --send-apdu apdu, -s apdu Sends an arbitrary APDU to the card in the format AA:BB:CC:DD:EE:FF... --list-files, -f Recursively lists all files stored on card --list-readers, -l Lists all configured readers --list-drivers, -D Lists all installed card drivers --reader num, -r num Use the given reader number. The default is 0, the first reader in the system. --card-driver driver, -c driver Use the given card driver. The default is auto-detected. --wait, -w Wait for a card to be inserted --verbose, -v Causes opensc-tool to be more verbose. Specify this flag several times to enable debug output in the opensc library. SEE ALSO
opensc-explorer(1) opensc 06/03/2012 OPENSC-TOOL(1)
All times are GMT -4. The time now is 09:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy