77 lines
2.1 KiB
C
77 lines
2.1 KiB
C
//
|
|
// Created by cfif on 31.08.2026.
|
|
//
|
|
#include <stdint.h>
|
|
#include "VIN_DATA.h"
|
|
|
|
static uint8_t getVehicleTypeFromVin(const char* vin) {
|
|
|
|
// Преобразуем два байта в 16-битное значение
|
|
uint16_t typeCode = ((uint16_t)(unsigned char)vin[3] << 8) | (unsigned char)vin[4];
|
|
|
|
// Определяем Vehicle TYPE по коду
|
|
switch (typeCode) {
|
|
// Vehicle TYPE = 1
|
|
case VEHICLE_SEDAN_NON_ARMORED:
|
|
case VEHICLE_CABRIO:
|
|
case VEHICLE_SEDAN_4X2:
|
|
case VEHICLE_SEDAN_LONG:
|
|
case VEHICLE_CABRIO_SHOW:
|
|
return 1;
|
|
|
|
// Vehicle TYPE = 2
|
|
case VEHICLE_SEDAN_ARMORED:
|
|
case VEHICLE_SEDAN_LONG_ARMORED:
|
|
return 2;
|
|
|
|
// Vehicle TYPE = 3
|
|
case VEHICLE_LIMO_ARMORED_V12:
|
|
case VEHICLE_LIMO_ARMORED_V8:
|
|
case VEHICLE_LIMO_ARMORED_V8_CIVIL:
|
|
return 3;
|
|
|
|
// Vehicle TYPE = 4
|
|
case VEHICLE_SUV_NON_ARMORED:
|
|
case VEHICLE_SUV_ARMORED:
|
|
return 4;
|
|
|
|
// Vehicle TYPE = 5
|
|
case VEHICLE_MPV_NON_ARMORED_4SEAT:
|
|
case VEHICLE_MPV_ARMORED_8SEAT:
|
|
case VEHICLE_MPV_NON_ARMORED_9SEAT:
|
|
case VEHICLE_MPV_ARMORED_9SEAT:
|
|
case VEHICLE_MPV_ARMORED_4SEAT:
|
|
case VEHICLE_MPV_ORBITA:
|
|
case VEHICLE_MPV_TABLETKA:
|
|
return 5;
|
|
|
|
default:
|
|
return 0; // Неизвестный тип
|
|
}
|
|
}
|
|
|
|
uint8_t setVehicleTypeFromVinToCalib(const char* vin) {
|
|
uint8_t Vehicle_TYPE = getVehicleTypeFromVin(vin);
|
|
|
|
// Определяем Vehicle TYPE по коду
|
|
switch (Vehicle_TYPE) {
|
|
case 1:
|
|
Rs_Cal_0_SedanL();
|
|
return 1;
|
|
case 2:
|
|
Rs_Cal_1_SedanH();
|
|
return 2;
|
|
case 3:
|
|
Rs_Cal_2_Limo();
|
|
return 3;
|
|
case 4:
|
|
Rs_Cal_3_Suv();
|
|
return 4;
|
|
case 5:
|
|
Rs_Cal_4_Mpv();
|
|
return 5;
|
|
default:
|
|
Rs_Cal_0_SedanL();
|
|
return 0; // Неизвестный тип
|
|
}
|
|
} |