fixed slotted readers emulation bug
parent
eb618cd999
commit
aa2871dc98
|
|
@ -32,7 +32,6 @@ private:
|
||||||
byte rfidp[256]; // rfid response buffer
|
byte rfidp[256]; // rfid response buffer
|
||||||
byte rf_i; //response buffer size
|
byte rf_i; //response buffer size
|
||||||
|
|
||||||
//(who needs enum type ?)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -142,17 +142,22 @@ void Reader::getStatus(byte* buf)
|
||||||
|
|
||||||
// set status in buffer
|
// set status in buffer
|
||||||
|
|
||||||
|
if(holdcard) //when simulating card holding, use stored uid
|
||||||
|
{
|
||||||
// if a card is present, copy its uid
|
memcpy(buf+2,uid,8);
|
||||||
if(rfmodule->isCardPresent()){
|
}
|
||||||
rfmodule->getUID(buf+2);
|
else
|
||||||
} else {
|
{
|
||||||
for(int i=0;i<8;i++)
|
// if a card is present, copy its uid
|
||||||
{
|
if(rfmodule->isCardPresent()){
|
||||||
buf[2+i] = 0x00;
|
rfmodule->getUID(buf+2);
|
||||||
|
} else {
|
||||||
|
for(int i=0;i<8;i++)
|
||||||
|
{
|
||||||
|
buf[2+i] = 0x00;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -181,7 +186,8 @@ void Reader::getStatus(byte* buf)
|
||||||
// old readers sensors emulation
|
// old readers sensors emulation
|
||||||
if(acceptcard && rfmodule->isCardPresent() == 1)//if reader is accepting cards and a card is detected, simulate old reader holding card
|
if(acceptcard && rfmodule->isCardPresent() == 1)//if reader is accepting cards and a card is detected, simulate old reader holding card
|
||||||
{
|
{
|
||||||
holdcard = true;
|
holdcard = true; //until card is ejected, we'll ignore new cards and simulate this card being hold in the reader
|
||||||
|
rfmodule->getUID(uid); // copy the current card uid
|
||||||
}
|
}
|
||||||
|
|
||||||
if(holdcard) //when holding card, both sensors are on and card is present
|
if(holdcard) //when holding card, both sensors are on and card is present
|
||||||
|
|
@ -300,6 +306,17 @@ short Reader::processRequest(byte* request, byte* answer)
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// sleep mode
|
||||||
|
case 0x3A:
|
||||||
|
answer[4] = 0x01;
|
||||||
|
answer[5] = 0x00;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
//
|
//
|
||||||
// key exchange (for popn new wavepass readers)
|
// key exchange (for popn new wavepass readers)
|
||||||
|
|
|
||||||
|
|
@ -24,14 +24,14 @@ public:
|
||||||
virtual void getStatus(byte* buf);
|
virtual void getStatus(byte* buf);
|
||||||
void readRfid();
|
void readRfid();
|
||||||
|
|
||||||
public:
|
private:
|
||||||
boolean acceptcard; // reader state, accepting cards or not (for emulating old readers)
|
boolean acceptcard; // reader state, accepting cards or not (for emulating old readers)
|
||||||
boolean holdcard; // reader state, holding card or not (for emulating old readers)
|
boolean holdcard; // reader state, holding card or not (for emulating old readers)
|
||||||
|
byte uid[8]; // store uid of holding card (for emulating old readers)
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
boolean keypadInitDone;
|
|
||||||
|
|
||||||
|
boolean keypadInitDone;
|
||||||
word keypad; // keys currently pressed
|
word keypad; // keys currently pressed
|
||||||
word keypad_old; // keys pressed before last read
|
word keypad_old; // keys pressed before last read
|
||||||
byte keydown; // used to indicated rising edge on keys
|
byte keydown; // used to indicated rising edge on keys
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ Reader nod1;//first reader
|
||||||
Reader nod2;//second reader
|
Reader nod2;//second reader
|
||||||
|
|
||||||
Ddr nod3;
|
Ddr nod3;
|
||||||
|
//LedBoard nod3("LEDB");//led board
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,16 +57,16 @@
|
||||||
/*
|
/*
|
||||||
### Keypad 3x4 Matrix ###
|
### Keypad 3x4 Matrix ###
|
||||||
|
|
||||||
(7)---(8)---(9)---> ROW 1
|
(7)---(8)---(9)---> ROW 4
|
||||||
| | |
|
| | |
|
||||||
(4)---(5)---(6)---> ROW 2
|
(4)---(5)---(6)---> ROW 3
|
||||||
| | |
|
| | |
|
||||||
(1)---(2)---(3)---> ROW 3
|
(1)---(2)---(3)---> ROW 2
|
||||||
| | |
|
| | |
|
||||||
(0)--(00)--([])---> ROW 4
|
(0)--(00)--([])---> ROW 1
|
||||||
| | |
|
| | |
|
||||||
V V V
|
V V V
|
||||||
COL A COL B COL C
|
COL C COL B COL A
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#define K1_A 27
|
#define K1_A 27
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue