LCM — CH32V003 Light Control Module
Light Control Module, I2C slave
Loading...
Searching...
No Matches
event_log.h
Go to the documentation of this file.
1/********************************** (C) COPYRIGHT *******************************
2 * File Name : event_log.h
3 * Description : Подробное логирование событий LCM на USART1 (PD6, 115200 8N1).
4 *********************************************************************************/
5
6#ifndef __EVENT_LOG_H
7#define __EVENT_LOG_H
8
9#include <stdint.h>
10#include "user_data.h"
11
12/* 1 — логирование включено; 0 — все вызовы EventLog_* не делают вывода */
13#ifndef EVENT_LOG_ENABLE
14#define EVENT_LOG_ENABLE 1
15#endif
16
17/*********************************************************************
18 * @fn EventLog_Init
19 *
20 * @brief Инициализация USART1: TX = PD6 (PartialRemap2), 115200 8N1.
21 */
22void EventLog_Init(void);
23
24/*********************************************************************
25 * @fn EventLog_Process
26 *
27 * @brief Вывести на UART события из кольцевого буфера (вызывать из main).
28 */
29void EventLog_Process(void);
30
31/*********************************************************************
32 * @fn EventLog_Printf
33 *
34 * @brief Немедленный вывод строки (только из main, не из ISR).
35 */
36void EventLog_Printf(const char *fmt, ...);
37
38/*********************************************************************
39 * @fn EventLog_BootBanner
40 *
41 * @brief Стартовый баннер прошивки.
42 */
43void EventLog_BootBanner(void);
44
45/*********************************************************************
46 * @fn EventLog_UserDataInit
47 *
48 * @brief Результат UserData_Init().
49 */
51
52/*********************************************************************
53 * @fn EventLog_LcmConfig
54 *
55 * @brief Конфигурация LCM после загрузки NVM.
56 */
57void EventLog_LcmConfig(uint8_t i2c_addr, const uint8_t group_mask[4], uint8_t relay_state);
58
59/*********************************************************************
60 * @fn EventLog_PushI2cCmd
61 *
62 * @brief Поставить в очередь событие I2C-команды (безопасно из ISR).
63 */
64void EventLog_PushI2cCmd(uint8_t cmd, uint8_t param, uint8_t has_param);
65
66/*********************************************************************
67 * @fn EventLog_PushI2cReadArm
68 *
69 * @brief Команда чтения (arm READ): status/error/id.
70 */
71void EventLog_PushI2cReadArm(uint8_t cmd);
72
73/*********************************************************************
74 * @fn EventLog_PushLcmError
75 *
76 * @brief Код ошибки LCM (LCM_ERR_*, включая ошибки шины I2C BERR/OVR/ARLO).
77 */
78void EventLog_PushLcmError(uint8_t lcm_err_code);
79
80/*********************************************************************
81 * @fn EventLog_PushNvm
82 *
83 * @brief Событие NVM: источник операции (tag) + её результат (status).
84 *
85 * @param tag — 1: запись в RAM-кэш user_data (LCM_NvmWriteConfig/
86 * LCM_LoadConfig); 2: UserData_Commit() (сама
87 * запись во flash); 3: сброс кэша к заводским
88 * значениям (LCM_RESET). Иные значения допустимы,
89 * но печатаются как generic "tag=N" — см.
90 * EventLog_FormatRecord() в event_log.c.
91 * @param status — UserData_Status (обычно USER_DATA_OK).
92 */
93void EventLog_PushNvm(uint8_t tag, uint8_t status);
94
95/*********************************************************************
96 * @fn EventLog_PushSystem
97 *
98 * @brief Системное событие (reset, watchdog, factory_reset).
99 *
100 * @param tag — 1: запрошена программная перезагрузка (перед
101 * NVIC_SystemReset()); 2: IWDG успешно взведён при
102 * старте (~2 с). Иные значения печатаются как
103 * generic "tag=N".
104 */
105void EventLog_PushSystem(uint8_t tag);
106
107#endif /* __EVENT_LOG_H */
void EventLog_PushI2cReadArm(uint8_t cmd)
Definition event_log.c:430
void EventLog_Process(void)
Definition event_log.c:356
void EventLog_PushNvm(uint8_t tag, uint8_t status)
Definition event_log.c:440
void EventLog_PushSystem(uint8_t tag)
Definition event_log.c:445
void EventLog_UserDataInit(UserData_Status st)
Definition event_log.c:404
void EventLog_BootBanner(void)
Definition event_log.c:396
void EventLog_LcmConfig(uint8_t i2c_addr, const uint8_t group_mask[4], uint8_t relay_state)
Definition event_log.c:414
void EventLog_PushI2cCmd(uint8_t cmd, uint8_t param, uint8_t has_param)
Definition event_log.c:425
void EventLog_Printf(const char *fmt,...)
Definition event_log.c:381
void EventLog_PushLcmError(uint8_t lcm_err_code)
Definition event_log.c:435
void EventLog_Init(void)
Definition event_log.c:335
UserData_Status
Definition user_data.h:44