/*
 * AMS_HighLevel.h
 *
 *  Created on: 20.07.2022
 *      Author: max
 */

#ifndef INC_AMS_HIGHLEVEL_H_
#define INC_AMS_HIGHLEVEL_H_

#include "ADBMS_Abstraction.h"
#include "ADBMS_CMD_MAKROS.h"
#include "ADBMS_LL_Driver.h"
#include "config_ADBMS6830.h"

#include <stdbool.h>

typedef enum {
  AMSDEACTIVE,
  AMSIDLE,
  AMSCHARGING,
  AMSIDLEBALANCING,
  AMSDISCHARGING,
  AMSWARNING,
  AMSERROR
} amsState;

extern amsState currentAMSState;
extern Cell_Module modules[N_BMS];
extern uint32_t balancedCells;
extern bool BalancingActive;

#endif /* INC_AMS_HIGHLEVEL_H_ */
