Updated all 700h-712h functionality, added full locking mechanism and byte through 312h, It should be tested in a car...
This commit is contained in:
@@ -242,6 +242,10 @@ const CanMessageDef MSG_ID_EMPF2 = {
|
||||
.send_on_boot = 0,
|
||||
.rx_handler = NULL
|
||||
};
|
||||
|
||||
|
||||
|
||||
#if defined(T06301)
|
||||
const CanMessageDef MSG_ID_EMPF3 =
|
||||
{
|
||||
.can_id = ID_EMPF3, // you set 0x714
|
||||
@@ -254,9 +258,6 @@ const CanMessageDef MSG_ID_EMPF3 =
|
||||
.send_on_boot = 0,
|
||||
.rx_handler = NULL
|
||||
};
|
||||
|
||||
#if defined(T06301)
|
||||
|
||||
const CanMessageDef MSG_ID_EMPF4 = {
|
||||
.can_id = ID_EMPF4,
|
||||
.dir = CAN_DIR_TX,
|
||||
@@ -268,6 +269,19 @@ const CanMessageDef MSG_ID_EMPF4 = {
|
||||
.send_on_boot = 0,
|
||||
.rx_handler = NULL
|
||||
};
|
||||
#else
|
||||
const CanMessageDef MSG_ID_EMPF3 =
|
||||
{
|
||||
.can_id = ID_EMPF3, // you set 0x714
|
||||
.dir = CAN_DIR_TX,
|
||||
.dlc = 8,
|
||||
.name = "BOOT_TEMPLATE",
|
||||
.symbols = NULL,
|
||||
.symbol_count = 0,
|
||||
.tx_template = STARTUP_PAYLOAD,
|
||||
.send_on_boot = 0,
|
||||
.rx_handler = NULL
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ void Fieona_SEND4_Handler(
|
||||
uint16_t FIEONA_TRANS0 = 0x0507;
|
||||
uint16_t FIEONA_TRANS1 = 0x381C;
|
||||
uint16_t FIEONA_TRANS2 = 0xFC1C;
|
||||
uint16_t FIEONA_TRANS3 = 0x71F5;
|
||||
uint16_t FIEONA_TRANS3 = 0x375B;//0x71F5
|
||||
|
||||
uint8_t eps_fieona_override = 0;
|
||||
|
||||
@@ -105,6 +105,8 @@ void Fieona_SEND3_Handler(const uint8_t in_data[8]){
|
||||
}else{
|
||||
Timeout_StopByIndex(18);
|
||||
}
|
||||
Timeout_ResetByIndex(1, TIM16->CNT);
|
||||
|
||||
}else{ //si no esta bloqueado
|
||||
if(rx_word == 0x0024){ //y es 24 -> envio como desinmovilizando pero sin 2100
|
||||
FIEONA_TRANS0 = 0x0164;
|
||||
@@ -123,6 +125,8 @@ void Fieona_SEND3_Handler(const uint8_t in_data[8]){
|
||||
eps_fieona_override = 1;
|
||||
|
||||
if(!fieona_unlock_end){ //si no habia empezado a desinmovilizar empiezo
|
||||
Timeout_StartIfStopped(1, TIM16->CNT);
|
||||
|
||||
fieona_unlock_end = HAL_GetTick() + FIEONA_UNLOCK_MS; //roll over is 50 days with 32bit hal tick
|
||||
}else{ //si habia empezado, chekiamos si ya acabo.
|
||||
if(HAL_GetTick() > fieona_unlock_end){
|
||||
|
||||
@@ -20,8 +20,9 @@
|
||||
// ================================================================
|
||||
|
||||
/* Part number / ECU identifier — 10 ASCII chars, ROM 0x93BA */
|
||||
#define PSG_IDENT_STR "0470004004"
|
||||
//#define PSG_IDENT_STR "0470504010"
|
||||
//#define PSG_IDENT_STR "0470504009"
|
||||
#define PSG_IDENT_STR "0470004004"
|
||||
|
||||
/* Serial number — 6 ASCII chars, EEPROM 0x0080 */
|
||||
#define PSG_SERIAL_STR "297523"
|
||||
@@ -58,6 +59,10 @@
|
||||
|
||||
#define PSG_ANDERUNGSINDEX_STR "000"
|
||||
|
||||
//#define PSG_KUNDENNUMMER_STR "39933 "
|
||||
//#define PSG_KUNDENNUMMER1_STR "39933 "
|
||||
//#define PSG_KUNDENNUMMER2_STR " "
|
||||
|
||||
#define PSG_KUNDENNUMMER_STR "YC1Q9A543EF "
|
||||
#define PSG_KUNDENNUMMER1_STR "YC1Q9A543E"
|
||||
#define PSG_KUNDENNUMMER2_STR "F "
|
||||
|
||||
@@ -376,10 +376,11 @@ float BoostMultiplier(uint8_t mode, float RPM, float ME){
|
||||
}
|
||||
|
||||
//#define _004006
|
||||
#define _004004
|
||||
//#define _004004
|
||||
//#define _004002
|
||||
//#define _504003
|
||||
//#define _504009
|
||||
#define _504009
|
||||
//#define _504010
|
||||
|
||||
#if defined(_004006)
|
||||
struct AlphaStruct fuelmap_m12 = { //probar este mapa
|
||||
@@ -628,6 +629,83 @@ struct fuelMapIndexes fuelMapI = { //probar este mapa
|
||||
{ 0.375, 0.500, 1.625, 2.500, 5.000, 10.000, 30.000, 35.000, 40.000, 45.000, 60.000, 72.000},
|
||||
{ -15.5, -5.5 ,6.3, 27.5, 47.8, 75}
|
||||
};
|
||||
#elif defined(_504010)
|
||||
struct AlphaStruct fuelmap_m12 = { //probar este mapa
|
||||
{
|
||||
{ 7.734, 8.520, 8.777, 8.918, 9.246, 9.621, 10.945, 11.227, 11.496, 11.801, 12.680, 13.500}, //RPM = 99
|
||||
{ 6.750, 7.559, 7.746, 7.875, 8.250, 8.789, 10.547, 10.770, 10.980, 11.203, 11.988, 12.797}, //RPM = 199
|
||||
{ 4.863, 5.754, 6.000, 6.223, 6.820, 7.605, 9.680, 10.102, 10.500, 10.945, 12.539, 13.758}, //RPM = 424
|
||||
{ 4.336, 5.273, 5.520, 5.742, 6.352, 7.137, 9.434, 9.949, 10.465, 10.957, 12.691, 13.793}, //RPM = 499
|
||||
{ 1.547, 2.684, 3.035, 3.293, 3.891, 4.688, 8.227, 9.117, 10.066, 10.898, 13.535, 14.309}, //RPM = 896
|
||||
{ 0.773, 1.957, 2.355, 2.613, 3.246, 4.043, 7.934, 8.941, 9.973, 10.840, 13.758, 14.590}, //RPM = 999
|
||||
{ -1.898, -0.480, -0.047, 0.223, 0.891, 1.992, 6.938, 8.156, 9.363, 10.582, 13.898, 14.602}, //RPM = 1399
|
||||
{ -2.707, -1.230, -0.750, -0.480, 0.223, 1.441, 6.633, 7.887, 9.152, 10.512, 13.770, 14.484}, //RPM = 1499
|
||||
{ -6.258, -4.547, -4.230, -3.938, -3.117, -1.430, 4.828, 6.363, 8.063, 10.066, 13.020, 13.324}, //RPM = 1999
|
||||
{ -7.406, -5.602, -5.273, -5.027, -4.266, -2.543, 3.703, 5.320, 7.289, 9.563, 12.363, 12.492}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_m5 = { //probar este mapa
|
||||
{
|
||||
{ 7.840, 8.625, 8.895, 9.035, 9.352, 9.727, 11.063, 11.379, 11.672, 12.000, 12.879, 13.699}, //RPM = 99
|
||||
{ 6.855, 7.664, 7.852, 7.992, 8.355, 8.895, 10.664, 10.910, 11.156, 11.402, 12.188, 13.008}, //RPM = 199
|
||||
{ 4.945, 5.871, 6.105, 6.328, 6.914, 7.699, 9.785, 10.254, 10.688, 11.168, 12.750, 13.992}, //RPM = 425
|
||||
{ 4.430, 5.367, 5.625, 5.859, 6.457, 7.219, 9.574, 10.102, 10.617, 11.156, 12.902, 14.004}, //RPM = 499
|
||||
{ 1.594, 2.730, 3.070, 3.328, 3.949, 4.746, 8.367, 9.293, 10.254, 11.121, 13.828, 14.590}, //RPM = 896
|
||||
{ 0.820, 2.004, 2.402, 2.660, 3.293, 4.113, 8.074, 9.105, 10.160, 11.086, 14.086, 14.906}, //RPM = 999
|
||||
{ -1.805, -0.387, 0.047, 0.316, 0.984, 2.086, 7.137, 8.391, 9.656, 10.934, 14.309, 15.023}, //RPM = 1399
|
||||
{ -2.566, -1.102, -0.621, -0.352, 0.340, 1.570, 6.855, 8.168, 9.492, 10.910, 14.238, 14.941}, //RPM = 1499
|
||||
{ -6.082, -4.371, -4.031, -3.762, -2.941, -1.242, 5.215, 6.832, 8.578, 10.652, 13.676, 14.051}, //RPM = 2001
|
||||
{ -7.266, -5.438, -5.109, -4.863, -4.102, -2.344, 4.172, 5.813, 7.828, 10.207, 13.137, 13.254}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_10 = { //probar este mapa
|
||||
{
|
||||
{ 7.980, 8.766, 9.035, 9.164, 9.492, 9.867, 11.215, 11.566, 11.895, 12.246, 13.148, 13.969}, //RPM = 99
|
||||
{ 6.996, 7.805, 7.992, 8.133, 8.484, 9.023, 10.816, 11.109, 11.379, 11.648, 12.445, 13.266}, //RPM = 199
|
||||
{ 5.086, 5.988, 6.258, 6.457, 7.055, 7.816, 9.938, 10.441, 10.910, 11.379, 12.996, 14.250}, //RPM = 424
|
||||
{ 4.523, 5.473, 5.719, 5.965, 6.551, 7.313, 9.703, 10.277, 10.828, 11.391, 13.137, 14.285}, //RPM = 499
|
||||
{ 1.641, 2.777, 3.141, 3.387, 3.984, 4.770, 8.496, 9.445, 10.465, 11.379, 14.145, 14.895}, //RPM = 896
|
||||
{ 0.879, 2.063, 2.461, 2.719, 3.352, 4.160, 8.238, 9.305, 10.371, 11.379, 14.438, 15.270}, //RPM = 999
|
||||
{ -1.699, -0.281, 0.152, 0.422, 1.102, 2.203, 7.383, 8.684, 9.984, 11.355, 14.836, 15.539}, //RPM = 1399
|
||||
{ -2.426, -0.961, -0.480, -0.211, 0.480, 1.711, 7.137, 8.496, 9.879, 11.355, 14.754, 15.469}, //RPM = 1499
|
||||
{ -5.906, -4.172, -3.844, -3.551, -2.742, -1.031, 5.684, 7.359, 9.164, 11.309, 14.449, 14.754}, //RPM = 1999
|
||||
{ -7.043, -5.309, -4.922, -4.676, -3.902, -2.133, 4.699, 6.398, 8.461, 10.934, 14.004, 14.121}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_25 = { //probar este mapa
|
||||
{
|
||||
{ 8.098, 8.883, 9.152, 9.293, 9.621, 9.996, 11.355, 11.730, 12.105, 12.469, 13.383, 14.203}, //RPM = 99
|
||||
{ 7.125, 7.934, 8.109, 8.250, 8.613, 9.152, 10.957, 11.273, 11.578, 11.871, 12.691, 13.512}, //RPM = 199
|
||||
{ 5.227, 6.117, 6.363, 6.586, 7.172, 7.957, 10.102, 10.594, 11.098, 11.637, 13.254, 14.484}, //RPM = 425
|
||||
{ 4.652, 5.590, 5.836, 6.059, 6.645, 7.430, 9.891, 10.453, 11.016, 11.625, 13.406, 14.520}, //RPM = 499
|
||||
{ 1.699, 2.836, 3.176, 3.445, 4.055, 4.863, 8.719, 9.668, 10.676, 11.648, 14.496, 15.270}, //RPM = 896
|
||||
{ 0.926, 2.109, 2.508, 2.766, 3.398, 4.230, 8.402, 9.492, 10.605, 11.660, 14.813, 15.656}, //RPM = 1000
|
||||
{ -1.582, -0.164, 0.270, 0.539, 1.207, 2.332, 7.617, 8.977, 10.336, 11.766, 15.328, 16.043}, //RPM = 1399
|
||||
{ -2.285, -0.832, -0.340, -0.070, 0.621, 1.863, 7.418, 8.883, 10.289, 11.824, 15.305, 15.996}, //RPM = 1499
|
||||
{ -5.672, -3.961, -3.621, -3.352, -2.555, -0.797, 6.152, 7.816, 9.762, 12.000, 15.246, 15.445}, //RPM = 1997
|
||||
{ -6.867, -5.051, -4.723, -4.465, -3.703, -1.910, 5.250, 6.996, 9.105, 11.707, 14.895, 15.035}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_60 = { //probar este mapa
|
||||
{
|
||||
{ 8.332, 9.117, 9.387, 9.527, 9.855, 10.219, 11.613, 12.047, 12.469, 12.867, 13.816, 14.637}, //RPM = 99
|
||||
{ 7.348, 8.156, 8.344, 8.484, 8.848, 9.387, 11.215, 11.590, 11.941, 12.270, 13.125, 13.945}, //RPM = 199
|
||||
{ 5.449, 6.352, 6.586, 6.809, 7.395, 8.180, 10.359, 10.910, 11.461, 12.023, 13.676, 14.918}, //RPM = 425
|
||||
{ 4.840, 5.777, 6.023, 6.258, 6.844, 7.641, 10.113, 10.758, 11.379, 12.012, 13.863, 14.965}, //RPM = 499
|
||||
{ 1.770, 2.918, 3.270, 3.527, 4.137, 4.969, 8.953, 9.984, 11.039, 12.129, 15.082, 15.832}, //RPM = 896
|
||||
{ 1.031, 2.215, 2.613, 2.871, 3.504, 4.336, 8.695, 9.820, 10.969, 12.164, 15.445, 16.277}, //RPM = 999
|
||||
{ -1.359, 0.023, 0.457, 0.727, 1.395, 2.531, 8.027, 9.516, 10.910, 12.492, 16.207, 16.910}, //RPM = 1399
|
||||
{ -2.039, -0.574, -0.105, 0.176, 0.879, 2.121, 7.887, 9.422, 10.957, 12.633, 16.207, 16.934}, //RPM = 1499
|
||||
{ -5.344, -3.609, -3.270, -3.000, -2.191, -0.410, 6.938, 8.801, 10.758, 13.172, 16.523, 16.828}, //RPM = 1999
|
||||
{ -6.551, -4.699, -4.406, -4.137, -3.375, -1.512, 6.164, 8.004, 10.184, 12.973, 16.418, 16.535}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
|
||||
struct fuelMapIndexes fuelMapI = { //probar este mapa
|
||||
{ 100, 200, 425, 500, 900, 1000, 1400, 1500, 2000, 2200}, //N_RPM = 17
|
||||
{ 0.375, 0.500, 1.625, 2.500, 5.000, 10.000, 30.000, 35.000, 40.000, 45.000, 60.000, 72.000},
|
||||
{ -5, 10.5 , 27, 45.5, 75.3}
|
||||
};
|
||||
#elif defined(_504003)
|
||||
struct AlphaStruct fuelmap_m12 = { //probar este mapa
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@ static uint16_t last_CAN_msg_1_tick = 0;
|
||||
#endif
|
||||
//#include "sync_pulse.c"
|
||||
|
||||
uint32_t BitStatus = 0;
|
||||
uint32_t BitStatus = 1024; //si es immo de ford tendria que empezar bloqueada.. a saber si ya funciona en el coche con tanta mierda
|
||||
|
||||
uint32_t HiddenTimers = 0;
|
||||
|
||||
@@ -231,6 +231,8 @@ void Handle_EMPF3_BootStart_Timeout(void){
|
||||
Timeout_StopByIndex(21); // got to stop them because overflow
|
||||
|
||||
}
|
||||
|
||||
|
||||
uint8_t s_empf4_due = 0;
|
||||
int counter = 0;
|
||||
#if defined(T06301)
|
||||
@@ -244,6 +246,20 @@ void Handle_EMPF4_TimeoutTick(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(T06301)
|
||||
static uint16_t last_immo_unlocked_tick = 0;
|
||||
void Handle_Immo_Timeout(void)
|
||||
{
|
||||
/*//s_empf4_due = 1;
|
||||
can_port_send_msg_def(&MSG_ID_EMPF4);
|
||||
uint16_t newtick = last_CAN_msg_empf_4_tick + 500;
|
||||
Timeout_ResetByIndex(20, newtick); // deberia mejorarlo bastante esto, en vez de
|
||||
FIEONA_advance();*/
|
||||
Timeout_StopByIndex(1); // deberia mejorarlo bastante esto, en vez de
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
void Handle_startup_Timeout(void){
|
||||
startedEngine = 1;
|
||||
Timeout_ResetByIndex(0, TIM16->CNT); // Reset turnoff timeout
|
||||
@@ -305,7 +321,7 @@ void Handle_SV_BIP_OutOfTolerance_Timeout(void) {
|
||||
TimeoutEntry timeout_list[] = {
|
||||
#if defined(T06301)
|
||||
{ 0, &last_BITZERO_event_tick, 10, &BitStatus, (1 << 0), 0, Handle_BITZERO_Timeout, 1 }, // 10ms
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 11), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 10ms
|
||||
{ 1, &last_immo_unlocked_tick, 10000, &BitStatus, (1 << 10), 0, Handle_Immo_Timeout, 0 }, // 1s
|
||||
|
||||
{ 0, &last_Idle_event_tick, 10, &BitStatus, (1 << 2), 0, Handle_Idle_Timeout, 1 }, // 100ms
|
||||
{ 1, &last_ICRPM_event_tick, 1200, &HiddenTimers, (1 << 3), 0, Handle_IcRPM_Timeout, 1 }, // 20 ms //si en 20 no captura, abre can error, si en 500 sigue sin capturar, rpm = 0
|
||||
@@ -313,7 +329,7 @@ TimeoutEntry timeout_list[] = {
|
||||
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 5), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 10ms
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 6), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 10ms
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 7), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 10ms
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 7), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 100ms
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 8), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 10ms
|
||||
{ 0, &last_NOTIMPLEMENTED_event_tick, 100, &BitStatus, (1 << 9), 0, Handle_NOTIMPLEMENTED_Timeout, 0 }, // 10ms
|
||||
|
||||
|
||||
Reference in New Issue
Block a user