.. _program_listing_file_mainboard_Inc_bal_fsm.h: Program Listing for File bal_fsm.h ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``mainboard/Inc/bal_fsm.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef BAL_FSM_H #define BAL_FSM_H #include "bal.h" #include "fsm.h" enum { BAL_OFF, BAL_COMPUTE, BAL_DISCHARGE, BAL_COOLDOWN, BAL_NUM_STATES }; enum { EV_BAL_STOP, EV_BAL_START, EV_BAL_CHECK_TIMER, BAL_EV_NUM }; typedef struct { fsm fsm; uint16_t cells[PACK_CELL_COUNT]; uint32_t discharge_time; uint32_t cycle_length; } bal_fsm; extern bal_fsm bal; uint16_t bal_get_threshold(); void bal_set_threshold(uint16_t thresh); void bal_fsm_init(); #endif