Commit 18f21c2f286be6c94c0e4449da4308fde0612698

Authored by henyxia
1 parent 1a2e5ee4

Rev 1.1

Everything working smoothly
Showing 3 changed files with 79 additions and 58 deletions   Show diff stats
PN532/PN532.cpp
... ... @@ -27,11 +27,8 @@ PN532::PN532(PN532Interface &interface)
27 27 /**************************************************************************/
28 28 void PN532::begin()
29 29 {
30   - send_serial('A');
31 30 HAL(begin)();
32   - send_serial('B');
33 31 HAL(wakeup)();
34   - send_serial('C');
35 32 }
36 33  
37 34 /**************************************************************************/
... ...
PN532_SPI/PN532_SPI.cpp
... ... @@ -35,13 +35,9 @@ void PN532_SPI::begin()
35 35  
36 36 void PN532_SPI::wakeup()
37 37 {
38   - send_serial('Z');
39 38 digitalWrite(_ss, LOW);
40   - send_serial('E');
41 39 delay(2);
42   - send_serial('R');
43 40 digitalWrite(_ss, HIGH);
44   - send_serial('T');
45 41 }
46 42  
47 43  
... ...
... ... @@ -3,6 +3,18 @@
3 3 #include "PN532.h"
4 4 #include <PN532_SPI/PN532_SPI.h>
5 5  
  6 +#define __SCREEN_DEBUG__
  7 +
  8 +#ifdef __SCREEN_DEBUG__
  9 +#define MODEL_QUERY 'A'
  10 +#define SERIAL_ERROR 'G'
  11 +#define NFC_TAGQUERY 'C'
  12 +#define NFC_TAGQUERY_UID 'H'
  13 +#define NFC_ARDUINO 'B'
  14 +#define NFC_NOTAG 'D'
  15 +#define NFC_TYPE_PROFESSOR 'E'
  16 +#define NFC_TYPE_STUDENT 'F'
  17 +#else
6 18 #define MODEL_QUERY 0x80
7 19 #define SERIAL_ERROR 0x55
8 20 #define NFC_TAGQUERY 0x82
... ... @@ -11,9 +23,12 @@
11 23 #define NFC_NOTAG 0x81
12 24 #define NFC_TYPE_PROFESSOR 0x04
13 25 #define NFC_TYPE_STUDENT 0x01
  26 +#endif
  27 +
14 28 #define CPU_FREQ 16000000L
  29 +#define SERIAL_SPEED 19200
15 30  
16   -boolean tagDetected;
  31 +boolean tagDetected = false;
17 32 boolean tagType;
18 33  
19 34 PN532_SPI pn532spi(SPI, 10);
... ... @@ -44,12 +59,10 @@ void setup(void)
44 59 {
45 60 int ser;
46 61  
47   - init_serial(9600);
  62 + init_serial(SERIAL_SPEED);
48 63  
49   - send_serial('1');
50 64 nfc.begin();
51 65  
52   - send_serial('2');
53 66 uint32_t versiondata = nfc.getFirmwareVersion();
54 67 if(!versiondata)
55 68 {
... ... @@ -57,11 +70,8 @@ void setup(void)
57 70 while (1);
58 71 }
59 72  
60   - send_serial('3');
61 73 nfc.SAMConfig();
62 74  
63   - tagDetected = false;
64   -
65 75 do
66 76 {
67 77 ser = get_serial();
... ... @@ -72,17 +82,17 @@ void setup(void)
72 82 }while(ser != MODEL_QUERY);
73 83 }
74 84  
  85 +uint8_t success;
  86 +uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };
  87 +uint8_t uidLength;
  88 +uint8_t data1[16];
  89 +uint8_t data2[16];
  90 +char professorTag[7];
  91 +char studentTag[9] = {'0', '1', '2', '3', '4', '5', '6', '7'};
  92 +int ser;
