button is still broken
FAP Build / ufbt: Build for Momentum dev (push) Successful in 38s
FAP Build / ufbt: Build for OFW dev channel (push) Successful in 38s
FAP Build / ufbt: Build for OFW release channel (push) Successful in 37s
FAP Build / ufbt: Build for Unleashed dev (push) Successful in 37s
FAP Build / ufbt: Build for Unleashed release (push) Successful in 47s
FAP Build / ufbt: Build for Momentum release (push) Successful in 59s

This commit is contained in:
MX
2026-02-12 16:45:40 +03:00
parent 602b24ee41
commit a1fc3cf8a9
2 changed files with 29 additions and 10 deletions
+17 -10
View File
@@ -67,14 +67,20 @@ static const uint32_t vag_tea_key_schedule[] = {0x0B46502D, 0x5E253718, 0x2BF93A
static const char* vag_button_name(uint8_t btn) {
switch(btn) {
case 1:
case 0x1:
return "Unlock";
case 2:
case 0x2:
return "Lock";
case 4:
return "Trunk";
case 0x4:
return "Boot";
case 0x10:
return "Unlock";
case 0x20:
return "Lock";
case 0x40:
return "Boot";
default:
return "Unknown";
return "Unkn";
}
}
@@ -1111,14 +1117,14 @@ static uint8_t vag_btn_to_byte(uint8_t btn, uint8_t vag_type) {
return btn;
} else {
switch(btn) {
case 1:
case 0x1:
return 0x10;
case 2:
case 0x2:
return 0x20;
case 4:
case 0x4:
return 0x40;
default:
return 0x20;
return btn;
}
}
}
@@ -1671,13 +1677,14 @@ void subghz_protocol_decoder_vag_get_string(void* context, FuriString* output) {
output,
"%s %dbit\r\n"
"Key1:%08lX%08lX\r\n"
"Key2:%04X Btn:%s\r\n"
"Key2:%04X Btn:%0X - %s\r\n"
"Ser:%08lX Cnt:%06lX\r\n",
vehicle_name,
instance->data_count_bit,
(unsigned long)(key1 >> 32),
(unsigned long)(key1 & 0xFFFFFFFF),
key2,
instance->btn,
vag_button_name(instance->btn),
(unsigned long)instance->serial,
(unsigned long)instance->cnt);
+12
View File
@@ -108,6 +108,18 @@ static uint8_t
}
// VAG
else if(strstr(protocol, "VAG")) {
if(original == 0x10 || original == 0x20 || original == 0x40) {
switch(key) {
case InputKeyUp:
return 0x20; // Lock
case InputKeyOk:
return 0x10; // Unlock
case InputKeyDown:
return 0x40; // Boot
default:
return original;
}
}
switch(key) {
case InputKeyUp:
return 0x2; // Lock