Skip to content

Commit 91c7d91

Browse files
committed
Point ATR OK / Test TX avec l'algo du prof
1 parent 46a37e8 commit 91c7d91

File tree

1 file changed

+40
-11
lines changed

1 file changed

+40
-11
lines changed

essai_1/essai_1.ino

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ byte TA2, TB2, TC2, TD2;
1717
byte TA3, TB3, TC3, TD3 ;
1818
byte TCK, T ;
1919
String historicals_caracters;
20+
char buf[8];
2021

2122
bool isntCardPresente = digitalRead(PRES); //Variable de détection de la présence de la carte : carte présente = 0 & carte absente = 1
2223

@@ -123,13 +124,29 @@ byte stringToByte(String stb) {
123124
return b;
124125
}
125126

126-
String transmitAPDU_T0(String apdu) {
127-
128-
String sub;
129-
char buf[2];
127+
void transmitAPDU_T0(char* apdu, uint8_t ln) {
130128

131129
pinMode(TX, OUTPUT);
132130
serialCard.stopListening();
131+
for(int i = 0; i < ln; i ++){
132+
133+
serialCard.write_8E2(apdu[i]);
134+
135+
}
136+
pinMode(TX, INPUT);
137+
}
138+
139+
/*String transmitAPDU_T0(String apdu) {
140+
141+
142+
143+
144+
145+
//String sub;
146+
//char buf[2];
147+
148+
//pinMode(TX, OUTPUT);
149+
//serialCard.stopListening();
133150
for(int i = 0; i < apdu.length()+1; i += 2){
134151
sub = apdu.substring(i, i+1);
135152
sub.toCharArray(buf, 2);
@@ -144,7 +161,7 @@ String transmitAPDU_T0(String apdu) {
144161
145162
146163
}
147-
164+
*/
148165

149166

150167

@@ -179,6 +196,7 @@ void card_activate () {
179196
pinMode(CLK, OUTPUT);
180197
pinMode(RX, INPUT_PULLUP);
181198
pinMode(TX, INPUT_PULLUP);
199+
182200
delay(1);
183201
digitalWrite(RST, HIGH);
184202
serialCard.stopListening();
@@ -239,6 +257,7 @@ void loop() {
239257

240258
card_activate ();
241259

260+
242261
//récup de l'ATR
243262
String ATR = read_response();
244263
Serial.println("ATR = " + ATR);
@@ -275,19 +294,29 @@ void loop() {
275294
Serial.println(TCK, HEX);
276295
Serial.print("Protocole T = ");
277296
Serial.println(T, DEC);
278-
297+
279298
//Envoi première commande
280299
//String First_Com = "00A4040C020520";
281-
String First_Com = "00A40000023F00";
282-
String First_response = transmitAPDU_T0(First_Com);
283-
Serial.println(First_response);
284-
300+
//String First_Com = "00A40000023F00";
301+
//String First_response = transmitAPDU_T0(First_Com);
302+
//Serial.println(First_response);
303+
304+
buf[0] = 0x00;
305+
buf[1] = 0xA4;
306+
buf[2] = 0x00;
307+
buf[3] = 0x00;
308+
buf[4] = 0x02;
309+
buf[5] = 0x3F;
310+
buf[6] = 0x00;
311+
transmitAPDU_T0(buf,7);
312+
313+
/*
285314
Serial.println(F_CPU);
286315
uint16_t bit_delay = (F_CPU / 10753) / 4;
287316
Serial.println(bit_delay);
288317
uint16_t _tx_delay = bit_delay - 15/4 ;
289318
Serial.println(_tx_delay);
290-
319+
*/
291320

292321
while (!isntCardPresente) {
293322
isntCardPresente = digitalRead(PRES);

0 commit comments

Comments
 (0)