#include "source/SourcePath.h"
#include SRC_HEADER

// функции-пустышки

// инициализирует ОЗУ, вызывается при старте контроллера
__attribute__((weak)) void Init (TCanFwMem * vars) { }

// Вызывается при изменении настроек (на каждую настройку)
__attribute__((weak)) void SettingChanged (TCanFwMem * vars, uint16_t id) { }

// принимает и обрабатывает пакет из CAN
__attribute__((weak)) void Can1Received (TCanFwMem * vars, TCanPkt *apPkt) { }
__attribute__((weak)) void Can2Received (TCanFwMem * vars, TCanPkt *apPkt) { }

// обрабатывает события изменения входов-выходов
__attribute__((weak)) void InputChanged  (TCanFwMem * vars, uint32_t aInputNum, bool aSwitchedOn) { }
__attribute__((weak)) void OutputChanged (TCanFwMem * vars, uint32_t aOutputNum, bool aSwitchedOn) { }
__attribute__((weak)) void GuardEvent (TCanFwMem * vars, TGuardEvents aEvent) { }

// события начала и конца последовательностей
__attribute__((weak)) void SequenceStart (TCanFwMem * vars, uint32_t aEvent) { }
__attribute__((weak)) void SequenceStop (TCanFwMem * vars, uint32_t aEvent) { }

// команда от ядра
__attribute__((weak)) void Command (TCanFwMem * vars, TCanFwCommands aCmd, uint32_t aCmdParam) { }

// вызывается по таймауту
__attribute__((weak)) void PeriodicProcess (TCanFwMem * vars) { }

// LIN
__attribute__((weak)) void Lin1Received (TCanFwMem * vars, TLinFrame *apFrame) { }
__attribute__((weak)) void Lin2Received (TCanFwMem * vars, TLinFrame *apFrame) { }
__attribute__((weak)) void Lin1Transmitted (TCanFwMem * vars, uint8_t aFrameId) { }
__attribute__((weak)) void Lin2Transmitted (TCanFwMem * vars, uint8_t aFrameId) { }
// Mobicar3 LIN
__attribute__((weak)) void Lin3Received (TCanFwMem * vars, TLinFrame *apFrame) { }
__attribute__((weak)) void Lin3Transmitted (TCanFwMem * vars, uint8_t aFrameId) { }


