TestSubmodule/LOCAL/Inc/Indication.h

53 lines
1.1 KiB
C

//
// Created by villuton on 01.09.2025.
//
#ifndef CHARGER_INDICATION_H
#define CHARGER_INDICATION_H
#include "ChargerConfig.h"
#include "Gpios.h"
#include "cmsis_os2.h"
#include "FreeRTOS.h"
///Перечисление режимов индикации
typedef enum {
MOD_CH_STARTUP = 0,
MOD_CH_ERROR,
MOD_CH_OK,
MOD_CH_CHARGE,
} eIndicationMod;
typedef struct {
uint32_t timer;
uint32_t timeOn;
uint32_t timeOff;
bool pinFlag;
bool isPermanent;
} tMod;
typedef struct {
tMod mod[INDICATION_MOD_NUM];
uint32_t iterationMs;
tLedPins *ledPins;
uint8_t chanel[INDICATION_CHANEL_NUM];
struct {
osThreadId_t id;
uint32_t stack[128];
StaticTask_t controlBlock;
osThreadAttr_t attr;
} thread;
} tIndication;
void Indication_Init(tIndication *env,
tLedPins *ledPins);
void Indication_StartThread(tIndication *env);
void Indication_ChanelSetMode(tIndication *env,
eIndicationMod indicationMod,
eChargerChannels channel);
#endif //CHARGER_INDICATION_H