1 | //Abschnitt der Main Funktion:
|
2 | uint8_t Login_Password_Byte[4] = {0x00, 0x00, 0x00, 0x00}; /*defined as a global variable
|
3 | void AskForPassword(void)
|
4 | { UART_sendCString("Default password (j/n)?: ");
|
5 |
|
6 | while(UART_Not_Recieved)
|
7 | {
|
8 |
|
9 | }
|
10 | UART_putNewLine();
|
11 | UART_Not_Recieved = true;
|
12 | if(RX == 0x6A)
|
13 | {
|
14 | Login_Password_Byte[0] = 0x00;
|
15 | Login_Password_Byte[1] = 0x00;
|
16 | Login_Password_Byte[2] = 0x00;
|
17 | Login_Password_Byte[3] = 0x00;
|
18 |
|
19 | }else{
|
20 | UART_sendCString("Please enter a valid 4 character password: ");
|
21 |
|
22 | while(UART_Not_Recieved)
|
23 | {
|
24 |
|
25 | }
|
26 | Login_Password_Byte[0] = RX;
|
27 | UART_Not_Recieved = true;
|
28 | while(UART_Not_Recieved)
|
29 | {
|
30 |
|
31 | }
|
32 | Login_Password_Byte[1] = RX;
|
33 | UART_Not_Recieved = true;
|
34 | while(UART_Not_Recieved)
|
35 | {
|
36 |
|
37 | }
|
38 | Login_Password_Byte[2] = RX;
|
39 | UART_Not_Recieved = true;
|
40 | while(UART_Not_Recieved)
|
41 | {
|
42 |
|
43 | }
|
44 | Login_Password_Byte[3] = RX;
|
45 | UART_Not_Recieved = true;
|
46 | UART_putNewLine();
|
47 | }
|
48 | }
|
49 | //Abschnitt der LOGIN Funktion
|
50 | oid Login(uint8_t Byte1, uint8_t Byte2, uint8_t Byte3, uint8_t Byte4)
|
51 | {
|
52 | uint8_t ui8Offset = 0;
|
53 | g_pui8TrfBuffer[ui8Offset++] = 0x8F; // Reset FIFO
|
54 | g_pui8TrfBuffer[ui8Offset++] = 0x91; // Send with CRC
|
55 | g_pui8TrfBuffer[ui8Offset++] = 0x3D; // Write Continuous
|
56 | g_pui8TrfBuffer[ui8Offset++] = 0x00; //length
|
57 | g_pui8TrfBuffer[ui8Offset++] = 0xF0; // length
|
58 | g_pui8TrfBuffer[ui8Offset++] = 0x22; // ISO15693 flags
|
59 | g_pui8TrfBuffer[ui8Offset++] = 0xE4; // Login command code
|
60 | g_pui8TrfBuffer[ui8Offset++] = 0x16; //IC Mfg Code
|
61 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[0]; // Tag UID
|
62 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[1]; // Tag UID
|
63 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[2]; // Tag UID
|
64 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[3]; // Tag UID
|
65 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[4]; // Tag UID
|
66 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[5]; // Tag UID
|
67 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[6]; // Tag UID
|
68 | g_pui8TrfBuffer[ui8Offset++] = g_pui8Iso15693UId[7]; // Tag UID
|
69 |
|
70 | g_pui8TrfBuffer[ui8Offset++] = Byte1; // Password
|
71 | UART_putByte(Byte1);
|
72 | g_pui8TrfBuffer[ui8Offset++] = Byte2;
|
73 | UART_putByte(Byte2);
|
74 |
|
75 | g_pui8TrfBuffer[ui8Offset++] = Byte3;
|
76 | UART_putByte(Byte3);
|
77 |
|
78 | g_pui8TrfBuffer[ui8Offset++] = Byte4;
|
79 | UART_putByte(Byte4);
|
80 | TRF79xxA_writeRaw(&g_pui8TrfBuffer[0], ui8Offset); // Issue the write Password command
|
81 | g_sTrfStatus = TRF79xxA_waitRxData(5,15); // 5 millisecond TX timeout, 15 millisecond RX timeout
|
82 |
|
83 | if (g_sTrfStatus == RX_COMPLETE) // If data has been received
|
84 | {
|
85 | if (g_pui8TrfBuffer[0] == 0x00) // Confirm "no error" in response flags byte
|
86 | {
|
87 | UART_sendCString(" Login successful ");
|
88 | UART_putNewLine();
|
89 | }
|
90 | else
|
91 | {
|
92 | UART_sendCString(" Login failed (wrong password)");
|
93 | Write_Data = false;
|
94 | New_Password = false;
|
95 | Change_Protect_Status = false;
|
96 | UART_putNewLine();
|
97 | }
|
98 | }
|
99 | }
|