136 lines
4.0 KiB
C
136 lines
4.0 KiB
C
/**
|
|
******************************************************************************
|
|
* @file app_ver.c
|
|
* @author AMG Energy Solution Team
|
|
* @version V1.0.0
|
|
* @date 07-Feb-2022
|
|
* @brief This file provides all the code of the application version.
|
|
******************************************************************************
|
|
* @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 mBMS3
|
|
* @{
|
|
*/
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include <includes.h>
|
|
#include <string.h>
|
|
#include "app_ver.h"
|
|
|
|
/* Private typedef -----------------------------------------------------------*/
|
|
/* Private define ------------------------------------------------------------*/
|
|
#define APP_VER_CRITICAL 4
|
|
#define APP_VER_MAJOR 0
|
|
#define APP_VER_MINOR 0
|
|
#define APP_VER_COMPILE 1
|
|
/* Private macro -------------------------------------------------------------*/
|
|
/* Private variables ---------------------------------------------------------*/
|
|
/* Private prototype functions -----------------------------------------------*/
|
|
/* Private functions ---------------------------------------------------------*/
|
|
|
|
void GetAppVersion(uint8_t *ver)
|
|
{
|
|
ver[0] = APP_VER_CRITICAL;
|
|
ver[1] = APP_VER_MAJOR;
|
|
ver[2] = APP_VER_MINOR;
|
|
ver[3] = APP_VER_COMPILE;
|
|
}
|
|
|
|
void GetAppSecretId(uint8_t *secret)
|
|
{
|
|
secret[0] = DEV_SECRET_SIG; // 0x57 ('W')
|
|
secret[1] = DEV_HW_TYPE; // 0x33 (V3)
|
|
secret[2] = DEV_BUILD_REV; // 0x01 (R401)
|
|
}
|
|
|
|
#ifdef CONSOLE_DEBUG
|
|
|
|
void APPVerDisplay(void)
|
|
{
|
|
uint8_t ver[4];
|
|
|
|
GetAppVersion(ver);
|
|
|
|
printf(" %s [OPERATING] VER %d.%d.%d.%d (%s, R401-JKW) [%s %s]",
|
|
BD_MODEL,
|
|
ver[0],
|
|
ver[1],
|
|
ver[2],
|
|
ver[3],
|
|
DEV_HW_STRING,
|
|
__DATE__,
|
|
__TIME__
|
|
);
|
|
}
|
|
|
|
uint16_t GetAppVersionStr(uint8_t *vStr)
|
|
{
|
|
sprintf((char *)vStr, "%d.%d.%d.%d (%s)",
|
|
APP_VER_CRITICAL,
|
|
APP_VER_MAJOR,
|
|
APP_VER_MINOR,
|
|
APP_VER_COMPILE,
|
|
DEV_HW_STRING
|
|
);
|
|
return strlen((char *)vStr);
|
|
}
|
|
|
|
void GET_BUILD_DATETIME(uint8_t *datetime)
|
|
{
|
|
uint8_t date_str[12];
|
|
uint8_t time_str[12];
|
|
|
|
sprintf((char *)date_str, "%s", __DATE__);
|
|
sprintf((char *)time_str, "%s", __TIME__);
|
|
|
|
memcpy(&datetime[0], &date_str[7], 4); //year
|
|
|
|
if (memcmp(&date_str[0], "Jan", 3) == 0) //month
|
|
memcpy(&datetime[4], "01", 2);
|
|
else if (memcmp(&date_str[0], "Feb", 3) == 0)
|
|
memcpy(&datetime[4], "02", 2);
|
|
else if (memcmp(&date_str[0], "Mar", 3) == 0)
|
|
memcpy(&datetime[4], "03", 2);
|
|
else if (memcmp(&date_str[0], "Apr", 3) == 0)
|
|
memcpy(&datetime[4], "04", 2);
|
|
else if (memcmp(&date_str[0], "May", 3) == 0)
|
|
memcpy(&datetime[4], "05", 2);
|
|
else if (memcmp(&date_str[0], "Jun", 3) == 0)
|
|
memcpy(&datetime[4], "06", 2);
|
|
else if (memcmp(&date_str[0], "Jul", 3) == 0)
|
|
memcpy(&datetime[4], "07", 2);
|
|
else if (memcmp(&date_str[0], "Aug", 3) == 0)
|
|
memcpy(&datetime[4], "08", 2);
|
|
else if (memcmp(&date_str[0], "Sep", 3) == 0)
|
|
memcpy(&datetime[4], "09", 2);
|
|
else if (memcmp(&date_str[0], "Oct", 3) == 0)
|
|
memcpy(&datetime[4], "10", 2);
|
|
else if (memcmp(&date_str[0], "Nov", 3) == 0)
|
|
memcpy(&datetime[4], "11", 2);
|
|
else if (memcmp(&date_str[0], "Dec", 3) == 0)
|
|
memcpy(&datetime[4], "12", 2);
|
|
|
|
memcpy(&datetime[6], &date_str[4], 2); //date
|
|
if (datetime[6] == ' ')
|
|
datetime[6] = '0';
|
|
|
|
memcpy(&datetime[ 8], &time_str[0], 2); //hour
|
|
memcpy(&datetime[10], &time_str[3], 2); //min
|
|
memcpy(&datetime[12], &time_str[6], 2); //sec
|
|
}
|
|
|
|
#endif // #ifdef CONSOLE_DEBUG
|
|
|
|
/*******************(C)COPYRIGHT 2022 AMG ********************END OF FILE******/
|