75 93  
76 94 void loop(void)
77 95 {
78   - uint8_t success;
79   - uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };
80   - uint8_t uidLength;
81   - uint8_t data1[16];
82   - uint8_t data2[16];
83   - char professorTag[7];
84   - char studentTag[9];
85   - int ser;
86 96  
87 97 success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
88 98  
... ... @@ -95,10 +105,11 @@ void loop(void)
95 105 if(success)
96 106 {
97 107 success = nfc.mifareclassic_ReadDataBlock(44, data1);
98   -
  108 +
  109 + //_delay_ms(50);
  110 +
99 111 if(success)
100 112 {
101   - //nfc.PrintHexChar(data1, 16);
102 113 success = nfc.mifareclassic_ReadDataBlock(45, data2);
103 114  
104 115 if(success)
... ... @@ -111,30 +122,40 @@ void loop(void)
111 122 data1[8] == data2[3] &&
112 123 data1[9] == data2[4])
113 124 {
  125 + //send_serial('M');
114 126 tagType = NFC_TYPE_PROFESSOR;
115   - professorTag[0] = (char) 48 + data1[4];
116   - professorTag[1] = (char) 48 + data1[5];
117   - professorTag[2] = (char) 48 + data1[6];
118   - professorTag[3] = (char) 48 + data1[7];
119   - professorTag[4] = (char) 48 + data1[8];
120   - professorTag[5] = (char) 48 + data1[9];
  127 + professorTag[0] = data1[4];
  128 + professorTag[1] = data1[5];
  129 + professorTag[2] = data1[6];
  130 + professorTag[3] = data1[7];
  131 + professorTag[4] = data1[8];
  132 + professorTag[5] = data1[9];
121 133 }
122 134 else
123 135 {
  136 + //send_serial('N');
124 137 tagType = NFC_TYPE_STUDENT;
125   - studentTag[0] = (char) 48 + data1[15];
126   - studentTag[1] = (char) 48 + data2[0];
127   - studentTag[2] = (char) 48 + data2[1];
128   - studentTag[3] = (char) 48 + data2[2];
129   - studentTag[4] = (char) 48 + data2[3];
130   - studentTag[5] = (char) 48 + data2[4];
131   - studentTag[6] = (char) 48 + data2[5];
132   - studentTag[7] = (char) 48 + data2[6];
  138 + studentTag[0] = data1[15];
  139 + studentTag[1] = data2[0];
  140 + studentTag[2] = data2[1];
  141 + studentTag[3] = data2[2];
  142 + studentTag[4] = data2[3];
  143 + studentTag[5] = data2[4];
  144 + studentTag[6] = data2[5];
  145 + studentTag[7] = data2[6];
133 146 }
134 147 }
  148 + //else
  149 + //send_serial('L');
135 150 }
  151 + //else
  152 + //send_serial('K');
136 153 }
  154 + //else
  155 + //send_serial('J');
137 156 }
  157 + //else
  158 + //send_serial('I');
138 159 }
139 160 else if(tagDetected)
140 161 {
... ... @@ -144,37 +165,45 @@ void loop(void)
144 165 else if(ser == NFC_TAGQUERY_UID)
145 166 {
146 167 if(tagType == NFC_TYPE_STUDENT)
147   - {/*
148   - Serial.print((char) studentTag[0]);
149   - Serial.print((char) studentTag[1]);
150   - Serial.print((char) studentTag[2]);
151   - Serial.print((char) studentTag[3]);
152   - Serial.print((char) studentTag[4]);
153   - Serial.print((char) studentTag[5]);
154   - Serial.print((char) studentTag[6]);
155   - Serial.print((char) studentTag[7]);*/
156   - send_serial(0x10);
157   - send_serial(0x20);
158   - send_serial(0x30);
159   - send_serial(0x40);
160   - send_serial(0x50);
161   - send_serial(0x60);
162   - send_serial(0x70);
163   - send_serial(0x80);
  168 + {
  169 + send_serial(studentTag[0]);
  170 + _delay_ms(50);
  171 + send_serial(studentTag[1]);
  172 + _delay_ms(50);
  173 + send_serial(studentTag[2]);
  174 + _delay_ms(50);
  175 + send_serial(studentTag[3]);
  176 + _delay_ms(50);
  177 + send_serial(studentTag[4]);
  178 + _delay_ms(50);
  179 + send_serial(studentTag[5]);
  180 + _delay_ms(50);
  181 + send_serial(studentTag[6]);
  182 + _delay_ms(50);
  183 + send_serial(studentTag[7]);
  184 + _delay_ms(50);
164 185 }
165 186 else
166 187 {
167 188 send_serial(professorTag[0]);
  189 + send_serial(professorTag[1]);
  190 + send_serial(professorTag[2]);
  191 + send_serial(professorTag[3]);
  192 + send_serial(professorTag[4]);
  193 + send_serial(professorTag[5]);
168 194 }
169 195 tagDetected = false;
  196 + _delay_ms(5000);
170 197 }
171 198 else
172   - send_serial((char) SERIAL_ERROR);
  199 + send_serial(SERIAL_ERROR);
173 200 }
174 201 else
175 202 {
176 203 if(get_serial() == NFC_TAGQUERY)
177 204 send_serial(NFC_NOTAG);
  205 + else
  206 + send_serial(SERIAL_ERROR);
178 207 }
179 208 }
180 209  
... ... @@ -183,8 +212,7 @@ int main(void)
183 212 setup();
184 213  
185 214 while(1)
186   - send_serial('Y');
187   - //loop();
  215 + loop();
188 216  
189 217 return 0;
190 218 }
... ...