Commit 18f21c2f286be6c94c0e4449da4308fde0612698
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
... | ... | @@ -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 | } | ... | ... |