fix:修改UDP通讯中,取电变化上报机制
1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。 2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
866
BasicCode/Drive/Logging/Log_api.c
Normal file
866
BasicCode/Drive/Logging/Log_api.c
Normal file
@@ -0,0 +1,866 @@
|
||||
/***********************************<2A><><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD> - <20>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>***************************************/
|
||||
#include "rw_logging.h"
|
||||
#include "SPI_SRAM.h"
|
||||
#include "Log_api.h"
|
||||
#include "string.h"
|
||||
#include "BLV_485_Protocol.h"
|
||||
#include "flash.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
uint32_t SYS_Log_Switch = (LogType_Launcher_SWITCH << LogType_Launcher_bit) + \
|
||||
(LogType_SYS_Record_SWITCH << LogType_SYS_Record_bit) + \
|
||||
(LogType_Device_COMM_SWITCH << LogType_Device_COMM_bit) + \
|
||||
(LogType_Device_Online_SWITCH << LogType_Device_Online_bit) + \
|
||||
(LogType_Global_Parameters_SWITCH << LogType_Global_Parameters_bit) + \
|
||||
(LogType_Net_COMM_SWITCH << LogType_Net_COMM_bit) + \
|
||||
(LogType_Logic_Record_SWITCH << LogType_Logic_Record_bit);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Launcher_APP_Check_Record
|
||||
* Description : Launcher<65><72><EFBFBD><EFBFBD> - У<><D0A3>APP
|
||||
* Input :
|
||||
state :״̬
|
||||
0x00:<3A><>ͬ
|
||||
0x01:<3A><>ͬ
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Launcher_APP_Check_Record(uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Launcher_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[3] = {0};
|
||||
|
||||
temp_buff[0] = LLauncher_App_Check;
|
||||
temp_buff[1] = state;
|
||||
|
||||
Log_write_sram(LogType_Launcher,temp_buff,2);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Launcher_APP_Check_Record
|
||||
* Description : Launcher<65><72><EFBFBD><EFBFBD> - У<><D0A3>APP
|
||||
* Input :
|
||||
state :״̬
|
||||
0x00:<3A>ɹ<EFBFBD>
|
||||
0x01:ʧ<><CAA7>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Launcher_Read_App_Record(uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Launcher_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[3] = {0};
|
||||
|
||||
temp_buff[0] = LLauncher_Read_App;
|
||||
temp_buff[1] = state;
|
||||
|
||||
Log_write_sram(LogType_Launcher,temp_buff,2);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Launcher_Write_Flash_Record
|
||||
* Description : Launcher<65><72><EFBFBD><EFBFBD> - Flashд<68><D0B4>
|
||||
* Input :
|
||||
addr :д<><D0B4><EFBFBD><EFBFBD>ַ
|
||||
len :д<>볤<EFBFBD><EBB3A4>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Launcher_Write_Flash_Record(uint32_t addr,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Launcher_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[7] = {0};
|
||||
|
||||
temp_buff[0] = LLauncher_Write_Flash;
|
||||
temp_buff[1] = addr & 0xFF;
|
||||
temp_buff[2] = (addr >> 8) & 0xFF;
|
||||
temp_buff[3] = (addr >> 16) & 0xFF;
|
||||
temp_buff[4] = (addr >> 24) & 0xFF;
|
||||
temp_buff[5] = len & 0xFF;
|
||||
temp_buff[6] = (len >> 8) & 0xFF;
|
||||
|
||||
Log_write_sram(LogType_Launcher,temp_buff,7);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Launcher_Factory_Reset_Record
|
||||
* Description : Launcher<65><72><EFBFBD><EFBFBD> - <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Input :
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Launcher_Factory_Reset_Record(void)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Launcher_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[3] = {0};
|
||||
|
||||
temp_buff[0] = LLauncher_Factory_Reset;
|
||||
temp_buff[1] = 0x00;
|
||||
|
||||
Log_write_sram(LogType_Launcher,temp_buff,2);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_PHY_Change_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - PHY״̬<D7B4><CCAC>¼
|
||||
* Input :
|
||||
state :״̬
|
||||
0x00:<3A>γ<EFBFBD>
|
||||
0x01:<3A><><EFBFBD><EFBFBD>
|
||||
0x02:TCP<43><50>ʱ
|
||||
0x03:TCP<43>Ͽ<EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_PHY_Change_Record(uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[3] = {0};
|
||||
|
||||
temp_buff[0] = LSYS_PHY_Change;
|
||||
temp_buff[1] = state;
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,2);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_DevInfo_Error_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
* Input :
|
||||
dev :<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
addr :<3A>豸<EFBFBD><E8B1B8>ַ
|
||||
info_addr :<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>洢<EFBFBD><E6B4A2>ַ
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_DevInfo_Error_Record(uint8_t dev,uint8_t addr,uint32_t info_addr)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[8] = {0};
|
||||
|
||||
temp_buff[0] = LSYS_DevInfo_Error;
|
||||
temp_buff[1] = dev;
|
||||
temp_buff[2] = addr;
|
||||
temp_buff[3] = info_addr & 0xFF;
|
||||
temp_buff[4] = (info_addr >> 8) & 0xFF;
|
||||
temp_buff[5] = (info_addr >> 16) & 0xFF;
|
||||
temp_buff[6] = (info_addr >> 24) & 0xFF;
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,7);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_API_State_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - API״̬<D7B4><CCAC>¼
|
||||
* Input :
|
||||
API_way :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
0x01:<3A><><EFBFBD><EFBFBD>
|
||||
0x02:<3A><><EFBFBD><EFBFBD>
|
||||
state :״̬
|
||||
0x01:д<><D0B4><EFBFBD>ɹ<EFBFBD>
|
||||
0x02:д<><D0B4>ʧ<EFBFBD><CAA7>
|
||||
0x03:<3A>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
0x04:MD5У<35><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
0x05:CRCУ<43><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
0x06:<3A><>תLauncher
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_API_State_Record(uint8_t API_way,uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[8] = {0};
|
||||
uint8_t temp_len = 0;
|
||||
|
||||
temp_buff[temp_len++] = LSYS_API_State;
|
||||
temp_buff[temp_len++] = API_way;
|
||||
temp_buff[temp_len++] = state;
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_NET_Argc_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
* Input :
|
||||
IP :<3A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>IP<49><50>ַ - 4Byte
|
||||
MAC :<3A><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>MAC<41><43>ַ - 4Byte
|
||||
DNS_IP1 :DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP1 - <20>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD> - 4Byte
|
||||
DNS_IP2 :DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP2 - TFTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 4Byte
|
||||
DNS_IP3 :DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP3 - MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 4Byte
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_NET_Argc_Record(uint8_t *IP,uint8_t *MAC,uint8_t *DNS_IP1,uint8_t *DNS_IP2,uint8_t *DNS_IP3)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[40] = {0};
|
||||
uint8_t temp_len = 0;
|
||||
|
||||
temp_buff[temp_len++] = LSYS_NET_ARGC;
|
||||
temp_buff[temp_len++] = IP[0];
|
||||
temp_buff[temp_len++] = IP[1];
|
||||
temp_buff[temp_len++] = IP[2];
|
||||
temp_buff[temp_len++] = IP[3];
|
||||
|
||||
temp_buff[temp_len++] = MAC[0];
|
||||
temp_buff[temp_len++] = MAC[1];
|
||||
temp_buff[temp_len++] = MAC[2];
|
||||
temp_buff[temp_len++] = MAC[3];
|
||||
temp_buff[temp_len++] = MAC[4];
|
||||
temp_buff[temp_len++] = MAC[5];
|
||||
|
||||
temp_buff[temp_len++] = DNS_IP1[0];
|
||||
temp_buff[temp_len++] = DNS_IP1[1];
|
||||
temp_buff[temp_len++] = DNS_IP1[2];
|
||||
temp_buff[temp_len++] = DNS_IP1[3];
|
||||
|
||||
temp_buff[temp_len++] = DNS_IP2[0];
|
||||
temp_buff[temp_len++] = DNS_IP2[1];
|
||||
temp_buff[temp_len++] = DNS_IP2[2];
|
||||
temp_buff[temp_len++] = DNS_IP2[3];
|
||||
|
||||
temp_buff[temp_len++] = DNS_IP3[0];
|
||||
temp_buff[temp_len++] = DNS_IP3[1];
|
||||
temp_buff[temp_len++] = DNS_IP3[2];
|
||||
temp_buff[temp_len++] = DNS_IP3[3];
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_MQTT_Argc_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
* Input :
|
||||
productkey :<3A><>Ʒ<EFBFBD><C6B7>Կ - 12Byte
|
||||
devname :<3A>豸<EFBFBD><E8B1B8> - 65Byte
|
||||
devsecret :<3A>豸<EFBFBD><E8B1B8>Կ - 33Byte
|
||||
publish :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ - 65Byte
|
||||
sublish :<3A><><EFBFBD>ĵ<EFBFBD>ַ - 65Byte
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_MQTT_Argc_Record(uint8_t *productkey,uint8_t *devname,uint8_t *devsecret,uint8_t *publish,uint8_t *sublish)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LSYS_MQTT_ARGC;
|
||||
|
||||
for(uint8_t i=0;i<12;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = productkey[i];
|
||||
}
|
||||
|
||||
for(uint8_t i=0;i<65;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = devname[i];
|
||||
}
|
||||
|
||||
for(uint8_t i=0;i<33;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = devsecret[i];
|
||||
}
|
||||
|
||||
for(uint8_t i=0;i<65;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = publish[i];
|
||||
}
|
||||
|
||||
for(uint8_t i=0;i<65;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = sublish[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_Server_Comm_State_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - <20>ƶ<EFBFBD>ͨѶ״̬<D7B4><CCAC>¼
|
||||
* Input :
|
||||
state :״̬
|
||||
0x00:<3A><><EFBFBD><EFBFBD>
|
||||
0x01:<3A><><EFBFBD><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_Server_Comm_State_Record(uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[8] = {0};
|
||||
uint8_t temp_len = 0;
|
||||
|
||||
temp_buff[temp_len++] = LSYS_Server_Comm_State;
|
||||
temp_buff[temp_len++] = state;
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_NET_Argc_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
* Input :
|
||||
IP :Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ - 4Byte
|
||||
Gateway :Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ַ - 4Byte
|
||||
IP_Mask :Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 4Byte
|
||||
DNS_Add :DNS<4E><53>ַ - 4Byte
|
||||
ArgcFlag :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ - 1Byte
|
||||
DHCPFlag :DHCPʹ<50>ܱ<EFBFBD>־ - 1Byte
|
||||
ServerFlag :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ - 1Byte
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_NET_Argc_Init_Record(uint8_t *IP,uint8_t *Gateway,uint8_t *IP_Mask,uint8_t *DNS_Add,uint8_t ArgcFlag,uint8_t DHCPFlag,uint8_t ServerFlag)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[40] = {0};
|
||||
uint8_t temp_len = 0;
|
||||
|
||||
temp_buff[temp_len++] = LSYS_NET_DefaultARGC;
|
||||
temp_buff[temp_len++] = IP[0];
|
||||
temp_buff[temp_len++] = IP[1];
|
||||
temp_buff[temp_len++] = IP[2];
|
||||
temp_buff[temp_len++] = IP[3];
|
||||
|
||||
temp_buff[temp_len++] = Gateway[0];
|
||||
temp_buff[temp_len++] = Gateway[1];
|
||||
temp_buff[temp_len++] = Gateway[2];
|
||||
temp_buff[temp_len++] = Gateway[3];
|
||||
|
||||
temp_buff[temp_len++] = IP_Mask[0];
|
||||
temp_buff[temp_len++] = IP_Mask[1];
|
||||
temp_buff[temp_len++] = IP_Mask[2];
|
||||
temp_buff[temp_len++] = IP_Mask[3];
|
||||
|
||||
temp_buff[temp_len++] = DNS_Add[0];
|
||||
temp_buff[temp_len++] = DNS_Add[1];
|
||||
temp_buff[temp_len++] = DNS_Add[2];
|
||||
temp_buff[temp_len++] = DNS_Add[3];
|
||||
|
||||
temp_buff[temp_len++] = ArgcFlag;
|
||||
temp_buff[temp_len++] = DHCPFlag;
|
||||
temp_buff[temp_len++] = ServerFlag;
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_SYS_NET_Argc_Record
|
||||
* Description : SYS_Record<72><64><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
* Input :
|
||||
state<74><65>״̬
|
||||
0x01<30><31><EFBFBD>㰴
|
||||
0x02<30><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
0x03<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
||||
0x04<30><34><EFBFBD>ﵽ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_SYS_RCUKey_State_Record(uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_SYS_Record_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[5] = {0};
|
||||
uint8_t temp_len = 0;
|
||||
|
||||
temp_buff[temp_len++] = LSYS_RCUKey_State;
|
||||
temp_buff[temp_len++] = state;
|
||||
|
||||
Log_write_sram(LogType_SYS_Record,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Device_COMM_ASK_TO_Reply_Record
|
||||
* Description : Device_COMM<4D><4D><EFBFBD><EFBFBD> - RCU<43><55>ѯ<EFBFBD>ظ<EFBFBD><D8B8>仯<EFBFBD><E4BBAF><EFBFBD>ݼ<EFBFBD>¼
|
||||
* Input :
|
||||
port :<3A>˿ں<CBBF>
|
||||
baud :ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
data_tick :ѯ<><D1AF>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
buff :<3A><><EFBFBD><EFBFBD>
|
||||
len :<3A><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Device_COMM_ASK_TO_Reply_Record(uint8_t port,uint32_t baud,uint32_t data_tick,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_ASK_TO_Reply;
|
||||
Temp_Flash_Buff[temp_len++] = port;
|
||||
Temp_Flash_Buff[temp_len++] = baud & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 8) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 16) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 24) & 0xFF;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
void LOG_Device_COMM_ASK_TO_Reply_Record2(uint32_t port_addr,uint32_t baud_addr,uint32_t data_tick,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_ASK_TO_Reply;
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(port_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 1);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 2);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 3);
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Device_COMM_Send_Control_Record
|
||||
* Description : Device_COMM<4D><4D><EFBFBD><EFBFBD> - RCU<43>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>¼
|
||||
* Input :
|
||||
port :<3A>˿ں<CBBF>
|
||||
baud :ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
buff :<3A><><EFBFBD><EFBFBD>
|
||||
len :<3A><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Device_COMM_Send_Control_Record(uint8_t port,uint32_t baud,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_Send_Control;
|
||||
Temp_Flash_Buff[temp_len++] = port;
|
||||
Temp_Flash_Buff[temp_len++] = baud & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 8) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 16) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 24) & 0xFF;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
void LOG_Device_COMM_Send_Control_Record2(uint32_t port_addr,uint32_t baud_addr,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_Send_Control;
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(port_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 1);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 2);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 3);
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Device_COMM_Control_Reply_Record
|
||||
* Description : Device_COMM<4D><4D><EFBFBD><EFBFBD> - RCY<43><59><EFBFBD>ƻظ<C6BB><D8B8><EFBFBD><EFBFBD>ݼ<EFBFBD>¼
|
||||
* Input :
|
||||
port :<3A>˿ں<CBBF>
|
||||
baud :ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
buff :<3A><><EFBFBD><EFBFBD>
|
||||
len :<3A><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Device_COMM_Control_Reply_Record(uint8_t port,uint32_t baud,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_Control_Reply;
|
||||
Temp_Flash_Buff[temp_len++] = port;
|
||||
Temp_Flash_Buff[temp_len++] = baud & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 8) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 16) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (baud >> 24) & 0xFF;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
void LOG_Device_COMM_Control_Reply_Record2(uint32_t port_addr,uint32_t baud_addr,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_Control_Reply;
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(port_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 1);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 2);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 3);
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
void LOG_Device_COMM_Control_Reply_Record3(uint32_t port_addr,uint32_t baud_addr,uint32_t buff_addr,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LCOMM_Control_Reply;
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(port_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 1);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 2);
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(baud_addr + 3);
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = SRAM_Read_Byte(buff_addr + i);
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Device_COMM_Adjust_Baud_Record
|
||||
* Description : Device_COMM<4D><4D><EFBFBD><EFBFBD> - <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
|
||||
* Input :
|
||||
dev_type :<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
dev_addr :<3A>豸<EFBFBD><E8B1B8>ַ
|
||||
baud :ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
way :<3A>ı䷽ʽ<E4B7BD><CABD>0x01:<3A><><EFBFBD><EFBFBD>ͨѶʧ<D1B6>ܴﵽ<DCB4><EFB5BD><EFBFBD><EFBFBD>,0x02:ͨѶʧ<D1B6>ܴ<EFBFBD><DCB4><EFBFBD><EFBFBD>ﵽ<EFBFBD>ٷֱ<D9B7><D6B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
fail_num :ʧ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
||||
sum :<3A>ܰ<EFBFBD><DCB0><EFBFBD>
|
||||
num :<3A><>ǰͨѶ<CDA8>±<EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Device_COMM_Adjust_Baud_Record(uint8_t dev_type,uint8_t dev_addr,uint32_t baud,uint8_t way,uint8_t fail_num,uint8_t sum,uint8_t num)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[12];
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(temp_buff,0,sizeof(temp_buff));
|
||||
|
||||
temp_buff[temp_len++] = LCOMM_Adjust_Baud;
|
||||
temp_buff[temp_len++] = dev_type;
|
||||
temp_buff[temp_len++] = dev_addr;
|
||||
temp_buff[temp_len++] = baud & 0xFF;
|
||||
temp_buff[temp_len++] = (baud >> 8) & 0xFF;
|
||||
temp_buff[temp_len++] = (baud >> 16) & 0xFF;
|
||||
temp_buff[temp_len++] = (baud >> 24) & 0xFF;
|
||||
temp_buff[temp_len++] = way;
|
||||
temp_buff[temp_len++] = fail_num;
|
||||
temp_buff[temp_len++] = sum;
|
||||
temp_buff[temp_len++] = num;
|
||||
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
void LOG_Device_COMM_Adjust_Baud_Record2(uint32_t dev_type,uint32_t dev_addr,uint32_t baud_addr)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_COMM_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[8];
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(temp_buff,0,sizeof(temp_buff));
|
||||
|
||||
temp_buff[temp_len++] = LCOMM_Adjust_Baud;
|
||||
temp_buff[temp_len++] = SRAM_Read_Byte(dev_type);
|
||||
temp_buff[temp_len++] = SRAM_Read_Byte(dev_addr);
|
||||
temp_buff[temp_len++] = SRAM_Read_Byte(baud_addr);
|
||||
temp_buff[temp_len++] = SRAM_Read_Byte(baud_addr + 1);
|
||||
temp_buff[temp_len++] = SRAM_Read_Byte(baud_addr + 2);
|
||||
temp_buff[temp_len++] = SRAM_Read_Byte(baud_addr + 3);
|
||||
|
||||
Log_write_sram(LogType_Device_COMM,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Device_Online_Record
|
||||
* Description : Device_Online<6E><65><EFBFBD><EFBFBD> - <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>¼
|
||||
* Input :
|
||||
dev :<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
addr :<3A>豸<EFBFBD><E8B1B8>ַ
|
||||
state :<3A>豸״̬ - 0x00<30><30><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>0x01<30><31><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Device_Online_Record(uint8_t dev,uint8_t addr,uint8_t state)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Device_Online_bit )) )
|
||||
{
|
||||
uint8_t temp_buff[6];
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(temp_buff,0,sizeof(temp_buff));
|
||||
|
||||
temp_buff[temp_len++] = dev;
|
||||
temp_buff[temp_len++] = addr;
|
||||
temp_buff[temp_len++] = state;
|
||||
|
||||
Log_write_sram(LogType_Device_Online,temp_buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Global_ParaInfo_Record
|
||||
* Description : Global_Parameters<72><73><EFBFBD><EFBFBD> - ȫ<>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>¼ <20><><EFBFBD><EFBFBD>10<31><30><EFBFBD>Ӽ<EFBFBD>¼
|
||||
* Input :
|
||||
buff :<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
len :<3A>豸<EFBFBD><E8B1B8>ַ
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Global_ParaInfo_Record(uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Global_Parameters_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LGlobal_Para;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Global_Parameters,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Global_ParaInfo_Record
|
||||
* Description : Global_Parameters<72><73><EFBFBD><EFBFBD> - ȫ<>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>¼ <20><><EFBFBD><EFBFBD>10<31><30><EFBFBD>Ӽ<EFBFBD>¼
|
||||
* Input :
|
||||
buff :<3A>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
len :<3A>豸<EFBFBD><E8B1B8>ַ
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Global_DevInfo_Record(uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Global_Parameters_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LGlobal_Dev;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Global_Parameters,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_NET_COMM_Record
|
||||
* Description : Net_COMM<4D><4D><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>¼
|
||||
* Input :
|
||||
SocketId:<3A><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(1~4)
|
||||
ip :<3A><><EFBFBD>յ<EFBFBD>IP<49><50>ַ
|
||||
port :<3A><><EFBFBD>յ<EFBFBD>Port
|
||||
buff :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len :<3A><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_NET_COMM_Send_Record(uint8_t SocketId,uint8_t *ip,uint16_t port,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Net_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LNetComm_Send;
|
||||
Temp_Flash_Buff[temp_len++] = SocketId;
|
||||
Temp_Flash_Buff[temp_len++] = ip[0];
|
||||
Temp_Flash_Buff[temp_len++] = ip[1];
|
||||
Temp_Flash_Buff[temp_len++] = ip[2];
|
||||
Temp_Flash_Buff[temp_len++] = ip[3];
|
||||
Temp_Flash_Buff[temp_len++] = (port) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (port >> 8) & 0xFF;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Net_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_NET_COMM_Record
|
||||
* Description : Net_COMM<4D><4D><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>¼
|
||||
* Input :
|
||||
SocketId:<3A><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(1~4)
|
||||
ip :<3A><><EFBFBD>յ<EFBFBD>IP<49><50>ַ
|
||||
port :<3A><><EFBFBD>յ<EFBFBD>Port
|
||||
buff :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len :<3A><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_NET_COMM_Recv_Record(uint8_t SocketId,uint8_t *ip,uint16_t port,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Net_COMM_bit )) )
|
||||
{
|
||||
uint16_t buff_len = len ;
|
||||
if(buff_len >= 512) buff_len = 512; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LNetComm_Recv;
|
||||
Temp_Flash_Buff[temp_len++] = SocketId;
|
||||
Temp_Flash_Buff[temp_len++] = ip[0];
|
||||
Temp_Flash_Buff[temp_len++] = ip[1];
|
||||
Temp_Flash_Buff[temp_len++] = ip[2];
|
||||
Temp_Flash_Buff[temp_len++] = ip[3];
|
||||
Temp_Flash_Buff[temp_len++] = (port) & 0xFF;
|
||||
Temp_Flash_Buff[temp_len++] = (port >> 8) & 0xFF;
|
||||
|
||||
for(uint16_t i=0;i<buff_len;i++)
|
||||
{
|
||||
Temp_Flash_Buff[temp_len++] = buff[i];
|
||||
}
|
||||
|
||||
Log_write_sram(LogType_Net_COMM,Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_LogicInfo_DebugRecord
|
||||
* Description : Logic_Rec<65><63><EFBFBD><EFBFBD> - <20><EFBFBD><DFBC><EFBFBD>Ϣ <20><><EFBFBD>Լ<EFBFBD>¼
|
||||
* Input :
|
||||
buff :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len :<3A><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_LogicInfo_DebugRecord(char *fmt,...)
|
||||
{
|
||||
if(LogType_Enable && (SYS_Log_Switch & (1 << LogType_Logic_Record_bit )) )
|
||||
{
|
||||
uint16_t temp_len = 0;
|
||||
|
||||
memset(Temp_Flash_Buff,0,sizeof(Temp_Flash_Buff));
|
||||
|
||||
Temp_Flash_Buff[temp_len++] = LLogic_DebugString;
|
||||
|
||||
va_list ap; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>char<61><72><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
va_start(ap, fmt); //ָ<><D6B8><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ֵ--<2D><>ʼ<EFBFBD><CABC>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>ʽ<EFBFBD><CABD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>-<2D><><EFBFBD>ŵ<EFBFBD>strָ<72><D6B8><EFBFBD>Ŀռ<C4BF>
|
||||
temp_len += vsnprintf((char *)&Temp_Flash_Buff[1],512,fmt,ap);
|
||||
va_end(ap); //<2F><>apָ<70><D6B8><EFBFBD><EFBFBD>ΪNULL
|
||||
|
||||
Log_write_sram(LogType_Logic_Record,(uint8_t *)Temp_Flash_Buff,temp_len);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
120
BasicCode/Drive/Logging/Log_api.h
Normal file
120
BasicCode/Drive/Logging/Log_api.h
Normal file
@@ -0,0 +1,120 @@
|
||||
#ifndef LOG_API_H_
|
||||
#define LOG_API_H_
|
||||
|
||||
#include "stdint.h"
|
||||
|
||||
#define LogType_Enable 1 //LOGʹ<47><CAB9>
|
||||
|
||||
/*<2A><>־<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>*/
|
||||
#define LogType_Launcher 0x01 //Launcher<65><72>Ϣ<EFBFBD><CFA2>¼
|
||||
#define LogType_SYS_Record 0x02 //ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>¼
|
||||
#define LogType_Device_COMM 0x03 //<2F>豸ͨѶ<CDA8><D1B6>¼
|
||||
#define LogType_Device_Online 0x04 //<2F>豸ͨѶ״̬<D7B4><CCAC>¼
|
||||
#define LogType_Global_Parameters 0x05 //<2F><><EFBFBD><EFBFBD><EFBFBD>豸״̬<D7B4><CCAC><EFBFBD>ڼ<EFBFBD>¼
|
||||
#define LogType_Net_COMM 0x06 //<2F><><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>¼
|
||||
#define LogType_Logic_Record 0x07 //<2F><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
|
||||
/*<2A><>־<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD> - <20><>ʼ״̬*/
|
||||
#define LogType_Launcher_SWITCH 1
|
||||
#define LogType_SYS_Record_SWITCH 1
|
||||
#define LogType_Device_COMM_SWITCH 1
|
||||
#define LogType_Device_Online_SWITCH 1
|
||||
#define LogType_Global_Parameters_SWITCH 1
|
||||
#define LogType_Net_COMM_SWITCH 1
|
||||
#define LogType_Logic_Record_SWITCH 1
|
||||
|
||||
/*<2A><>־<EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>λ*/
|
||||
#define LogType_Launcher_bit 0
|
||||
#define LogType_SYS_Record_bit 1
|
||||
#define LogType_Device_COMM_bit 2
|
||||
#define LogType_Device_Online_bit 3
|
||||
#define LogType_Global_Parameters_bit 4
|
||||
#define LogType_Net_COMM_bit 5
|
||||
#define LogType_Logic_Record_bit 6
|
||||
|
||||
extern uint32_t SYS_Log_Switch;
|
||||
|
||||
/*<2A><>־<EFBFBD><D6BE><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>*/
|
||||
#define LogInfo_Device_Online 0x01 //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
#define LogInfo_Device_Offline 0x02 //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
|
||||
typedef enum{
|
||||
LLauncher_App_Check = 0x01, //У<><D0A3>APP
|
||||
LLauncher_Read_App, //<2F><>ȡAPP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP<50><50><EFBFBD><EFBFBD>д<EFBFBD>뵽MCU FLash<73><68>
|
||||
LLauncher_Write_Flash, //дFlash
|
||||
LLauncher_Factory_Reset, //<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LLauncher_Reset_Source, //<2F><>λԴ
|
||||
LLauncher_RCUKey_State, //RCU<43><55><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>¼
|
||||
}LOGTYPE_Launcher_E;
|
||||
|
||||
typedef enum {
|
||||
LSYS_PHY_Change = 0x01, //PHY״̬<D7B4>仯<EFBFBD><E4BBAF>¼
|
||||
LSYS_DevInfo_Error, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
LSYS_API_State, //<2F><><EFBFBD><EFBFBD>״̬
|
||||
LSYS_NET_ARGC, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LSYS_MQTT_ARGC, //MQTT<54><54><EFBFBD><EFBFBD>
|
||||
LSYS_Server_Comm_State, //<2F>ƶ<EFBFBD>ͨѶ״̬<D7B4><CCAC>¼
|
||||
LSYS_NET_DefaultARGC, //<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>
|
||||
LSYS_RCUKey_State, //RCU<43><55><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>¼
|
||||
}LOGTYPR_SYSRecord;
|
||||
|
||||
typedef enum {
|
||||
LCOMM_ASK_TO_Reply = 0x01, //<2F><>ѯ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
LCOMM_Send_Control, //RCU<43>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LCOMM_Control_Reply, //RCU<43><55><EFBFBD>ƻظ<C6BB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
LCOMM_Adjust_Baud, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}LOGTYPE_DEV_COMM;
|
||||
|
||||
typedef enum {
|
||||
LGlobal_Para = 0x01, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LGlobal_Dev, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
}LOGTYPE_Global_E;
|
||||
|
||||
typedef enum {
|
||||
LNetComm_Send = 0x01, //<2F><><EFBFBD>緢<EFBFBD><E7B7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LNetComm_Recv, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}LOGTYPE_NET_COMM_E;
|
||||
|
||||
typedef enum {
|
||||
LLogic_DebugString = 0x01, //<2F><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD> - <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
|
||||
}LOGTYPE_LOGICRecord_E;
|
||||
|
||||
/*Launcher<65><72>Ϣ<EFBFBD><CFA2>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_Launcher_APP_Check_Record(uint8_t state);
|
||||
void LOG_Launcher_Read_App_Record(uint8_t state);
|
||||
void LOG_Launcher_Write_Flash_Record(uint32_t addr,uint16_t len);
|
||||
void LOG_Launcher_Factory_Reset_Record(void);
|
||||
/*ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_SYS_PHY_Change_Record(uint8_t state);
|
||||
void LOG_SYS_DevInfo_Error_Record(uint8_t dev,uint8_t addr,uint32_t info_addr);
|
||||
void LOG_SYS_API_State_Record(uint8_t API_way,uint8_t state);
|
||||
void LOG_SYS_NET_Argc_Record(uint8_t *IP,uint8_t *MAC,uint8_t *DNS_IP1,uint8_t *DNS_IP2,uint8_t *DNS_IP3);
|
||||
void LOG_SYS_MQTT_Argc_Record(uint8_t *productkey,uint8_t *devname,uint8_t *devsecret,uint8_t *publish,uint8_t *sublish);
|
||||
void LOG_SYS_Server_Comm_State_Record(uint8_t state);
|
||||
void LOG_SYS_NET_Argc_Init_Record(uint8_t *IP,uint8_t *Gateway,uint8_t *IP_Mask,uint8_t *DNS_Add,uint8_t ArgcFlag,uint8_t DHCPFlag,uint8_t ServerFlag);
|
||||
void LOG_SYS_RCUKey_State_Record(uint8_t state);
|
||||
/*<2A>豸ͨѶ<CDA8><D1B6>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_Device_COMM_ASK_TO_Reply_Record(uint8_t port,uint32_t baud,uint32_t data_tick,uint8_t *buff,uint16_t len);
|
||||
void LOG_Device_COMM_ASK_TO_Reply_Record2(uint32_t port_addr,uint32_t baud_addr,uint32_t data_tick,uint8_t *buff,uint16_t len);
|
||||
void LOG_Device_COMM_Send_Control_Record(uint8_t port,uint32_t baud,uint8_t *buff,uint16_t len);
|
||||
void LOG_Device_COMM_Send_Control_Record2(uint32_t port_addr,uint32_t baud_addr,uint8_t *buff,uint16_t len);
|
||||
void LOG_Device_COMM_Control_Reply_Record(uint8_t port,uint32_t baud,uint8_t *buff,uint16_t len);
|
||||
void LOG_Device_COMM_Control_Reply_Record2(uint32_t port_addr,uint32_t baud_addr,uint8_t *buff,uint16_t len);
|
||||
void LOG_Device_COMM_Control_Reply_Record3(uint32_t port_addr,uint32_t baud_addr,uint32_t buff_addr,uint16_t len);
|
||||
void LOG_Device_COMM_Adjust_Baud_Record(uint8_t dev_type,uint8_t dev_addr,uint32_t baud,uint8_t way,uint8_t fail_num,uint8_t sum,uint8_t num);
|
||||
void LOG_Device_COMM_Adjust_Baud_Record2(uint32_t dev_type,uint32_t dev_addr,uint32_t baud_addr);
|
||||
/*<2A>豸ͨѶ״̬<D7B4><CCAC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_Device_Online_Record(uint8_t dev,uint8_t addr,uint8_t state);
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD>豸״̬<D7B4><CCAC><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_Global_ParaInfo_Record(uint8_t *buff,uint16_t len);
|
||||
void LOG_Global_DevInfo_Record(uint8_t *buff,uint16_t len);
|
||||
/*<2A><><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_NET_COMM_Send_Record(uint8_t SocketId,uint8_t *ip,uint16_t port,uint8_t *buff,uint16_t len);
|
||||
void LOG_NET_COMM_Recv_Record(uint8_t SocketId,uint8_t *ip,uint16_t port,uint8_t *buff,uint16_t len);
|
||||
/*<2A><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>API*/
|
||||
void LOG_LogicInfo_DebugRecord(char *fmt,...);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
804
BasicCode/Drive/Logging/rw_logging.c
Normal file
804
BasicCode/Drive/Logging/rw_logging.c
Normal file
@@ -0,0 +1,804 @@
|
||||
#include "includes.h"
|
||||
|
||||
#define Log_Write_size 1024
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Log_CheckSum
|
||||
* Description : <20><>У<EFBFBD><D0A3>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>SRAM<41>ж<EFBFBD>ȡ
|
||||
*******************************************************************************/
|
||||
uint8_t Log_CheckSum(uint32_t addr,uint8_t len)
|
||||
{
|
||||
uint8_t data_sum = 0;
|
||||
for(uint8_t i = 0;i<len;i++)
|
||||
{
|
||||
data_sum += SRAM_Read_Byte(addr+i);
|
||||
}
|
||||
return ~data_sum;
|
||||
}
|
||||
/*******************************************************************************
|
||||
* Function Name : Data_CheckSum
|
||||
* Description : <20><>У<EFBFBD><D0A3>ȡ<EFBFBD><C8A1>
|
||||
*******************************************************************************/
|
||||
uint8_t Data_CheckSum(uint8_t* data,uint8_t len)
|
||||
{
|
||||
uint8_t data_sum = 0;
|
||||
for(uint8_t i = 0;i<len;i++)
|
||||
{
|
||||
data_sum += data[i];
|
||||
}
|
||||
return ~data_sum;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : <20><>־<EFBFBD><D6BE><EFBFBD>湦<EFBFBD><E6B9A6>
|
||||
* Description : <20><>־ÿһ<C3BF><D2BB>Сʱ<D0A1><CAB1>SRAM<41>е<EFBFBD><D0B5><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ݽ<EFBFBD><DDBD>з<EFBFBD>װ<EFBFBD><D7B0>
|
||||
<09><>װ<EFBFBD><D7B0>ֻ<EFBFBD>Ǽ<EFBFBD><C7BC>ϰ<EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
*******************************************************************************/
|
||||
uint8_t Log_write_sram(uint8_t data_type,uint8_t *buff,uint16_t len)
|
||||
{
|
||||
uint16_t temp_date = 0;
|
||||
uint32_t Last_add = 0;
|
||||
uint32_t Log_Hour_Tick = SysTick_1ms - Log_Time_ms; //2021-09-23 Log_Time_ms<6D>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹȫ<D6B9>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>while<6C><65>ͬʱ<CDAC><CAB1>д
|
||||
|
||||
Log_Hour_Tick += RTC_DATA_Type_Cast_DEC(RTC_Raw_Data.minute)*60000;
|
||||
Log_Hour_Tick += RTC_DATA_Type_Cast_DEC(RTC_Raw_Data.hour)*3600000;
|
||||
|
||||
uint8_t temp = 0;
|
||||
uint16_t data_len = len;
|
||||
|
||||
if(data_len >= Log_Data_Len_MAX) data_len = Log_Data_Len_MAX; //<2F><EFBFBD><DEB6><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
uint16_t write_len = S_Log_Data + data_len + 1;
|
||||
/*<2A><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>־д<D6BE><D0B4><EFBFBD><EFBFBD>ַ*/
|
||||
Last_add = Get_Log_Current_Address();
|
||||
|
||||
//<2F><>ǰ<EFBFBD><C7B0>ַ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||||
if((Last_add + write_len) >= SRAM_LOG_End_Address)
|
||||
{
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit," SRAM Space is not enough");
|
||||
Last_add = SRAM_LOG_DATA_Address;
|
||||
}
|
||||
|
||||
/*<2A>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־*/
|
||||
SRAM_Write_Byte(LOG_Data_Hand,Last_add + S_Log_Hand); //<2F><><EFBFBD><EFBFBD>ͷ
|
||||
temp = SRAM_Read_Byte(SRAM_Flash_Serial_Number);
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_SN); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
temp++;
|
||||
SRAM_Write_Byte(temp,SRAM_Flash_Serial_Number); //<2F><><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>ˢ<EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SRAM_Write_Word(write_len,Last_add + S_Log_Len); //<2F><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 2Byte
|
||||
SRAM_Write_Byte(0x00,Last_add + S_Log_Check); //У<><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
|
||||
temp_date = (RTC_DATA_Type_Cast_DEC(RTC_Raw_Data.year) << 10) + (RTC_DATA_Type_Cast_DEC(RTC_Raw_Data.month) << 5) + RTC_DATA_Type_Cast_DEC(RTC_Raw_Data.day);
|
||||
|
||||
temp = (temp_date >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Date_H); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H - <20>꣺4bit <20>£<EFBFBD>4bit
|
||||
temp = temp_date & 0xFF;
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Date_L); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L - <20>գ<EFBFBD>4bit ʱ<><CAB1>4bit
|
||||
SRAM_Write_Byte(data_type,Last_add + S_Log_Type); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
temp = Log_Hour_Tick & 0xFF;
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Time8B); //ʱ<><CAB1><EFBFBD><EFBFBD>
|
||||
temp = (Log_Hour_Tick >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Time16B);
|
||||
temp = (Log_Hour_Tick >> 16) & 0xFF;
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Time24B);
|
||||
temp = (Log_Hour_Tick >> 24) & 0xFF;
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Time32B);
|
||||
|
||||
SRAM_Write_Buff(buff,data_len,Last_add + S_Log_Data); //<2F><><EFBFBD><EFBFBD>
|
||||
SRAM_Write_Byte(Log_Data_End,Last_add + S_Log_Data + data_len); //<2F><><EFBFBD><EFBFBD>β
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>*/
|
||||
temp = Log_CheckSum(Last_add,write_len);
|
||||
SRAM_Write_Byte(temp,Last_add + S_Log_Check); //У<><D0A3>ֵ
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>־д<D6BE><D0B4><EFBFBD><EFBFBD>ַ*/
|
||||
Last_add = Last_add + write_len;
|
||||
Set_Log_Current_Address(Last_add);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"SRAM LOG Addr : %08X",Last_add);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*<2A><>ȡSRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ǰд<C7B0><D0B4><EFBFBD><EFBFBD>ַ*/
|
||||
uint32_t Get_Log_Current_Address(void)
|
||||
{
|
||||
uint32_t Last_addr = 0;
|
||||
uint8_t temp_d = 0;
|
||||
|
||||
temp_d = SRAM_Read_Byte(SRAM_LOG_Start_Address+3);
|
||||
Last_addr = temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_LOG_Start_Address+2);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_LOG_Start_Address+1);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_LOG_Start_Address);
|
||||
Last_addr |= temp_d;
|
||||
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
return Last_addr;
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>SRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ǰд<C7B0><D0B4><EFBFBD><EFBFBD>ַ*/
|
||||
void Set_Log_Current_Address(uint32_t W_addr)
|
||||
{
|
||||
uint32_t Last_addr = W_addr;
|
||||
uint8_t temp = 0;
|
||||
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
|
||||
temp = Last_addr & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_LOG_Start_Address);
|
||||
temp = (Last_addr >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_LOG_Start_Address+1);
|
||||
temp = (Last_addr >> 16) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_LOG_Start_Address+2);
|
||||
temp = (Last_addr >> 24) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_LOG_Start_Address+3);
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>SRAM<41><4D>TFTP<54><50>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ַ*/
|
||||
void SRAM_Set_TFTP_READ_LOG_Address(uint32_t r_addr)
|
||||
{
|
||||
uint32_t Last_addr = r_addr;
|
||||
uint8_t temp = 0;
|
||||
|
||||
/*<2A>жϵ<D0B6>ַ<EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>*/
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
|
||||
temp = Last_addr & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_TFTP_LOG_READ_Address);
|
||||
temp = (Last_addr >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_TFTP_LOG_READ_Address+1);
|
||||
temp = (Last_addr >> 16) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_TFTP_LOG_READ_Address+2);
|
||||
temp = (Last_addr >> 24) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_TFTP_LOG_READ_Address+3);
|
||||
}
|
||||
|
||||
/*<2A><>ȡSRAM<41><4D>TFTP<54><50>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ַ*/
|
||||
uint32_t SRAM_Get_TFTP_READ_Log_Address(void)
|
||||
{
|
||||
uint32_t Last_addr = 0;
|
||||
uint8_t temp_d = 0;
|
||||
|
||||
temp_d = SRAM_Read_Byte(SRAM_TFTP_LOG_READ_Address+3);
|
||||
Last_addr = temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_TFTP_LOG_READ_Address+2);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_TFTP_LOG_READ_Address+1);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_TFTP_LOG_READ_Address);
|
||||
Last_addr |= temp_d;
|
||||
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
return Last_addr;
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>SRAM<41><4D>SD<53><44><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ʼ<EFBFBD><CABC>ַ*/
|
||||
void SRAM_Set_SD_LOG_READ_Start_Address(uint32_t r_addr)
|
||||
{
|
||||
uint32_t Last_addr = r_addr;
|
||||
uint8_t temp = 0;
|
||||
|
||||
/*<2A>жϵ<D0B6>ַ<EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>*/
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
|
||||
temp = Last_addr & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_Start_Address);
|
||||
temp = (Last_addr >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_Start_Address+1);
|
||||
temp = (Last_addr >> 16) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_Start_Address+2);
|
||||
temp = (Last_addr >> 24) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_Start_Address+3);
|
||||
}
|
||||
|
||||
/*<2A><>ȡSRAM<41><4D>SD<53><44><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ʼ<EFBFBD><CABC>ַ*/
|
||||
uint32_t SRAM_Get_SD_LOG_READ_Start_Address(void)
|
||||
{
|
||||
uint32_t Last_addr = 0;
|
||||
uint8_t temp_d = 0;
|
||||
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_Start_Address+3);
|
||||
Last_addr = temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_Start_Address+2);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_Start_Address+1);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_Start_Address);
|
||||
Last_addr |= temp_d;
|
||||
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
return Last_addr;
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>SRAM<41><4D>SD<53><44><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ*/
|
||||
void SRAM_Set_SD_LOG_READ_End_Address(uint32_t r_addr)
|
||||
{
|
||||
uint32_t Last_addr = r_addr;
|
||||
uint8_t temp = 0;
|
||||
|
||||
/*<2A>жϵ<D0B6>ַ<EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>*/
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
|
||||
temp = Last_addr & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_End_Address);
|
||||
temp = (Last_addr >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_End_Address+1);
|
||||
temp = (Last_addr >> 16) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_End_Address+2);
|
||||
temp = (Last_addr >> 24) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_SD_LOG_READ_End_Address+3);
|
||||
}
|
||||
|
||||
/*<2A><>ȡSRAM<41><4D>SD<53><44><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ*/
|
||||
uint32_t SRAM_Get_SD_LOG_READ_End_Address(void)
|
||||
{
|
||||
uint32_t Last_addr = 0;
|
||||
uint8_t temp_d = 0;
|
||||
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_End_Address+3);
|
||||
Last_addr = temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_End_Address+2);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_End_Address+1);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_SD_LOG_READ_End_Address);
|
||||
Last_addr |= temp_d;
|
||||
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
return Last_addr;
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>SRAM<41><4D>FLASH<53><48>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ַ*/
|
||||
void SRAM_Set_FLASH_READ_LOG_Address(uint32_t r_addr)
|
||||
{
|
||||
uint32_t Last_addr = r_addr;
|
||||
uint8_t temp = 0;
|
||||
|
||||
/*<2A>жϵ<D0B6>ַ<EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>*/
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
|
||||
temp = Last_addr & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_FLASH_LOG_READ_Address);
|
||||
temp = (Last_addr >> 8) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_FLASH_LOG_READ_Address+1);
|
||||
temp = (Last_addr >> 16) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_FLASH_LOG_READ_Address+2);
|
||||
temp = (Last_addr >> 24) & 0xFF;
|
||||
SRAM_Write_Byte(temp,SRAM_FLASH_LOG_READ_Address+3);
|
||||
}
|
||||
|
||||
/*<2A><>ȡSRAM<41><4D>FLASH<53><48>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ַ*/
|
||||
uint32_t SRAM_Get_FLASH_READ_LOG_Address(void)
|
||||
{
|
||||
uint32_t Last_addr = 0;
|
||||
uint8_t temp_d = 0;
|
||||
|
||||
temp_d = SRAM_Read_Byte(SRAM_FLASH_LOG_READ_Address+3);
|
||||
Last_addr = temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_FLASH_LOG_READ_Address+2);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_FLASH_LOG_READ_Address+1);
|
||||
Last_addr |= temp_d;
|
||||
Last_addr <<= 8;
|
||||
temp_d = SRAM_Read_Byte(SRAM_FLASH_LOG_READ_Address);
|
||||
Last_addr |= temp_d;
|
||||
|
||||
if((Last_addr < SRAM_LOG_DATA_Address) || (Last_addr > SRAM_LOG_End_Address)) Last_addr = SRAM_LOG_DATA_Address;
|
||||
return Last_addr;
|
||||
}
|
||||
|
||||
/*<2A><>ȡFlash<73><68><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ*/
|
||||
uint32_t Log_Get_Flash_Current_Address(void)
|
||||
{
|
||||
uint8_t rev_buff[4] = {0};
|
||||
uint32_t rev_add = 0;
|
||||
|
||||
Flash_Read(rev_buff,4,LOG_Flash_Start_Address);
|
||||
|
||||
rev_add = rev_buff[3];
|
||||
rev_add <<= 8;
|
||||
rev_add |= rev_buff[2];
|
||||
rev_add <<= 8;
|
||||
rev_add |= rev_buff[1];
|
||||
rev_add <<= 8;
|
||||
rev_add |= rev_buff[0];
|
||||
|
||||
if((rev_add < LOG_Flash_DATA_Address) || (rev_add > LOG_Flash_End_Address)) rev_add = LOG_Flash_DATA_Address;
|
||||
return rev_add;
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD>Flash<73><68><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ*/
|
||||
void Log_Set_Flash_Current_Address(uint32_t w_addr)
|
||||
{
|
||||
uint8_t rev_buff[4] = {0};
|
||||
|
||||
if((w_addr < LOG_Flash_DATA_Address) || (w_addr > LOG_Flash_End_Address)) w_addr = LOG_Flash_DATA_Address;
|
||||
|
||||
rev_buff[0] = w_addr & 0xFF;
|
||||
rev_buff[1] = (w_addr >> 8) & 0xFF;
|
||||
rev_buff[2] = (w_addr >> 16) & 0xFF;
|
||||
rev_buff[3] = (w_addr >> 24) & 0xFF;
|
||||
|
||||
Flash_Write(rev_buff,4,LOG_Flash_Start_Address);
|
||||
}
|
||||
|
||||
|
||||
/*Flash<73><68>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־*/
|
||||
void Log_set_Flash_overflow_flag(uint8_t overflow_state)
|
||||
{
|
||||
Flash_Write(&overflow_state,1,LOG_Flash_Overflow_Address);
|
||||
}
|
||||
|
||||
/*<2A><>ʱ<EFBFBD>佫SRAM<41>е<EFBFBD><D0B5><EFBFBD>־<EFBFBD><D6BE>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2>д<EFBFBD><D0B4>Flash<73><68>*/
|
||||
#define Log_Preserve_Time 360
|
||||
uint32_t Log_Save_Tick = 0;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Log_Write_Flash
|
||||
* Description : <20><>SRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE>Ϣ<EFBFBD><CFA2><EFBFBD>浽Flash<73><68>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void Log_Write_Flash(void)
|
||||
{
|
||||
uint32_t Last_add = 0,retain_size = 0,read_size = Log_Write_size,read_add = 0;
|
||||
uint32_t Flash_add = 0,surplus_size = 0;
|
||||
uint32_t w_num = 0;
|
||||
uint8_t overflow_flag = 0;
|
||||
|
||||
Last_add = Get_Log_Current_Address(); //<2F><>ȡSRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
read_add = SRAM_Get_FLASH_READ_LOG_Address(); //<2F><>ȡSRAM<41><4D>Flash<73><68>ȡ<EFBFBD><C8A1>־<EFBFBD><D6BE>ַ
|
||||
if(Last_add > read_add)
|
||||
{
|
||||
retain_size = Last_add - read_add; //<2F><>ȡSRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С - Ҳ<><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD>Ĵ<EFBFBD>С
|
||||
}else if(Last_add < read_add)
|
||||
{
|
||||
retain_size = SRAM_LOG_End_Address - read_add;
|
||||
retain_size += Last_add - SRAM_LOG_DATA_Address;
|
||||
}
|
||||
|
||||
/*д<><D0B4><EFBFBD><EFBFBD><DEB6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ɱ<EFBFBD><C9B1>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㲻<EFBFBD><E3B2BB><EFBFBD><EFBFBD>
|
||||
<09><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>泤<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>4096<39>ֽ<EFBFBD>
|
||||
<09><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>24Сʱ
|
||||
*/
|
||||
if((retain_size < 4096) && (SysTick_1s - Log_Save_Tick < 86400)) {
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"LOG δ<><CEB4><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>!");
|
||||
return;
|
||||
}
|
||||
Log_Save_Tick = SysTick_1s;
|
||||
|
||||
Flash_add = Log_Get_Flash_Current_Address(); //<2F><>ȡFlash<73><68>־д<D6BE><D0B4><EFBFBD><EFBFBD>ַ
|
||||
surplus_size = LOG_Flash_End_Address - Flash_add; //<2F><>ȡFlash<73><68>־ʣ<D6BE>ౣ<EFBFBD><E0B1A3><EFBFBD>ռ<EFBFBD>
|
||||
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"LOG start_read_add:0x%08X Flash Read Addr:0x%08X start_Flash_add:0x%08X retain_size:0x%08X",Last_add,read_add,Flash_add,retain_size);
|
||||
|
||||
if(retain_size != 0)
|
||||
{
|
||||
w_num = retain_size / Log_Write_size; //<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
||||
w_num++;
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"w_num : %d",w_num);
|
||||
|
||||
if(retain_size <= Log_Write_size) read_size = retain_size; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
|
||||
if(read_size >= surplus_size) read_size = surplus_size; //<2F><>ǰ<EFBFBD>ռ䲻<D5BC><E4B2BB><EFBFBD><EFBFBD>Log_Write_sizeд<65><D0B4><EFBFBD><EFBFBD>С<EFBFBD><D0A1>
|
||||
|
||||
if((read_add + read_size) > SRAM_LOG_End_Address) read_size = SRAM_LOG_End_Address - read_add;
|
||||
|
||||
uint8_t Log_Temporary_Buff[Log_Write_size+3] = {0};
|
||||
|
||||
while(w_num--)
|
||||
{
|
||||
WDT_Feed();
|
||||
|
||||
SRAM_DMA_Read_Buff(&Log_Temporary_Buff[1],read_size,read_add);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Flash_Write Flash_add:0x%08X SRAM_Addr:0x%08X write_size:0x%08X",Flash_add,read_add,read_size);
|
||||
if((overflow_flag == 1) && (Flash_add == LOG_Flash_DATA_Address)) //<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>־λ
|
||||
{
|
||||
overflow_flag = 0;
|
||||
Log_Temporary_Buff[0] = 1;
|
||||
Flash_Write(Log_Temporary_Buff,read_size+1,Flash_add-1);
|
||||
}else {
|
||||
Flash_Write(&Log_Temporary_Buff[1],read_size,Flash_add);
|
||||
}
|
||||
Flash_add += read_size; //Flashд<68><D0B4>ַƫ<D6B7><C6AB>
|
||||
read_add += read_size; //SRAM<41><4D><EFBFBD><EFBFBD>ַƫ<D6B7><C6AB>
|
||||
|
||||
|
||||
if(retain_size == read_size)
|
||||
{
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"LOG_Flash Write Complete!");
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
surplus_size -= read_size; //Flash<73><68>־<EFBFBD><D6BE><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>ռ<EFBFBD>
|
||||
retain_size -= read_size;
|
||||
|
||||
if(read_add >= SRAM_LOG_End_Address) //SRAM<41>ռ<EFBFBD><D5BC>Ѿ<EFBFBD><D1BE><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"LOG_SRAM_End_Address:0x%08X",read_add);
|
||||
read_add = SRAM_LOG_DATA_Address;
|
||||
w_num++; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ
|
||||
}
|
||||
if(Flash_add >= LOG_Flash_End_Address) //Flash<73>ռ<EFBFBD><D5BC><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>д
|
||||
{
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"LOG_Flash_End_Address:0x%08X",Flash_add);
|
||||
overflow_flag = 1;
|
||||
Flash_add = LOG_Flash_DATA_Address;
|
||||
surplus_size = LOG_Flash_End_Address - LOG_Flash_DATA_Address;
|
||||
w_num++; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ
|
||||
}
|
||||
|
||||
if(retain_size > Log_Write_size) read_size = Log_Write_size;
|
||||
else read_size = retain_size;
|
||||
if(read_size >= surplus_size) read_size = surplus_size;
|
||||
|
||||
if((read_add + read_size) > SRAM_LOG_End_Address) read_size = SRAM_LOG_End_Address - read_add;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"LOG Flash END_add:0x%08X",Flash_add);
|
||||
Log_Set_Flash_Current_Address(Flash_add); //<2F><><EFBFBD><EFBFBD>Flashд<68><D0B4><EFBFBD><EFBFBD>ַ
|
||||
SRAM_Set_FLASH_READ_LOG_Address(Last_add); //SRAM<41><4D>Flash<73><68><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ַ<EFBFBD><D6B7>λ
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Data_Seek
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Data_Seek(uint8_t* data,uint32_t len)
|
||||
{
|
||||
uint16_t date_temp = 0;
|
||||
uint8_t Log_Len = 0,Log_Data_Len = 0;
|
||||
uint32_t hour_tick = 0,min_tick = 0,sec_tick = 0,ms_tick = 0,temp = 0;
|
||||
|
||||
for(uint32_t i = 0;i<len;i++)
|
||||
{
|
||||
if(data[i] == LOG_Data_Hand)
|
||||
{
|
||||
//Dbg_Print(DBG_BIT_SYS_STATUS_bit,"<22><><EFBFBD>ҵ<EFBFBD>LOG_Data_Hand %d..\n",i);
|
||||
Log_Len = data[i+S_Log_Len];
|
||||
|
||||
if((Data_CheckSum(&data[i],Log_Len) == 0x00) && (data[i + Log_Len - 1] == Log_Data_End))
|
||||
{
|
||||
Log_Data_Len = Log_Len - S_Log_Data - 1; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
|
||||
hour_tick = data[i+S_Log_Time32B];
|
||||
hour_tick = hour_tick << 8;
|
||||
hour_tick |= data[i+S_Log_Time24B];
|
||||
hour_tick = hour_tick << 8;
|
||||
hour_tick |= data[i+S_Log_Time16B];
|
||||
hour_tick = hour_tick << 8;
|
||||
hour_tick |= data[i+S_Log_Time8B];
|
||||
|
||||
//Dbg_Print(DBG_BIT_SYS_STATUS_bit,"hour_tick:%08X buff:%02X%02X%02X%02X\r\n",hour_tick,data[i+S_Log_Time32B],data[i+S_Log_Time24B],data[i+S_Log_Time16B],data[i+S_Log_Time8B]);
|
||||
|
||||
temp = hour_tick;
|
||||
hour_tick = temp/3600000;
|
||||
temp = temp%3600000;
|
||||
min_tick = temp/60000;
|
||||
temp = temp%60000;
|
||||
sec_tick = temp/1000;
|
||||
ms_tick = temp%1000;
|
||||
|
||||
date_temp = (data[i+S_Log_Date_H]<<8) + data[i+S_Log_Date_L];
|
||||
Dbg_Print(DBG_BIT_SYS_STATUS_bit,"%d-%d-%d %d:%d:%d %dms LOG Data: ",(date_temp >> 10),((date_temp) >> 5)& 0x1F,(date_temp & 0x1F),hour_tick,min_tick,sec_tick,ms_tick);
|
||||
for(uint32_t j = 0;j<Log_Data_Len;j++)
|
||||
{
|
||||
Dbg_Print(DBG_BIT_SYS_STATUS_bit,"%02X,",data[i+S_Log_Data+j]);
|
||||
}
|
||||
Dbg_Print(DBG_BIT_SYS_STATUS_bit,"\n");
|
||||
i += Log_Len - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Log_Read_Flash
|
||||
* Description : <20><>Flash<73><68><EFBFBD><EFBFBD>־ȫ<D6BE><C8AB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void Log_Read_Flash(void)
|
||||
{
|
||||
uint32_t Flash_add = 0,retain_size = 0,w_num = 0,read_size = Log_Write_size;
|
||||
uint32_t read_add = LOG_Flash_DATA_Address;
|
||||
uint8_t Log_Temporary_Buff[Log_Write_size+3] = {0};
|
||||
|
||||
Flash_Read(Log_Temporary_Buff,1,LOG_Flash_Overflow_Address);
|
||||
|
||||
if(Log_Temporary_Buff[0] == 0x01) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
{
|
||||
retain_size = LOG_Flash_End_Address - LOG_Flash_DATA_Address;
|
||||
}else {
|
||||
Flash_add = Log_Get_Flash_Current_Address();
|
||||
retain_size = Flash_add - LOG_Flash_DATA_Address;
|
||||
}
|
||||
|
||||
w_num = retain_size / Log_Write_size;
|
||||
w_num++;
|
||||
|
||||
if(retain_size <= Log_Write_size) read_size = retain_size;
|
||||
if(read_size == 0) return ;
|
||||
while(w_num--)
|
||||
{
|
||||
WDT_Feed();
|
||||
|
||||
// Dbg_Print(DBG_BIT_SYS_STATUS_bit,"\r\nLOG read_add:0x%08X ,read_size:0x%08X\r\n",read_add,read_size);
|
||||
Flash_Read(Log_Temporary_Buff,read_size,read_add);
|
||||
Dbg_Print(DBG_BIT_SYS_STATUS_bit,"Flash_Read:");
|
||||
for(uint32_t i = 0;i<read_size;i++)
|
||||
{
|
||||
Dbg_Print(DBG_BIT_SYS_STATUS_bit,"%02X,",Log_Temporary_Buff[i]);
|
||||
}
|
||||
Dbg_Print(DBG_BIT_SYS_STATUS_bit,"\r\n");
|
||||
|
||||
LOG_Data_Seek(Log_Temporary_Buff,read_size);
|
||||
|
||||
if(read_size == retain_size) break;
|
||||
else {
|
||||
retain_size -= read_size; //ʣ<><CAA3><EFBFBD>ֽڵݼ<DAB5>
|
||||
read_add += read_size; //<2F><><EFBFBD><EFBFBD>ַƫ<D6B7><C6AB>
|
||||
if(retain_size > Log_Write_size) read_size = Log_Write_size;
|
||||
else read_size = retain_size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Save_Device_Change
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>200Byte
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Save_Device_Action(uint8_t type,uint8_t addr,uint16_t loop,uint16_t state)
|
||||
{
|
||||
uint8_t temp_buf[10];
|
||||
memset(temp_buf,0,sizeof(temp_buf));
|
||||
|
||||
temp_buf[0] = type;
|
||||
temp_buf[1] = addr;
|
||||
temp_buf[2] = loop&0xFF;
|
||||
temp_buf[3] = (loop>>8)&0xFF;
|
||||
temp_buf[4] = state&0xFF;
|
||||
temp_buf[5] = (state>>8)&0xFF;
|
||||
|
||||
Log_write_sram(Log_Type_Device_Change,temp_buf,0x06);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Save_Device_Change
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>200Byte
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Save_Device_Change(uint32_t data_addr, uint16_t data_len)
|
||||
{
|
||||
uint16_t temp_len = data_len;
|
||||
if(temp_len > 200) temp_len = 200;
|
||||
uint8_t temp_data[temp_len];
|
||||
|
||||
memset(temp_data,0,sizeof(temp_data));
|
||||
SRAM_Read_Buff(temp_data,temp_len,data_addr);
|
||||
Log_write_sram(Log_Type_Device_Change,temp_data,temp_len);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : LOG_Save_Global_Parameters
|
||||
* Description : <20><><EFBFBD><EFBFBD>ȫ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void LOG_Save_Global_Parameters(void)
|
||||
{
|
||||
static uint32_t polling_tick = 0;
|
||||
uint8_t log_len = 0;
|
||||
uint8_t log_buff[22];
|
||||
memset(log_buff,0,22);
|
||||
|
||||
/*2025-09-08 <20><EFBFBD>
|
||||
ȫ<>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ鿴<DAB2><E9BFB4><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯
|
||||
ȡ<><C8A1>״̬<D7B4><CCAC>˯<EFBFBD><CBAF>ģʽ״̬<D7B4><CCAC>ȫ<EFBFBD><C8AB>ɫ<EFBFBD>¡<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
*/
|
||||
if(SysTick_1ms - polling_tick >= 2000)
|
||||
{
|
||||
polling_tick = SysTick_1ms;
|
||||
|
||||
if( (DevActionGlobal.DevActionU64Cond.EleState != DevActionGlobal.Last_EleState)
|
||||
|| (DevActionGlobal.DimGlobalValue != DevActionGlobal.Last_DimGlobalValue)
|
||||
|| (DevActionGlobal.CCTValue != DevActionGlobal.Last_CCTValue)
|
||||
|| (DevActionGlobal.SleepMode_State != DevActionGlobal.Last_SleepMode_State)
|
||||
|| (DevActionGlobal.SleepLight_State != DevActionGlobal.Last_SleepLight_State)
|
||||
|| (DevActionGlobal.Person_Detected != DevActionGlobal.Last_Person_Detected)
|
||||
|| (DevActionGlobal.CardState != DevActionGlobal.Last_CardState)
|
||||
|| (DevActionGlobal.Rs485CardType != DevActionGlobal.Last_Rs485CardType)
|
||||
|| (DevActionGlobal.DevActionU64Cond.NeightState != DevActionGlobal.Last_NeightState) )
|
||||
{
|
||||
DevActionGlobal.Last_EleState = DevActionGlobal.DevActionU64Cond.EleState;
|
||||
DevActionGlobal.Last_DimGlobalValue = DevActionGlobal.DimGlobalValue ;
|
||||
DevActionGlobal.Last_CCTValue = DevActionGlobal.CCTValue;
|
||||
DevActionGlobal.Last_SleepMode_State = DevActionGlobal.SleepMode_State;
|
||||
DevActionGlobal.Last_SleepLight_State = DevActionGlobal.SleepLight_State;
|
||||
DevActionGlobal.Last_Person_Detected = DevActionGlobal.Person_Detected;
|
||||
DevActionGlobal.Last_CardState = DevActionGlobal.CardState;
|
||||
DevActionGlobal.Last_Rs485CardType = DevActionGlobal.Rs485CardType;
|
||||
DevActionGlobal.Last_NeightState = DevActionGlobal.DevActionU64Cond.NeightState;
|
||||
|
||||
log_len = 0x00;
|
||||
log_buff[log_len++] = 0xA8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
log_buff[log_len++] = 0x00; //<2F><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
log_buff[log_len++] = 0x00; //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>λ
|
||||
|
||||
log_buff[log_len++] = DevActionGlobal.Last_EleState; //ȡ<><C8A1>״̬
|
||||
log_buff[log_len++] = (DevActionGlobal.Last_DimGlobalValue & 0xFF); //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
log_buff[log_len++] = ((DevActionGlobal.Last_DimGlobalValue >> 8) & 0xFF); //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
log_buff[log_len++] = (DevActionGlobal.Last_CCTValue & 0xFF); //ȫ<><C8AB>ɫ<EFBFBD><C9AB>
|
||||
log_buff[log_len++] = ((DevActionGlobal.Last_CCTValue >> 8) & 0xFF); //ȫ<><C8AB>ɫ<EFBFBD><C9AB>
|
||||
log_buff[log_len++] = DevActionGlobal.Last_SleepMode_State; //˯<><CBAF>ģʽ
|
||||
log_buff[log_len++] = DevActionGlobal.Last_SleepLight_State; //˯<>ߵƹ<DFB5>״̬
|
||||
log_buff[log_len++] = DevActionGlobal.Last_Person_Detected; //<2F><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
log_buff[log_len++] = DevActionGlobal.Last_CardState;
|
||||
log_buff[log_len++] = DevActionGlobal.Last_Rs485CardType;
|
||||
log_buff[log_len++] = DevActionGlobal.Last_NeightState;
|
||||
|
||||
log_buff[1] = log_len; //<2F><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
log_buff[2] = CheckSum(log_buff,log_len); //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ֵ
|
||||
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"%s %d",__func__,DevActionGlobal.Last_Person_Detected);
|
||||
|
||||
SRAM_DMA_Write_Buff(log_buff,log_len,SRAM_PowerOn_Restore_StartAddr );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A>ϵ<EFBFBD><CFB5><EFBFBD>ȡ<EFBFBD>ⲿSRAM<41>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD>Ϣ */
|
||||
uint8_t SRAM_PowerOn_Restore_ParaInfo(void)
|
||||
{
|
||||
uint8_t log_len = 0;
|
||||
uint8_t log_buff[22];
|
||||
uint16_t temp_val = 0;
|
||||
memset(log_buff,0,22);
|
||||
|
||||
SRAM_DMA_Read_Buff(log_buff,20,SRAM_PowerOn_Restore_StartAddr );
|
||||
|
||||
if(log_buff[0] == 0xA8) //У<><D0A3><EFBFBD><EFBFBD>־λ
|
||||
{
|
||||
if(log_buff[1] == 0x0E) //У<><D0A3><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
{
|
||||
if(CheckSum(log_buff,0x0E) == 0x00)
|
||||
{
|
||||
log_len = 0x03;
|
||||
DevActionGlobal.Last_EleState = log_buff[log_len++];
|
||||
|
||||
temp_val = log_buff[log_len++];
|
||||
temp_val <<= 8;
|
||||
temp_val |= log_buff[log_len++];
|
||||
DevActionGlobal.Last_DimGlobalValue = temp_val;
|
||||
|
||||
temp_val = log_buff[log_len++];
|
||||
temp_val <<= 8;
|
||||
temp_val |= log_buff[log_len++];
|
||||
DevActionGlobal.Last_CCTValue = temp_val;
|
||||
|
||||
DevActionGlobal.Last_SleepMode_State = log_buff[log_len++];
|
||||
|
||||
DevActionGlobal.Last_SleepLight_State = log_buff[log_len++];
|
||||
|
||||
DevActionGlobal.Last_Person_Detected = log_buff[log_len++];
|
||||
|
||||
DevActionGlobal.Last_CardState = log_buff[log_len++];
|
||||
|
||||
DevActionGlobal.Last_Rs485CardType = log_buff[log_len++];
|
||||
|
||||
DevActionGlobal.Last_NeightState = log_buff[log_len++];
|
||||
|
||||
DevActionGlobal.DevActionU64Cond.EleState = DevActionGlobal.Last_EleState;
|
||||
DevActionGlobal.DimGlobalValue = DevActionGlobal.Last_DimGlobalValue;
|
||||
DevActionGlobal.CCTValue = DevActionGlobal.Last_CCTValue;
|
||||
DevActionGlobal.SleepMode_State = DevActionGlobal.Last_SleepMode_State;
|
||||
DevActionGlobal.SleepLight_State = DevActionGlobal.Last_SleepLight_State;
|
||||
DevActionGlobal.Person_Detected = DevActionGlobal.Last_Person_Detected;
|
||||
DevActionGlobal.CardState= DevActionGlobal.Last_CardState;
|
||||
DevActionGlobal.Rs485CardType= DevActionGlobal.Last_Rs485CardType;
|
||||
DevActionGlobal.DevActionU64Cond.NeightState = DevActionGlobal.Last_NeightState;
|
||||
|
||||
DevActionGlobal.sram_save_flag = 0xA8;
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_EleState:%d ",DevActionGlobal.Last_EleState);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_DimGlobalValue:%d ",DevActionGlobal.Last_DimGlobalValue);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_CCTValue:%d ",DevActionGlobal.Last_CCTValue);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_SleepMode_State:%d ",DevActionGlobal.Last_SleepMode_State);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_SleepLight_State:%d ",DevActionGlobal.Last_SleepLight_State);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_Person_Detected:%d ",DevActionGlobal.Last_Person_Detected);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_CardState:%d ",DevActionGlobal.Last_CardState);
|
||||
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"Last_NeightState:%d ",DevActionGlobal.Last_NeightState);
|
||||
|
||||
return 0x00;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DevActionGlobal.DevActionU64Cond.NeightState = NightModeOpen; //Ĭ<>Ϸ<EFBFBD>˯<EFBFBD>ߣ<EFBFBD>Ĭ<EFBFBD>Ϸ<EFBFBD>˯<EFBFBD><CBAF>ʱ<EFBFBD><CAB1><EFBFBD>Կڴ<D4BF>ӡ<EFBFBD><D3A1>ֵ<EFBFBD><D6B5>NightModeOpen<65><6E>
|
||||
DevActionGlobal.SleepMode_State = 0x00; //Ĭ<>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
/*RCU<43><55><EFBFBD><EFBFBD>MCU<43><55>λ״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8>ʼ<EFBFBD><CABC> -
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>Ź<EFBFBD><C5B9><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ⲿ<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8>ʼ<EFBFBD><CABC>
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬<D7B4><CCAC>ʼ<EFBFBD><CABC>(Ĭ<><C4AC>״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>RCU_POWER_Deivce_State_Init <20>궨<EFBFBD><EAB6A8> <20><EFBFBD>Ĭ<EFBFBD>ϳ<EFBFBD>ʼ<EFBFBD><CABC>״̬)
|
||||
*/
|
||||
if( (SRAM_Read_DW(SRAM_LOG_RCU_Reboot_Reason) == 0x01) || (SRAM_Read_DW(SRAM_LOG_RCU_Reboot_Reason) == 0x03) || (SRAM_Read_DW(SRAM_LOG_RCU_Reboot_Reason) == 0x05) )
|
||||
{
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>λ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϵ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>*/
|
||||
DevActionGlobal.DevActionU64Cond.EleState = 0x01;
|
||||
}else {
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>Ź<EFBFBD><C5B9><EFBFBD>λ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ϵ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>*/
|
||||
#if RCU_POWER_Deivce_State_Init
|
||||
DevActionGlobal.DevActionU64Cond.EleState = 0x01;
|
||||
#else
|
||||
DevActionGlobal.DevActionU64Cond.EleState = 0x02;
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0x01;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Retain_Flash_Register_Data
|
||||
* Description : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void Retain_Flash_Register_Data(void)
|
||||
{
|
||||
uint8_t temp = 0,temp1 = 0;
|
||||
uint16_t i = 0;
|
||||
|
||||
memset(Global_Large_Buff,0,Register_OFFSET_LEN);
|
||||
|
||||
Flash_Read(Global_Large_Buff,Register_OFFSET_LEN,FLASH_Register_Start_ADDRESS);
|
||||
|
||||
for(i = 0;i<Register_OFFSET_LEN;i++)
|
||||
{
|
||||
temp1 = SRAM_Read_Byte(SRAM_Register_Start_ADDRESS+i);
|
||||
if(temp1 != Global_Large_Buff[i])
|
||||
{
|
||||
Global_Large_Buff[i] = temp1;
|
||||
temp++;
|
||||
}
|
||||
}
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1>浽Flash<73><68>*/
|
||||
if(temp != 0x00)
|
||||
{
|
||||
Flash_Write(Global_Large_Buff,Register_OFFSET_LEN,FLASH_Register_Start_ADDRESS);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Read_Flash_Register_Data
|
||||
* Description : <20><>ȡ<EFBFBD><C8A1>Ŀ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void Read_Flash_Register_Data(void)
|
||||
{
|
||||
memset(Global_Large_Buff,0,Register_OFFSET_LEN);
|
||||
|
||||
Flash_Read(Global_Large_Buff,Register_OFFSET_LEN,FLASH_Register_Start_ADDRESS);
|
||||
SRAM_DMA_Write_Buff(Global_Large_Buff,Register_OFFSET_LEN,SRAM_Register_Start_ADDRESS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
93
BasicCode/Drive/Logging/rw_logging.h
Normal file
93
BasicCode/Drive/Logging/rw_logging.h
Normal file
@@ -0,0 +1,93 @@
|
||||
#ifndef RW_LOGGING_H_
|
||||
#define RW_LOGGING_H_
|
||||
|
||||
#include "stdint.h"
|
||||
|
||||
/*OLD*/
|
||||
#define Log_Type_Device_Change 0x04 //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
#define Log_Type_Global_Parameters 0x05 //ȫ<>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD>仯
|
||||
|
||||
|
||||
//SRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ص<EFBFBD>ַ
|
||||
/*
|
||||
2022-05-09 <20><>SRAM<41><4D>־<EFBFBD><D6BE><EFBFBD>ݵ<EFBFBD>ַ SRAM_LOG_DATA_Address <20><>0x090020<32><30>Ϊ0x090100
|
||||
ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Launcher<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ - <20><>APPʹ<50>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>PC<50>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP<50><50>Ч
|
||||
*/
|
||||
#define SRAM_LOG_Start_Address 0x090000 //<2F><>־<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>ʼ<EFBFBD><CABC>ַ - <20><>ǰSRAM<41><4D><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ݵ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ַ - 4Byte
|
||||
#define SRAM_TFTP_LOG_READ_Address 0x090004 //TFTP<54><50>־<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ȡ<EFBFBD><C8A1>ַ - 4Byte
|
||||
#define SRAM_FLASH_LOG_READ_Address 0x090008 //Flash<73><68>־д<D6BE><D0B4><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ַ - 4Byte
|
||||
#define SRAM_SD_LOG_READ_Start_Address 0x09000C //SD<53><44>ȡ<EFBFBD><C8A1>ʼ<EFBFBD><CABC>ַ - <20><>TFTP<54><50>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ֵ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SDд<44><D0B4>LOGʹ<47><CAB9> - 4Byte
|
||||
#define SRAM_SD_LOG_READ_End_Address 0x090010 //SD<53><44>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ - 4Byte
|
||||
#define SRAM_Flash_Serial_Number 0x090014 //<2F><>־<EFBFBD><D6BE><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>ַ - 1Byte
|
||||
#define SRAM_LOGFlag_Reset_Source 0x090018 //Launcher<65><72><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> - <20><>APPʹ<50><CAB9>
|
||||
#define SRAM_LOGFlag_Addr_INIT 0x090019 //Launcher<65><72>¼<EFBFBD><C2BC>ַSRAM<41><4D>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>־λ - <20><>APPʹ<50><CAB9>
|
||||
#define SRAM_LOGFlag_Debug_Switch 0x09001A //Launcher<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ 4Byte - <20><>APPʹ<50><CAB9>
|
||||
#define SRAM_APPFlag_Reset_Source 0x09001E //App<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ 2Byte - <20><>Launcher<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣʹ<CFA2><CAB9> 0xBBC1
|
||||
#define SRAM_LOG_DATA_Address 0x090100 //<2F><>־<EFBFBD><D6BE><EFBFBD>ݵ<EFBFBD>ַ
|
||||
#define SRAM_LOG_End_Address 0x2FFFFF //<2F><>־<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ - 0x0AFFFF
|
||||
|
||||
#define APPFlag_UartUpgrade_Reset 0xBBC1 //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
//Flash<73><68><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ص<EFBFBD>ַ
|
||||
/*
|
||||
2022-04-17 <20><>Flash<73><68>־<EFBFBD><D6BE>ַ<EFBFBD><D6B7>0x090000<30><30>Ϊ0x100000 ~ 0x1FFFFF
|
||||
*/
|
||||
#define LOG_Flash_Start_Address 0x100000 //Flash<73><68>־<EFBFBD>ռ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ַ
|
||||
#define LOG_Flash_Overflow_Address 0x100004 //Flash<73><68>־<EFBFBD>ռ<EFBFBD><D5BC>Ƿ<EFBFBD><C7B7>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD>־λ
|
||||
//#define LOG_Flash_Serial_Number 0x090005 //<2F><>־<EFBFBD><D6BE><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
#define LOG_Flash_DATA_Address 0x100020 //Flash<73><68>־<EFBFBD><D6BE><EFBFBD>ݵ<EFBFBD>ַ
|
||||
#define LOG_Flash_End_Address 0x1FFFFF //Flash<73><68>־<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
//<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>
|
||||
#define LOG_Data_Hand 0xA5 //LOG<4F><47><EFBFBD><EFBFBD>ͷ
|
||||
#define Log_Data_End 0x5A //LOG<4F><47><EFBFBD><EFBFBD>β
|
||||
#define Log_Data_Len_MAX 512 //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>512Byte
|
||||
|
||||
/*<2A><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ
|
||||
2021-04-02 <20><><EFBFBD>Ӹ<EFBFBD>У<EFBFBD><D0A3>λ
|
||||
2021_11_29<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD>ȸ<EFBFBD>Ϊ2Byte
|
||||
*/
|
||||
typedef enum{
|
||||
S_Log_Hand,
|
||||
S_Log_SN, //<2F><>־ÿ<D6BE><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
S_Log_Len,
|
||||
S_Log_Len_8,
|
||||
S_Log_Check,
|
||||
S_Log_Date_H, //<2F>꣺5bit <20>£<EFBFBD>5bit <20>գ<EFBFBD>5bit
|
||||
S_Log_Date_L,
|
||||
S_Log_Type,
|
||||
S_Log_Time8B, //Сʱʱ<CAB1><CAB1><EFBFBD><EFBFBD>
|
||||
S_Log_Time16B,
|
||||
S_Log_Time24B,
|
||||
S_Log_Time32B,
|
||||
S_Log_Data,
|
||||
}Sram_Log_Data_Format;
|
||||
|
||||
/************************************************************/
|
||||
|
||||
uint8_t Log_write_sram(uint8_t data_type,uint8_t *buff,uint16_t len);
|
||||
uint8_t Log_read_sram(void);
|
||||
uint32_t Get_Log_Current_Address(void);
|
||||
void Set_Log_Current_Address(uint32_t W_addr);
|
||||
void SRAM_Set_TFTP_READ_LOG_Address(uint32_t r_addr);
|
||||
uint32_t SRAM_Get_TFTP_READ_Log_Address(void);
|
||||
void SRAM_Set_FLASH_READ_LOG_Address(uint32_t r_addr);
|
||||
uint32_t SRAM_Get_FLASH_READ_LOG_Address(void);
|
||||
void SRAM_Set_SD_LOG_READ_Start_Address(uint32_t r_addr);
|
||||
uint32_t SRAM_Get_SD_LOG_READ_Start_Address(void);
|
||||
void SRAM_Set_SD_LOG_READ_End_Address(uint32_t r_addr);
|
||||
uint32_t SRAM_Get_SD_LOG_READ_End_Address(void);
|
||||
|
||||
uint32_t Log_Get_Flash_Current_Address(void);
|
||||
void Log_Set_Flash_Current_Address(uint32_t w_addr);
|
||||
void Log_set_Flash_overflow_flag(uint8_t overflow_state);
|
||||
void Log_Write_Flash(void);
|
||||
void Log_Read_Flash(void);
|
||||
void LOG_Preserve_Flash_Task(void);
|
||||
void LOG_Save_Device_Action(uint8_t type,uint8_t addr,uint16_t loop,uint16_t state);
|
||||
void LOG_Save_Device_Change(uint32_t data_addr, uint16_t data_len);
|
||||
void LOG_Save_Global_Parameters(void);
|
||||
uint8_t SRAM_PowerOn_Restore_ParaInfo(void);
|
||||
|
||||
void Retain_Flash_Register_Data(void);
|
||||
void Read_Flash_Register_Data(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user