Skip to content

Commit

Permalink
Merge pull request #34 from DocSystem/dev
Browse files Browse the repository at this point in the history
Print country & network in case of unknown card
  • Loading branch information
luu176 authored Jan 26, 2025
2 parents 6e77a42 + 4b51e88 commit be6aca3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
3 changes: 3 additions & 0 deletions api/calypso/calypso_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ typedef struct {
int contracts_count;
int events_count;
int special_events_count;

int country_num;
int network_num;
} CalypsoCardData;

typedef struct {
Expand Down
36 changes: 25 additions & 11 deletions scenes/metroflip_scene_calypso.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,18 @@ void update_page_info(void* context, FuriString* parsed_data) {
}
default: {
furi_string_cat_printf(parsed_data, "\e#Unknown %u:\n", ctx->card->card_number);
furi_string_cat_printf(
parsed_data, "Country: %s\n", get_country_string(ctx->card->country_num));
if(guess_card_type(ctx->card->country_num, ctx->card->network_num) !=
CALYPSO_CARD_UNKNOWN) {
furi_string_cat_printf(
parsed_data,
"Network: %s\n",
get_network_string(
guess_card_type(ctx->card->country_num, ctx->card->network_num)));
} else {
furi_string_cat_printf(parsed_data, "Network: %d\n", ctx->card->network_num);
}
break;
}
}
Expand Down Expand Up @@ -465,23 +477,23 @@ static NfcCommand metroflip_scene_navigo_poller_callback(NfcGenericEvent event,
// TAG, "Environment bit_representation: %s", environment_bit_representation);
start = 13;
end = 16;
int country_num =
card->country_num =
bit_slice_to_dec(environment_bit_representation, start, end) * 100 +
bit_slice_to_dec(environment_bit_representation, start + 4, end + 4) * 10 +
bit_slice_to_dec(environment_bit_representation, start + 8, end + 8);
start = 25;
end = 28;
int network_num =
card->network_num =
bit_slice_to_dec(environment_bit_representation, start, end) * 100 +
bit_slice_to_dec(environment_bit_representation, start + 4, end + 4) * 10 +
bit_slice_to_dec(environment_bit_representation, start + 8, end + 8);
card->card_type = guess_card_type(country_num, network_num);
card->card_type = guess_card_type(card->country_num, card->network_num);
switch(card->card_type) {
case CALYPSO_CARD_NAVIGO: {
card->navigo = malloc(sizeof(NavigoCardData));

card->navigo->environment.country_num = country_num;
card->navigo->environment.network_num = network_num;
card->navigo->environment.country_num = card->country_num;
card->navigo->environment.network_num = card->network_num;

CalypsoApp* IntercodeEnvHolderStructure = get_intercode_structure_env_holder();

Expand Down Expand Up @@ -1247,8 +1259,8 @@ static NfcCommand metroflip_scene_navigo_poller_callback(NfcGenericEvent event,
case CALYPSO_CARD_OPUS: {
card->opus = malloc(sizeof(OpusCardData));

card->opus->environment.country_num = country_num;
card->opus->environment.network_num = network_num;
card->opus->environment.country_num = card->country_num;
card->opus->environment.network_num = card->network_num;

CalypsoApp* OpusEnvHolderStructure = get_opus_env_holder_structure();

Expand Down Expand Up @@ -1586,18 +1598,20 @@ static NfcCommand metroflip_scene_navigo_poller_callback(NfcGenericEvent event,
case CALYPSO_CARD_UNKNOWN: {
start = 3;
end = 6;
country_num =
int country_num =
bit_slice_to_dec(environment_bit_representation, start, end) * 100 +
bit_slice_to_dec(environment_bit_representation, start + 4, end + 4) * 10 +
bit_slice_to_dec(environment_bit_representation, start + 8, end + 8);
start = 15;
end = 18;
network_num =
int network_num =
bit_slice_to_dec(environment_bit_representation, start, end) * 100 +
bit_slice_to_dec(environment_bit_representation, start + 4, end + 4) * 10 +
bit_slice_to_dec(environment_bit_representation, start + 8, end + 8);
card->card_type = guess_card_type(country_num, network_num);
if(card->card_type == CALYPSO_CARD_RAVKAV) {
if(guess_card_type(country_num, network_num) == CALYPSO_CARD_RAVKAV) {
card->card_type = CALYPSO_CARD_RAVKAV;
card->country_num = country_num;
card->network_num = network_num;
}
break;
}
Expand Down

0 comments on commit be6aca3

Please sign in to comment.