#define iWireLock     iDevice6
#define iWireUnlock   iDevice7
#define iEmergency    iDevice8
#define oWireLock     oDevice6
#define oWireUnlock   oDevice7
#define oEmergency    oDevice8

/** Новая классификация прошивок **

    (A) - Обычный обходчик
    (B) - Baypass
    (С) - Запуск через штатную CAN команду
    (E) - Электрический автомобиль

    Правила нумерации версий:
    release - меняется только при появлении существенно новой версии приложения. Обратная совместимость может не обеспечиваться.
    version - меняется при появлении новых возможостей.
    update  - меняется при исправлении ошибок в текущей версии.
*/

    #define CAN_FW_DESCRIPTION "Geely_Atlas2024_[C]"

//************************** Динамические параметры ***********************************************//

// числовые значения, доступные в CAN-прошивке, битовая маска
SETTING     (valCanAvail_Mask,      Fixed,      uint32_t,   \
		BIT(CanData_RPM) | BIT(CanData_Speed) | BIT(CanData_Odometer) | BIT(CanData_Accelerator) | \
		BIT(CanData_BrakeForce) | BIT(CanData_WheelAngle) | BIT(CanData_FuelLevel) | BIT(CanData_FuelConsumption) |
		BIT(CanData_CoolantTemp)    )

// используемые числовые значения из CAN-прошивки, битовая маска
SETTING     (valCanEn_Mask,         NotFixed,   uint32_t,   \
		BIT(CanData_RPM) | BIT(CanData_Speed) | BIT(CanData_Odometer) | BIT(CanData_Accelerator) | \
		BIT(CanData_BrakeForce) | BIT(CanData_WheelAngle) | BIT(CanData_FuelLevel) | BIT(CanData_FuelConsumption) |
		BIT(CanData_CoolantTemp)    )


//************************** ВХОДЫ ****************************************************************//
	SETTING   (iDoorDrv,        NotFixed,  TInputSettings, {CIO::iCAN})                           // Дверь водителя
	SETTING   (iDoorFP,         NotFixed,  TInputSettings, {CIO::iCAN})                           // Дверь пассажира
	SETTING   (iDoorRL,         NotFixed,  TInputSettings, {CIO::iCAN})                           // Дверь задняя левая
	SETTING   (iDoorRR,         NotFixed,  TInputSettings, {CIO::iCAN})                           // Дверь задняя правая
	SETTING   (iTrunk,          NotFixed,  TInputSettings, {CIO::iCAN})                           // Багажник
	SETTING   (iACC,            NotFixed,  TInputSettings, {CIO::iCAN})                           //
	SETTING   (iIgn,            NotFixed,  TInputSettings, {CIO::iCAN})                           // Зажигание
	SETTING   (iBrake,          NotFixed,  TInputSettings, {CIO::iCAN})                           // Педаль тормоза
	SETTING   (iHBrake,         NotFixed,  TInputSettings, {CIO::iCAN})                           // Стояночный тормоз
	SETTING   (iPark,           NotFixed,  TInputSettings, {CIO::iCAN})                           // АКПП в положении "Park"
	SETTING   (iLock,           NotFixed,  TInputSettings, {CIO::iCAN})                           // Замки дверей
	SETTING   (iLamp,           NotFixed,  TInputSettings, {CIO::iCAN})                           // Габариты / фары
	SETTING   (iLeftTurnLight,  NotFixed,  TInputSettings, {CIO::iCAN})                           // Левый поворотник
	SETTING   (iRightTurnLight, NotFixed,  TInputSettings, {CIO::iCAN})                           // Правый поворотник
	SETTING   (iTaho,           NotFixed,  TInputSettings, {CIO::iCAN})                           // Тахометр
//	SETTING   (iEmergency,      NotFixed,  TInputSettings, {CIO::iCAN})                           // Используется как статус
	SETTING   (Kxx,             NotFixed,  uint16_t,                37)                           // Калибровочный коэф. холостого хода

