/** ****************************************************************************** * @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. * *

© COPYRIGHT 2022 AMG

****************************************************************************** */ /** @addtogroup mBMS3 * @{ */ /* Includes ------------------------------------------------------------------*/ #include #include #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******/