mirror of
https://protopirate.net/ProtoPirate/ProtoPirate.git
synced 2026-09-26 02:43:36 +00:00
- 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)
103 lines
2.4 KiB
C
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;
|
|
}
|