// // Created by cfif on 31.08.2026. // #include #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; // Неизвестный тип } }