OFW PR 2536: Fixing parsing troika card number

by @achistyakov

we tested on regular cards, reading is not broken, so this pr should not break anything
This commit is contained in:
MX 2023-04-02 01:11:05 +03:00
parent 6b7b95e888
commit dce5bfd723
No known key found for this signature in database
GPG key ID: 7CCC66B7DBDD1C83
2 changed files with 6 additions and 4 deletions

View file

@ -90,13 +90,14 @@ bool troika_4k_parser_parse(NfcDeviceData* dev_data) {
uint8_t* temp_ptr = &data->block[8 * 4 + 1].value[5];
uint16_t balance = ((temp_ptr[0] << 8) | temp_ptr[1]) / 25;
temp_ptr = &data->block[8 * 4].value[3];
temp_ptr = &data->block[8 * 4].value[2];
uint32_t number = 0;
for(size_t i = 0; i < 4; i++) {
for(size_t i = 1; i < 5; i++) {
number <<= 8;
number |= temp_ptr[i];
}
number >>= 4;
number |= (temp_ptr[0] & 0xf) << 28;
furi_string_printf(
dev_data->parsed_data, "\e#Troika\nNum: %lu\nBalance: %u rur.", number, balance);

View file

@ -70,13 +70,14 @@ bool troika_parser_parse(NfcDeviceData* dev_data) {
// Parse data
uint8_t* temp_ptr = &data->block[8 * 4 + 1].value[5];
uint16_t balance = ((temp_ptr[0] << 8) | temp_ptr[1]) / 25;
temp_ptr = &data->block[8 * 4].value[3];
temp_ptr = &data->block[8 * 4].value[2];
uint32_t number = 0;
for(size_t i = 0; i < 4; i++) {
for(size_t i = 1; i < 5; i++) {
number <<= 8;
number |= temp_ptr[i];
}
number >>= 4;
number |= (temp_ptr[0] & 0xf) << 28;
furi_string_printf(
dev_data->parsed_data, "\e#Troika\nNum: %lu\nBalance: %u rur.", number, balance);