mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-07-26 01:48:10 -07:00
Removing duplicate code in t5577 passwd clear
This commit is contained in:
@@ -54,7 +54,12 @@ static void t5577_write_reset() {
|
||||
t5577_write_bit(0);
|
||||
}
|
||||
|
||||
static void t5577_write_block(uint8_t block, bool lock_bit, uint32_t data) {
|
||||
static void t5577_write_block_pass(
|
||||
uint8_t block,
|
||||
bool lock_bit,
|
||||
uint32_t data,
|
||||
bool with_pass,
|
||||
uint32_t password) {
|
||||
furi_delay_us(T5577_TIMING_WAIT_TIME * 8);
|
||||
|
||||
// start gap
|
||||
@@ -63,6 +68,13 @@ static void t5577_write_block(uint8_t block, bool lock_bit, uint32_t data) {
|
||||
// opcode for page 0
|
||||
t5577_write_opcode(T5577_OPCODE_PAGE_0);
|
||||
|
||||
// password
|
||||
if(with_pass) {
|
||||
for(uint8_t i = 0; i < 32; i++) {
|
||||
t5577_write_bit((password >> (31 - i)) & 1);
|
||||
}
|
||||
}
|
||||
|
||||
// lock bit
|
||||
t5577_write_bit(lock_bit);
|
||||
|
||||
@@ -82,11 +94,26 @@ static void t5577_write_block(uint8_t block, bool lock_bit, uint32_t data) {
|
||||
t5577_write_reset();
|
||||
}
|
||||
|
||||
static void t5577_write_block_simple(uint8_t block, bool lock_bit, uint32_t data) {
|
||||
t5577_write_block_pass(block, lock_bit, data, false, 0);
|
||||
}
|
||||
|
||||
void t5577_write(LFRFIDT5577* data) {
|
||||
t5577_start();
|
||||
FURI_CRITICAL_ENTER();
|
||||
for(size_t i = 0; i < data->blocks_to_write; i++) {
|
||||
t5577_write_block(i, false, data->block[i]);
|
||||
t5577_write_block_simple(i, false, data->block[i]);
|
||||
}
|
||||
t5577_write_reset();
|
||||
FURI_CRITICAL_EXIT();
|
||||
t5577_stop();
|
||||
}
|
||||
|
||||
void t5577_write_with_pass(LFRFIDT5577* data, uint32_t password) {
|
||||
t5577_start();
|
||||
FURI_CRITICAL_ENTER();
|
||||
for(size_t i = 0; i < data->blocks_to_write; i++) {
|
||||
t5577_write_block_pass(0, false, data->block[i], true, password);
|
||||
}
|
||||
t5577_write_reset();
|
||||
FURI_CRITICAL_EXIT();
|
||||
|
||||
@@ -51,6 +51,8 @@ typedef struct {
|
||||
*/
|
||||
void t5577_write(LFRFIDT5577* data);
|
||||
|
||||
void t5577_write_with_pass(LFRFIDT5577* data, uint32_t password);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user