Hi Ludovic,
I tested the patch that you attached and it works fine. And the “adapted speed
is 125000 bauds”.
Final code:
else
{
/* the card is too fast for the reader */
if ((card_baudrate > ccid_desc->dwMaxDataRate +2)
/* but TA1 <= 97 */
&& (atr.ib[0][ATR_INTERFACE_BYTE_TA].value <= 0x97))
{
unsigned char old_TA1;
old_TA1 = atr.ib[0][ATR_INTERFACE_BYTE_TA].value;
while (atr.ib[0][ATR_INTERFACE_BYTE_TA].value > 0x94)
{
/* use a lower TA1 */
atr.ib[0][ATR_INTERFACE_BYTE_TA].value--;
(void)ATR_GetParameter(&atr, ATR_PARAMETER_D,
&d);
(void)ATR_GetParameter(&atr, ATR_PARAMETER_F,
&f);
/* Baudrate = f x D/F */
card_baudrate = (unsigned int) (1000 *
ccid_desc->dwDefaultClock * d / f);
/* the reader has a baud rate table */
if ((ccid_desc->arrayOfSupportedDataRates
/* and the baud rate is supported */
&& find_baud_rate(card_baudrate,
ccid_desc->arrayOfSupportedDataRates))
/* or the reader has NO baud rate table */
|| ((NULL ==
ccid_desc->arrayOfSupportedDataRates)
/* and the baud rate is bellow the limit */
&& (card_baudrate <=
ccid_desc->dwMaxDataRate)))
{
pps[1] |= 0x10; /* PTS1 presence */
pps[2] =
atr.ib[0][ATR_INTERFACE_BYTE_TA].value;
DEBUG_COMM2("Set adapted speed to %d
bauds",
card_baudrate);
break;
}
}
/* restore original TA1 value */
atr.ib[0][ATR_INTERFACE_BYTE_TA].value = old_TA1;
}
}
}
Thank you very much
De: Pcsclite-muscle
[mailto:pcsclite-muscle-bounces+amacias=solutia-it...@lists.alioth.debian.org]
En nombre de Ludovic Rousseau
Enviado el: miércoles, 5 de octubre de 2016 10:52
Para: Talks about MUSCLE <[email protected]>
Asunto: Re: [Pcsclite-muscle] Bug in CCID library
Hello,
Thanks Godfrey for pointing to your version of the driver. I found the patch in:
https://github.com/acshk/acsccid/commit/4a7631d014781d36a2d21210b0b8768c07ef8c6d
I propose a simpler version.
Abraham can you test with the attached patch?
Bye
2016-10-05 9:53 GMT+02:00 Abraham Macias Paredes <[email protected]
<mailto:[email protected]> >:
Hi, my reader is not an ACS one, is a C3PO LTC31 v2.
You can see more details in
http://pcsclite.alioth.debian.org/ccid/supported.html
Thanks Godfrey.
De: Pcsclite-muscle [mailto:pcsclite-muscle-bounces+amacias
<mailto:pcsclite-muscle-bounces%2Bamacias>
[email protected]
<mailto:[email protected]> ] En nombre de Godfrey Chung
Enviado el: miércoles, 5 de octubre de 2016 9:27
Para: Talks about MUSCLE <[email protected]
<mailto:[email protected]> >
Asunto: Re: [Pcsclite-muscle] Bug in CCID library
Hi Abraham
If you are using ACS readers, you can try acsccid driver and it already
contains a fix for this issue.
On Wed, Oct 5, 2016 at 2:44 PM, Abraham Macias Paredes <[email protected]
<mailto:[email protected]> > wrote:
But this sets the speed to 125000 bauds. How can I set the speed to 230400 bps
(the reader maximum data rate)?
It depends on F/D values from the card. It cannot be set 230400 bps directly.
Regards
Godfrey
_______________________________________________
Pcsclite-muscle mailing list
[email protected]
<mailto:[email protected]>
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle
--
Dr. Ludovic Rousseau
_______________________________________________
Pcsclite-muscle mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle