Files
ProtoPirate/protocols/keys.c
T
0mega 62b31bfe95 More Memory optimizations and new protocols
- Split RX registries into more plugins: AM, AM VAG, FM, FM F4, and FM Honda1
- Add per-protocol TX plugins so emulation loads only the selected encoder
- Sub Decode (enabled by default) and Timing Tuner as plugins
- Max history increased to 20 signals
- Fix Sub Decode and simplified UI
- Add Check Saved setting ported from dexter_pester PR !
- Fix Fiat V1 decoder and add HITAG2 key TX support
- Add Renault V0, Fiat V2, Honda V2, Ford V3 (& US variant) Thanks Ash

Sorry this is a lot at once x)
2026-06-30 21:28:26 +02:00

103 lines
2.4 KiB
C

#include "keys.h"
#define KIA_KEY1 10u
#define KIA_KEY2 11u
#define KIA_KEY3 12u
#define KIA_KEY4 13u
uint64_t kia_mf_key = 0;
uint64_t kia_v6_a_key = 0;
uint64_t kia_v6_b_key = 0;
uint64_t kia_v5_key = 0;
static bool kia_mf_key_loaded = false;
static bool kia_v6_a_key_loaded = false;
static bool kia_v6_b_key_loaded = false;
static bool kia_v5_key_loaded = false;
static void protopirate_keys_reset(void) {
kia_mf_key = 0;
kia_v6_a_key = 0;
kia_v6_b_key = 0;
kia_v5_key = 0;
kia_mf_key_loaded = false;
kia_v6_a_key_loaded = false;
kia_v6_b_key_loaded = false;
kia_v5_key_loaded = false;
}
bool protopirate_keys_load(SubGhzEnvironment* environment) {
protopirate_keys_reset();
if(!environment) {
return false;
}
SubGhzKeystore* keystore = subghz_environment_get_keystore(environment);
if(!keystore) {
return false;
}
SubGhzKeyArray_t* key_data = subghz_keystore_get_data(keystore);
if(!key_data) {
return false;
}
for
M_EACH(manufacture_code, *key_data, SubGhzKeyArray_t) {
switch(manufacture_code->type) {
case KIA_KEY1:
kia_mf_key = manufacture_code->key;
kia_mf_key_loaded = true;
break;
case KIA_KEY2:
kia_v6_a_key = manufacture_code->key;
kia_v6_a_key_loaded = true;
break;
case KIA_KEY3:
kia_v6_b_key = manufacture_code->key;
kia_v6_b_key_loaded = true;
break;
case KIA_KEY4:
kia_v5_key = manufacture_code->key;
kia_v5_key_loaded = true;
break;
default:
break;
}
}
return kia_mf_key_loaded || kia_v6_a_key_loaded || kia_v6_b_key_loaded || kia_v5_key_loaded;
}
uint64_t get_kia_mf_key() {
return kia_mf_key;
}
uint64_t get_kia_v6_keystore_a() {
return kia_v6_a_key;
}
uint64_t get_kia_v6_keystore_b() {
return kia_v6_b_key;
}
uint64_t get_kia_v5_key() {
return kia_v5_key;
}
bool protopirate_keys_has_kia_mf_key(void) {
return kia_mf_key_loaded;
}
bool protopirate_keys_has_kia_v6_keystore_a(void) {
return kia_v6_a_key_loaded;
}
bool protopirate_keys_has_kia_v6_keystore_b(void) {
return kia_v6_b_key_loaded;
}
bool protopirate_keys_has_kia_v5_key(void) {
return kia_v5_key_loaded;
}