197 lines
5.0 KiB
C
197 lines
5.0 KiB
C
|
/*
|
|||
|
* alarm_log.c
|
|||
|
*
|
|||
|
* Created on: 11 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>. 2024 <EFBFBD>.
|
|||
|
* Author: yura
|
|||
|
*/
|
|||
|
|
|||
|
#include "edrk_main.h"
|
|||
|
#include "alarm_log_can.h"
|
|||
|
#include "alarm_log.h"
|
|||
|
#include "log_params.h"
|
|||
|
#include "logs_hmi.h"
|
|||
|
#include "global_time.h"
|
|||
|
|
|||
|
|
|||
|
#define PAUSE_AUTO_SAVE_ALARM_LOG_SECONDS 20 // 20 sec
|
|||
|
#define PAUSE_AUTO_STOP_ALARM_LOG_SECONDS 5 // 5 sec
|
|||
|
|
|||
|
void send_alarm_log_pult(void)
|
|||
|
{
|
|||
|
static int prev_imit_send_alarm_log_pult = 0;
|
|||
|
int to_store = 0;
|
|||
|
|
|||
|
static int flag_wait_alarm = 0, prev_Ready2 = 0, flag_store_log = 0, flag_store_log_prepare = 0, flag_auto_logs = 0, flag_stop_alarm = 0;
|
|||
|
|
|||
|
static unsigned int pause_store_logs = 0, pause_stop_logs = 0;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (edrk.imit_send_alarm_log_pult && prev_imit_send_alarm_log_pult == 0)
|
|||
|
flag_store_log = 1;
|
|||
|
prev_imit_send_alarm_log_pult = edrk.imit_send_alarm_log_pult;
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (prev_Ready2==0 && edrk.Status_Ready.bits.ready_final)
|
|||
|
{
|
|||
|
flag_wait_alarm = 1;
|
|||
|
flag_stop_alarm = 0;
|
|||
|
}
|
|||
|
|
|||
|
if (prev_Ready2==1 && edrk.Status_Ready.bits.ready_final==0)
|
|||
|
{
|
|||
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
init_timer_sec(&pause_stop_logs);
|
|||
|
|
|||
|
flag_stop_alarm = 1;
|
|||
|
}
|
|||
|
prev_Ready2 = edrk.Status_Ready.bits.ready_final;
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (flag_wait_alarm && edrk.summ_errors)
|
|||
|
{
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
flag_store_log_prepare = 1;
|
|||
|
flag_wait_alarm = 0;
|
|||
|
flag_stop_alarm = 0;
|
|||
|
init_timer_sec(&pause_store_logs);
|
|||
|
}
|
|||
|
|
|||
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
// if (flag_stop_alarm)
|
|||
|
// {
|
|||
|
//
|
|||
|
//
|
|||
|
// }
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (flag_stop_alarm && detect_pause_sec(PAUSE_AUTO_STOP_ALARM_LOG_SECONDS, &pause_stop_logs))
|
|||
|
{
|
|||
|
flag_stop_alarm = 0;
|
|||
|
flag_wait_alarm = 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (flag_store_log_prepare)
|
|||
|
{
|
|||
|
flag_auto_logs = detect_pause_sec(PAUSE_AUTO_SAVE_ALARM_LOG_SECONDS, &pause_store_logs);
|
|||
|
}
|
|||
|
|
|||
|
if (flag_auto_logs)
|
|||
|
{
|
|||
|
flag_store_log_prepare = 0;
|
|||
|
flag_auto_logs = 0;
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
flag_store_log = 1;
|
|||
|
|
|||
|
flag_wait_alarm = 0;
|
|||
|
flag_stop_alarm = 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (flag_store_log)
|
|||
|
{
|
|||
|
|
|||
|
if (edrk.pult_cmd.log_what_memory >= 2)
|
|||
|
to_store = 2;
|
|||
|
else
|
|||
|
if (edrk.pult_cmd.log_what_memory >= 1)
|
|||
|
to_store = 1;
|
|||
|
else
|
|||
|
to_store = 0;
|
|||
|
|
|||
|
log_to_HMI.sdusb = to_store;
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if (log_to_HMI.sdusb)
|
|||
|
{
|
|||
|
log_to_HMI.send_log = 3;
|
|||
|
}
|
|||
|
|
|||
|
flag_store_log = 0;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void test_send_alarm_log(int alarm_cmd)
|
|||
|
{
|
|||
|
static unsigned int points_alarm_log = 1000;
|
|||
|
// static unsigned int nchannel_alarm_log = 30;
|
|||
|
static int prev_alarm_cmd = 0;
|
|||
|
static int local_alarm_cmd = 0;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if (alarm_cmd && prev_alarm_cmd==0 && alarm_log_can.stage==0)
|
|||
|
{
|
|||
|
// i_led2_on();
|
|||
|
|
|||
|
alarm_log_can.post_points = COUNT_SAVE_LOG_OFF;//100; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
alarm_log_can.oscills = log_params.BlockSizeErr;//nchannel_alarm_log; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
alarm_log_can.global_enable = 1;
|
|||
|
|
|||
|
alarm_log_can.start_adr_temp = (int *)0xc0000; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
|||
|
// alarm_log_can.finish_adr_temp = (int *)0xa0000; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
|||
|
alarm_log_can.start_adr_real_logs = (int *)log_params.start_address_log;//(int *)START_ADDRESS_LOG; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
alarm_log_can.finish_adr_real_log = (int *)log_params.end_address_log;//(int *)logpar.; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
alarm_log_can.current_adr_real_log = (int *)log_params.addres_mem;
|
|||
|
|
|||
|
|
|||
|
alarm_log_can.temp_points = points_alarm_log; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
// alarm_log_can.real_points = 1000; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.
|
|||
|
|
|||
|
alarm_log_can.step = 450; // mks
|
|||
|
local_alarm_cmd = alarm_cmd;
|
|||
|
// alarm_log_can.status_alarm = alarm_cmd;//cmd_alarm_log; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
alarm_log_can.start = 0x1;
|
|||
|
alarm_log_can.stop = 0x1;
|
|||
|
alarm_log_can.copy2temp = 0x1;
|
|||
|
|
|||
|
|
|||
|
alarm_log_can.clear(&alarm_log_can);
|
|||
|
// alarm_log_can.send(&alarm_log_can);
|
|||
|
|
|||
|
// i_led2_off();
|
|||
|
}
|
|||
|
else
|
|||
|
local_alarm_cmd = 0;
|
|||
|
|
|||
|
alarm_log_can.status_alarm = local_alarm_cmd;//cmd_alarm_log; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
alarm_log_can.send(&alarm_log_can);
|
|||
|
|
|||
|
if (alarm_log_can.stage)
|
|||
|
{
|
|||
|
// i_led2_on_off(1);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// i_led2_on_off(0);
|
|||
|
}
|
|||
|
|
|||
|
prev_alarm_cmd = alarm_cmd;
|
|||
|
|
|||
|
}
|
|||
|
////////////////////////////////////////////////////////////
|