[Pcsclite-cvs-commit] r5980 - /trunk/PCSC/src/spy/pcsc-spy.py
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Tue Sep 27 12:46:42 UTC 2011
Author: rousseau
Date: Tue Sep 27 12:46:41 2011
New Revision: 5980
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5980
Log:
Display dwCurrentState & dwEventState parameter in human form
Modified:
trunk/PCSC/src/spy/pcsc-spy.py
Modified: trunk/PCSC/src/spy/pcsc-spy.py
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/spy/pcsc-spy.py?rev=5980&op=diff
==============================================================================
--- trunk/PCSC/src/spy/pcsc-spy.py (original)
+++ trunk/PCSC/src/spy/pcsc-spy.py Tue Sep 27 12:46:41 2011
@@ -160,6 +160,38 @@
hContext = self.filedesc.readline().strip()
self.log_out("hContext: %s" % hContext)
+ def _get_state(self, dwState):
+ SCardStates = {0: 'SCARD_STATE_UNAWARE',
+ 1: 'SCARD_STATE_IGNORE',
+ 2: 'SCARD_STATE_CHANGED',
+ 4: 'SCARD_STATE_UNKNOWN',
+ 8: 'SCARD_STATE_UNAVAILABLE',
+ 16: 'SCARD_STATE_EMPTY',
+ 32: 'SCARD_STATE_PRESENT',
+ 64: 'SCARD_STATE_ATRMATCH',
+ 128: 'SCARD_STATE_EXCLUSIVE',
+ 256: 'SCARD_STATE_INUSE',
+ 512: 'SCARD_STATE_MUTE',
+ 1024: 'SCARD_STATE_UNPOWERED'}
+
+ state = list()
+ for bit in SCardStates.keys():
+ if dwState & bit:
+ state.append(SCardStates[bit])
+ return ", ".join(state)
+
+ def log_dwCurrentState(self, log):
+ """ log dwCurrentState IN/OUT parameter """
+ dwCurrentState = self.filedesc.readline().strip()
+ state = self._get_state(int(dwCurrentState, 16))
+ log(" dwCurrentState: %s (%s)" % (state, dwCurrentState))
+
+ def log_dwEventState(self, log):
+ """ log dwEventState IN/OUT parameter """
+ dwEventState = self.filedesc.readline().strip()
+ state = self._get_state(int(dwEventState, 16))
+ log(" dwEventState: %s (%s)" % (state, dwEventState))
+
def log_in2(self, header):
""" generic log IN parameter """
data = self.filedesc.readline().strip()
@@ -189,12 +221,14 @@
def _log_readers(self, readers, direction):
log = self.log_in2
+ raw_log = self.log_in
if (direction == 1):
log = self.log_out2
+ raw_log = self.log_out
for index in range(readers):
log("szReader:")
- log(" dwCurrentState:")
- log(" dwEventState:")
+ self.log_dwCurrentState(raw_log)
+ self.log_dwEventState(raw_log)
log(" Atr length:")
log(" Atr:")
More information about the Pcsclite-cvs-commit
mailing list