//************************** ВЫХОДЫ ************************************************************//

	SETTING   (oLights,           NotFixed, uint32_t,     oBIT(oCAN))
//	SETTING   (oAutoStart,        NotFixed, uint32_t,     oBIT(oCAN))                             // События автозапуска
//	SETTING   (oEmergency,        NotFixed, uint32_t,     oBIT(oBrownViolet))                     // Выход на триггерную кнопку.
	SETTING   (oKLine1Relay,      NotFixed, uint32_t,             0)
	SETTING   (oKLine2Relay,      NotFixed, uint32_t,             0)

	SETTING   (oLockDoors,        NotFixed, uint32_t,     oBIT(oCAN))                             // Запереть все двери
	SETTING   (oUnlockDoors,      NotFixed, uint32_t,     oBIT(oCAN))                             // Отпереть все двери
	SETTING   (oImmBypass,        NotFixed, uint32_t,     oBIT(oBrownWhite))
	SETTING   (oBrake,            NotFixed, uint32_t,     oBIT(oBrownYellow))

	SETTING   (oIgn,              NotFixed, uint32_t,     0)                                      // Включение зажигания
	SETTING   (oAuxIgn,           NotFixed, uint32_t,     0)                                      // Дополнительная линия зажигания
	SETTING   (oAcc,              NotFixed, uint32_t,     0)                                      // Аксессуары
	SETTING   (oCrank,            NotFixed, uint32_t,     0)                                      // Стартер



//--------- Check boxs -----------------------------------------------------------------//
	SETTING   (SSB,                   NotFixed,   bit_t,              1)
	SETTING   (DriveBuiltinSystem,    NotFixed,   bit_t,              1)      // управлять штатной системой автомобиля
	SETTING   (SlaveModeEnable,       NotFixed,   bit_t,              1)      // включить слейв
	SETTING   (SlaveDisarmWithTagOnly,NotFixed,   bit_t,              1)      // снятие с охраны по SLAVE-входу только при наличии телефона-метки, прерывание тревоги не запрещает
	SETTING   (SetReadyMode,          NotFixed,   uint8_t,            2)      // режим включения поддержки зажигания
	SETTING   (ClrReadyMode,          NotFixed,   uint8_t,            1)
	SETTING   (LightsArm,             NotFixed,   bit_t,              0)      // при включении охраны
	SETTING   (LightsDisarm,          NotFixed,   bit_t,              0)      // при выключении охраны

//--------- Последовательности --------------------
	SETTING   (seqProg6,          NotFixed, TSequence,   {qMS(100),6})
	SETTING   (seqProg8,             Fixed, TSequence,   {qMS(10),25})        // аварийка: импульс 250 мс
	SETTING   (seqProg9,             Fixed, TSequence,   {qMS(10),15})        // аварийка: импульс 150 мс

//--------- Переименование входов/выходов ---------
//	SETTING_NAME  (iEmergency,    "<Аварийная сигнализация>")
//	SETTING_NAME  (oEmergency,    "<Управление поворотниками через кнопку>")
//	SETTING_NAME  (oWireLock,     "<Запирание дверей при IgnOn>")
//	SETTING_NAME  (oWireUnlock,   "<Отпирание дверей при IgnOn>")

//************************** Настройки CAN-прошивки ***********************************************//

	SETTING_CAN (SET1,	NotFixed,	bit_t,			0,	"Настройка 1")
	SETTING_CAN (SET2,	NotFixed,	uint8_t,		0,	"Настройка 2|Вкл|Выкл")
	SETTING_CAN (SET3,	NotFixed,	uint8_t,		1,	"Настройка 3|Вкл|Выкл|He знаю")

#undef SETTING
#undef SETTING_RSRV
#undef SETTING_ALIAS
#undef SETTING_CAN

//************************** The End **************************************************************//



