Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFID: fix read info screen #1723

Merged
merged 8 commits into from
Sep 19, 2022
Merged
11 changes: 5 additions & 6 deletions applications/main/lfrfid/scenes/lfrfid_scene_read_success.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@ void lfrfid_scene_read_success_on_enter(void* context) {
uint8_t* data = (uint8_t*)malloc(size);
protocol_dict_get_data(app->dict, app->protocol_id, data, size);
for(uint8_t i = 0; i < size; i++) {
if(i != 0) {
string_cat_printf(tmp_string, " ");
}

if(i >= 9) {
string_cat_printf(tmp_string, "...");
string_cat_printf(tmp_string, "..");
break;
} else {
if(i != 0) {
string_cat_printf(tmp_string, " ");
}
string_cat_printf(tmp_string, "%02X", data[i]);
}
}
Expand All @@ -43,7 +42,7 @@ void lfrfid_scene_read_success_on_enter(void* context) {
string_cat_printf(tmp_string, "\r\n%s", string_get_cstr(render_data));
string_clear(render_data);

widget_add_string_element(
widget_add_string_multiline_element(
widget, 0, 16, AlignLeft, AlignTop, FontSecondary, string_get_cstr(tmp_string));

notification_message_block(app->notifications, &sequence_set_green_255);
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_awid.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,10 @@ bool protocol_awid_write_data(ProtocolAwid* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_awid_encode(protocol->data, (uint8_t*)protocol->encoded_data);
protocol_awid_decode(protocol->encoded_data, protocol->data);

protocol_awid_encode(protocol->data, (uint8_t*)protocol->encoded_data);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
8 changes: 8 additions & 0 deletions lib/lfrfid/protocols/protocol_em4100.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,14 @@ bool protocol_em4100_write_data(ProtocolEM4100* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_em4100_encoder_start(protocol);
em4100_decode(
(uint8_t*)&protocol->encoded_data,
sizeof(EM4100DecodedData),
protocol->data,
EM4100_DECODED_DATA_SIZE);

protocol_em4100_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_fdx_a.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,10 @@ bool protocol_fdx_a_write_data(ProtocolFDXA* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_fdx_a_encoder_start(protocol);
protocol_fdx_a_decode(protocol->encoded_data, protocol->data);

protocol_fdx_a_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_fdx_b.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,10 @@ bool protocol_fdx_b_write_data(ProtocolFDXB* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_fdx_b_encoder_start(protocol);
protocol_fdx_b_decode(protocol);

protocol_fdx_b_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_gallagher.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,10 @@ bool protocol_gallagher_write_data(ProtocolGallagher* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_gallagher_encoder_start(protocol);
protocol_gallagher_decode(protocol);

protocol_gallagher_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_h10301.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,10 @@ bool protocol_h10301_write_data(ProtocolH10301* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_h10301_encoder_start(protocol);
protocol_h10301_decode(protocol->encoded_data, protocol->data);

protocol_h10301_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_hid_ex_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,10 @@ bool protocol_hid_ex_generic_write_data(ProtocolHIDEx* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_hid_ex_generic_encoder_start(protocol);
protocol_hid_ex_generic_decode(protocol->encoded_data, protocol->data);

protocol_hid_ex_generic_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_hid_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,10 @@ bool protocol_hid_generic_write_data(ProtocolHID* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_hid_generic_encoder_start(protocol);
protocol_hid_generic_decode(protocol->encoded_data, protocol->data);

protocol_hid_generic_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_io_prox_xsf.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,10 @@ bool protocol_io_prox_xsf_write_data(ProtocolIOProxXSF* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_io_prox_xsf_encode(protocol->data, protocol->encoded_data);
protocol_io_prox_xsf_decode(protocol->encoded_data, protocol->data);

protocol_io_prox_xsf_encode(protocol->data, protocol->encoded_data);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_jablotron.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,10 @@ bool protocol_jablotron_write_data(ProtocolJablotron* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_jablotron_encoder_start(protocol);
protocol_jablotron_decode(protocol);

protocol_jablotron_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_pac_stanley.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,10 @@ bool protocol_pac_stanley_write_data(ProtocolPACStanley* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_pac_stanley_encoder_start(protocol);
protocol_pac_stanley_decode(protocol);

protocol_pac_stanley_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_paradox.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,10 @@ bool protocol_paradox_write_data(ProtocolParadox* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_paradox_encode(protocol->data, (uint8_t*)protocol->encoded_data);
protocol_paradox_decode(protocol->encoded_data, protocol->data);

protocol_paradox_encode(protocol->data, (uint8_t*)protocol->encoded_data);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_pyramid.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,10 @@ bool protocol_pyramid_write_data(ProtocolPyramid* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_pyramid_encode(protocol);
protocol_pyramid_decode(protocol);

protocol_pyramid_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down
4 changes: 4 additions & 0 deletions lib/lfrfid/protocols/protocol_viking.c
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,10 @@ bool protocol_viking_write_data(ProtocolViking* protocol, void* data) {
LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data;
bool result = false;

// Correct protocol data by redecoding
protocol_viking_encoder_start(protocol);
protocol_viking_decode(protocol);

protocol_viking_encoder_start(protocol);

if(request->write_type == LFRFIDWriteTypeT5577) {
Expand Down