| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #ifndef __VERSION_H_
- #define __VERSION_H_
- /**
- * @file version.h
- * @brief 版本号管理头文件
- * @author Auto-generated
- * @date 2026-03-28
- */
- // 软件版本号
- #define SOFTWARE_VERSION_MAJOR 0
- #define SOFTWARE_VERSION_MINOR 1
- #define SOFTWARE_VERSION_PATCH 0
- #define SOFTWARE_VERSION_STRING "0.1.0"
- // 硬件版本号
- #define HARDWARE_VERSION_MAJOR 0
- #define HARDWARE_VERSION_MINOR 1
- #define HARDWARE_VERSION_PATCH 0
- #define HARDWARE_VERSION_STRING "0.1.0"
- // 编译时间相关字段
- #define BUILD_DATE __DATE__
- #define BUILD_TIME __TIME__
- #define BUILD_YEAR (__DATE__[7] == ' ' ? 0 : ((__DATE__[7] - '0') * 1000 + (__DATE__[8] - '0') * 100 + (__DATE__[9] - '0') * 10 + (__DATE__[10] - '0')))
- #define BUILD_MONTH ((__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n') ? 1 : \
- (__DATE__[0] == 'F') ? 2 : \
- (__DATE__[0] == 'M' && __DATE__[2] == 'r') ? 3 : \
- (__DATE__[0] == 'A' && __DATE__[1] == 'p') ? 4 : \
- (__DATE__[0] == 'M' && __DATE__[2] == 'y') ? 5 : \
- (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n') ? 6 : \
- (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l') ? 7 : \
- (__DATE__[0] == 'A' && __DATE__[1] == 'u') ? 8 : \
- (__DATE__[0] == 'S') ? 9 : \
- (__DATE__[0] == 'O') ? 10 : \
- (__DATE__[0] == 'N') ? 11 : 12)
- #define BUILD_DAY ((__DATE__[4] == ' ' ? 0 : (__DATE__[4] - '0') * 10) + (__DATE__[5] - '0'))
- #define BUILD_HOUR (((__TIME__[0] - '0') * 10) + (__TIME__[1] - '0'))
- #define BUILD_MINUTE (((__TIME__[3] - '0') * 10) + (__TIME__[4] - '0'))
- #define BUILD_SECOND (((__TIME__[6] - '0') * 10) + (__TIME__[7] - '0'))
- // 版本信息结构体
- typedef struct {
- uint8_t software_major;
- uint8_t software_minor;
- uint8_t software_patch;
- uint8_t hardware_major;
- uint8_t hardware_minor;
- uint8_t hardware_patch;
- char software_version[10];
- char hardware_version[10];
- char build_date[12];
- char build_time[9];
- } VersionInfo;
- // 获取版本信息
- #define GET_VERSION_INFO(info) do {
- (info)->software_major = SOFTWARE_VERSION_MAJOR;
- (info)->software_minor = SOFTWARE_VERSION_MINOR;
- (info)->software_patch = SOFTWARE_VERSION_PATCH;
- (info)->hardware_major = HARDWARE_VERSION_MAJOR;
- (info)->hardware_minor = HARDWARE_VERSION_MINOR;
- (info)->hardware_patch = HARDWARE_VERSION_PATCH;
- strcpy((info)->software_version, SOFTWARE_VERSION_STRING);
- strcpy((info)->hardware_version, HARDWARE_VERSION_STRING);
- strcpy((info)->build_date, BUILD_DATE);
- strcpy((info)->build_time, BUILD_TIME);
- } while(0)
- #endif /* __VERSION_H_ */
|