45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
/*
|
|
* audi_immo.h
|
|
*
|
|
* Created on: Sep 18, 2025
|
|
* Author: herli
|
|
*/
|
|
|
|
#ifndef IMMOBILISERS_AUDI_IMMO_H_
|
|
#define IMMOBILISERS_AUDI_IMMO_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
/* Four 16-bit key parts exposed for CAN address replies.
|
|
These are defined in audi_immo.c and can be referenced from can_db.c. */
|
|
extern volatile uint16_t audi_immo_key_part_0; // default 0xE61A
|
|
extern volatile uint16_t audi_immo_key_part_1; // default 0x2A66
|
|
extern volatile uint16_t audi_immo_key_part_2; // default 0xFFE5
|
|
extern volatile uint16_t audi_immo_key_part_3; // default 0xFC04
|
|
|
|
/* Optional: initialize to defaults (call once at boot if you like). */
|
|
void audi_immo_init(void);
|
|
|
|
/* Optional: simple setters/getters (handy if later loaded from flash/NVM). */
|
|
static inline void audi_immo_set_key_part(uint8_t idx, uint16_t v) {
|
|
switch (idx) {
|
|
case 0: audi_immo_key_part_0 = v; break;
|
|
case 1: audi_immo_key_part_1 = v; break;
|
|
case 2: audi_immo_key_part_2 = v; break;
|
|
case 3: audi_immo_key_part_3 = v; break;
|
|
default: break;
|
|
}
|
|
}
|
|
|
|
static inline uint16_t audi_immo_get_key_part(uint8_t idx) {
|
|
switch (idx) {
|
|
case 0: return (uint16_t)audi_immo_key_part_0;
|
|
case 1: return (uint16_t)audi_immo_key_part_1;
|
|
case 2: return (uint16_t)audi_immo_key_part_2;
|
|
case 3: return (uint16_t)audi_immo_key_part_3;
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
#endif /* IMMOBILISERS_AUDI_IMMO_H_ */
|