368 lines
21 KiB
C
368 lines
21 KiB
C
/**
|
|
******************************************************************************
|
|
* @file screen.c
|
|
* @author AMG Energy Solution Team
|
|
* @version V1.0.0
|
|
* @date 07-Feb-2022
|
|
* @brief This file provides all the code of the string of debug console.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
|
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
|
*
|
|
* <h2><center>© COPYRIGHT 2022 AMG</center></h2>
|
|
******************************************************************************
|
|
*/
|
|
|
|
/** @addtogroup mBMS2
|
|
* @{
|
|
*/
|
|
|
|
#ifdef CONSOLE_DEBUG
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include <includes.h>
|
|
#include "delay.h"
|
|
#include "screen.h"
|
|
|
|
const char OPMODE_STR[][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
"\r\n+--[Battery : ]---+---+---+---+---+---+---+---+---+---+--------------------+", // 2
|
|
"\r\n| HeartB ( ) | B |OCA|TCA|TDA|AFE|RSV|ZVC|F-C|F-D| Warning ( )HEX|", // 3
|
|
"\r\n+---------------------+ S |INI|MD |FC |FD |RXM|ZVC|F-C|F-D| Protection( )HEX|", // 4
|
|
"\r\n| B-Volt ( . )V +---+---+---+---+---+---+---+---+---+-[CELL AVG ]--------+", // 5
|
|
"\r\n| Current ( . )A | W |RSV|RSV|RSV|L-C|LTD|LTC|HTD|HTC| C-MAX ( . )V |", // 6
|
|
"\r\n| SOC ( . )% | N |RSV|RSV|OCD|OCC|CUV|SUV|COV|SOV| C-AVG ( . )V |", // 7
|
|
"\r\n| SOH ( . )% +---+---+---+---+---+---+---+---+---+ C-MIN ( . )V |", // 8
|
|
"\r\n| CycleCnt ( )cycs| P |AFE|RSV|SC |RSV|LTD|LTC|HTD|HTC| C-DIFF ( . )V |", // 9
|
|
"\r\n+---------------------+ T |RSV|RSV|OCD|OCC|CUV|SUV|COV|SOV| CB AVG ( . )V |", // 0
|
|
"\r\n| F-Capa ( . )AH +---+---+---+---+---+---+---+---+---+ [ ] |", // 1
|
|
"\r\n+---------------------+ +-[TEMP AVG ]--------+", // 2
|
|
"\r\n| Operate( )| | T-MAX ( . )C |", // 3
|
|
"\r\n| Status ( )| | T-AVG ( . )C |", // 4
|
|
"\r\n| | | T-MIN ( . )C |", // 5
|
|
"\r\n+--[Cell Volt]--------+ M( )| T-DIFF ( . )C |", // 6
|
|
"\r\n|( . )( . )( . )+---------+---------+---------+-----+---+----------------+", // 7
|
|
"\r\n|( . )( . )( . )|T1( . )|T3( . )|T5( . )|F1( . )+-<INFORMATION>--+", // 8
|
|
"\r\n|( . )( . )( . )| | | | |DATE: / / |", // 9
|
|
"\r\n|( . )( . )( . )|T2( . )|T4( . )|T6( . )|F2( . )|TIME: : : |", // 0
|
|
"\r\n|( . )( . )( . )| | | | |L-REBOOT ( )|", // 1
|
|
"\r\n+---------------------+---------+---------+---------+---------+----------------+", // 2
|
|
"\r\n s : SETTING d : DIAGNOSTIC " // 3
|
|
};
|
|
|
|
void OmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", OPMODE_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char SETMODE_STR[22][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [SETTING] MODE",
|
|
"\r\n+--[PARMAMETER]---------+------------------------------------------------------+",
|
|
"\r\n| '1': Safety Config | |",
|
|
"\r\n| '2': Charge Control | |",
|
|
"\r\n| '3': SBS Config | |",
|
|
"\r\n| '4': Calibration | |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n+-----------------------+ |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| 't' TIME SET ( )|",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n+------------------------------------------------------------------------------+",
|
|
"\r\n 'o' : OPERATING 'd' : DIAGNOSTIC "
|
|
};
|
|
|
|
void SmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", SETMODE_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char DIAGMODE_STR[22][84] = {
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [DIAGNOSTIC] MODE",
|
|
"\r\n+------------------------------------------------------------------------------+",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n|----------------------------< CAN COMM MONITOR >----------------------------|",
|
|
"\r\n| '2' : CAN MSG MONITOR ( ) '3' : CAN DATA MONITOR ( ) |",
|
|
"\r\n|------------------------------------------------------------------------------|",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n|---------------------------------------------------+--[SYSTEM CONTROL]--------+",
|
|
"\r\n| | 'q': S/W Reset |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n+---------------------------------------------------+--------------------------+",
|
|
"\r\n o : OPERATING s: SETTING "
|
|
};
|
|
|
|
void DmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", DIAGMODE_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char CC_MODE_STR[][86] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [SOC SETTING] MODE",
|
|
"\r\n+--[SYSTEM]--------------------------------------------------------------------+",
|
|
"\r\n| |",
|
|
"\r\n+--------------------------------------+--[CURRENT]----------------------------+",
|
|
"\r\n| | CHARGE DISCHARGE |",
|
|
"\r\n| | 10ms : ( . )A ( . )A |",
|
|
"\r\n| | 1 S : ( . )A ( . )A |",
|
|
"\r\n| | 1 M : ( . )A ( . )A( )|",
|
|
"\r\n| | 1 H : ( . )A ( . )A |",
|
|
"\r\n| | Capacity ( )AH |",
|
|
"\r\n| | CHG Capacity ( )AH |",
|
|
"\r\n| | DCH Capacity ( )AH |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n| | LifeTime Capacity ( )AH |",
|
|
"\r\n| | LifeTime Cycles ( )cycs |",
|
|
"\r\n| |---------------------------------------|",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n| | |",
|
|
"\r\n+--------------------------------------+---------------------------------------+",
|
|
"\r\n 'o' : OPERATING 's' : SETTING 'd' : DIAGNOSTIC "
|
|
};
|
|
|
|
void CcModeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", CC_MODE_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char TASK_STS_MODE_STR[22][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [OS TASK STATUS] MODE",
|
|
"\r\n+------------------------------------------------------------------------------+",
|
|
"\r\n| uC/OS-III, The Real-Time Kernel |",
|
|
"\r\n| Modify by JKWoo In Amogreentech |",
|
|
"\r\n|------------------------------------------------------------------------------|",
|
|
"\r\n| Task TStack FStack UStack CPU Us Peak ExecTime (mS) |",
|
|
"\r\n|-------------- ------ ------ ------ ------ ------ ------------- |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n|------------------------------------------------------------------------------|",
|
|
"\r\n| #Mem Usage : % #CPU Usage: % #Task switch/sec: |",
|
|
"\r\n+------------------------------------------------------------------------------+",
|
|
"\r\n o : OPERATING s: SETTING "
|
|
};
|
|
|
|
void OSmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", TASK_STS_MODE_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char SF1_SET_STR[22][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [SAFETY] MODE",
|
|
"\r\n+--[1ST LEVEL SAFETY ]---------------------------------------------------------+",
|
|
"\r\n+-[VOLTAGE : '1' ]---------+-[TEMP : '3']------------+-[S VOLTAGE : '4']------+",
|
|
"\r\n| '1': COV Protect( )mV | '1': OT Chg Pro( . )C | '1': SOV Protect( )V |",
|
|
"\r\n| '2': COV Warning( )mV | '2': OT Chg War( . )C | '2': SOV Warning( )V |",
|
|
"\r\n| '3': COV Recover( )mV | '3': OT Chg Rec( . )C | '3': SOV Recover( )V |",
|
|
"\r\n|--------------------------|-------------------------|-------------------------|",
|
|
"\r\n| '4': CUV Protect( )mV | '4': OT Dsg Pro( . )C | '4': SUV Protect( )V |",
|
|
"\r\n| '5': CUV Warning( )mV | '5': OT Dsg War( . )C | '5': SUV Warning( )V |",
|
|
"\r\n| '6': CUV Recover( )mV | '6': OT Dsg Rec( . )C | '6': SUV Recover( )V |",
|
|
"\r\n+-[CURRENT : '2']----------+-------------------------+-[SOC : '5']------+",
|
|
"\r\n| '1': OC Chg Pro( )A | '7': LT Chg Pro( . )C | '1': Low SOC Warn( )% |",
|
|
"\r\n| '2': OC Chg War( )A | '8': LT Chg War( . )C | '2': Low SOC Reco( )% |",
|
|
"\r\n| '3': OC Chg Rec( )A | '9': LT Chg Rec( . )C +-[CELL DIFF : '6']------+",
|
|
"\r\n| '4': OC Chg Time ( )S |-------------------------| '1': CVD Protect( )mV|",
|
|
"\r\n|--------------------------| 'a': LT Dsg Pro( . )C | '2': CVD Warning( )mV|",
|
|
"\r\n| '5': OC Dsg Pro( )A | 'b': LT Dsg War( . )C | '3': CVD Recover( )mV|",
|
|
"\r\n| '6': OC Dsg War( )A | 'c': LT Dsg Rec( . )C +-[Thermistor : '7']------+",
|
|
"\r\n| '7': OC Dsg Rec( )A +-------------------------+ '1': Therm Open( . )C |",
|
|
"\r\n| '8;: OC Dsg Time ( )S | | '2': Therm Reco( . )C |",
|
|
"\r\n+--------------------------+-------------------------+-------------------------+",
|
|
"\r\n 'o' : OPERATING 'd' : DIAGNOSTIC "
|
|
};
|
|
|
|
void SF1modeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", SF1_SET_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char CHG_SET_STR[22][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [CHARGE CONTROL] MODE",
|
|
"\r\n+-[CHG CFG : '1']-----+-[Balance Cfg : '4']-----+------------------------+",
|
|
"\r\n| '1': ST Chg V ( )mV | '1': C-Bal Thr ( )mV | |",
|
|
"\r\n| '2': ST Chg C ( )A | '2': C-Bal Win ( )mV | |",
|
|
"\r\n+-[CB Limit : '2']--------+ '3': C-Bal Min ( )mV | |",
|
|
"\r\n| '1': CB Lmt-V ( )mV | '4': C-Bal Int ( )S | |",
|
|
"\r\n| +-[Current Cfg : '5']-----+ |",
|
|
"\r\n| | '1': D-D Thr ( )mA | |",
|
|
"\r\n| | '2': C-D Thr ( )mA | |",
|
|
"\r\n+-[Term Cfg : '3']-----| '3': Quit Cur ( )mA | |",
|
|
"\r\n| '1': Tap Curr ( )mA | '4': Dsg R-T ( )S | |",
|
|
"\r\n| '2': Tap Volt ( )mV | '5': Chg R-T ( )S | |",
|
|
"\r\n| '3': C-Tap Win ( )S +--------------------------+ |",
|
|
"\r\n| '4': FC Set ( )% | | |",
|
|
"\r\n| '5': FC Clear ( )% | | |",
|
|
"\r\n| '6': FD Set ( )% | | |",
|
|
"\r\n| '7': FD Clear ( )% | | |",
|
|
"\r\n+--------------------------+ | |",
|
|
"\r\n| | | |",
|
|
"\r\n| | | |",
|
|
"\r\n+--------------------------+--------------------------+------------------------+",
|
|
"\r\n 'o' : OPERATING 'd' : DIAGNOSTIC "
|
|
};
|
|
|
|
void ChgCtrlCfgmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", CHG_SET_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char SBS_SET_STR[22][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [SBS Configuration] MODE",
|
|
"\r\n+-[Data : '1']-------------+---------------------------------------------------+",
|
|
"\r\n| '1': Init B-Mode( )Hex| |",
|
|
"\r\n| '2': D-Volt ( )mV | |",
|
|
"\r\n| '3': Spec Info ( )Hex| |",
|
|
"\r\n| '4': M-Date ( )Hex| |",
|
|
"\r\n| '5': Ser.Noum. ( )Hex| |",
|
|
"\r\n| '6': Cycle Cnt ( )Cnt| |",
|
|
"\r\n| '7': CC Thr ( )mAh| |",
|
|
"\r\n| '8': D-Capa ( )Ah | |",
|
|
"\r\n| '9': D-Energy( )Wh | |",
|
|
"\r\n| 'a': F-Chg-Cap( )Ah | |",
|
|
"\r\n+--------------------------+ |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n| |",
|
|
"\r\n+------------------------------------------------------------------------------+",
|
|
"\r\n 'o' : OPERATING 'd' : DIAGNOSTIC "
|
|
};
|
|
|
|
void SBSmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", SBS_SET_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
const char CAL_SET_STR[22][84] =
|
|
{
|
|
// 1 2 3 4 5 6 7 8
|
|
// 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
" mBMS [Calibration] MODE",
|
|
"\r\n+-[Voltage : '1']--------+-[Internal Power '6']-----+-[Real Value]-----------+",
|
|
"\r\n| '1': Cell Sc 0 ( ) | '1': INT PWR ( )mA | CHG CURR ( )V |",
|
|
"\r\n| '2': Cell Sc 1 ( ) | '2': RLY PWR ( )mA | DCH CURR ( )V |",
|
|
"\r\n| '3': BatV Gain ( ) +--------------------------+ |",
|
|
"\r\n| '4': BatV Offes( ) | | |",
|
|
"\r\n+-[Discharge Current '2']--+ +------------------------+",
|
|
"\r\n| '1': DC Gain ( ) | | 'K': Init Zero Current |",
|
|
"\r\n| '2': DC Offset( ) | | '8': DCH Current Set |",
|
|
"\r\n+-[Charge Current '3']--+ | (ex: 8 100.0 + enter)|",
|
|
"\r\n| '1': CC1 Gain ( ) | | '9': CHG Current Set |",
|
|
"\r\n| '2': CC1 Offse( ) | | (ex: 9 50.0 + enter) |",
|
|
"\r\n|--------------------------| | |",
|
|
"\r\n| '3': CC2 Gain ( ) | | |",
|
|
"\r\n| '4': CC2 Offse( ) | | |",
|
|
"\r\n+--------------------------+ | |",
|
|
"\r\n| | | |",
|
|
"\r\n| | | |",
|
|
"\r\n| | +------------------------+",
|
|
"\r\n| | | INIT CODE: ( ) |",
|
|
"\r\n+--------------------------+--------------------------+------------------------+",
|
|
"\r\n 'o' : OPERATING 'd' : DIAGNOSTIC "
|
|
};
|
|
|
|
void CalmodeScreen(void)
|
|
{
|
|
for (int i = 0; i < 22; i++)
|
|
{
|
|
printf("%s", CAL_SET_STR[i]);
|
|
delay_os_ms(SCREEN_LINE_DELAY);
|
|
}
|
|
}
|
|
|
|
#endif //CONSOLE_DEBUG
|
|
|
|
/*******************(C)COPYRIGHT 2022 AMG ********************END OF FILE******/
|