fix:修改UDP通讯中,取电变化上报机制
1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。 2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
89
BasicCode/Drive/BLV_Authorize/BLV_Authorize.c
Normal file
89
BasicCode/Drive/BLV_Authorize/BLV_Authorize.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*******************************************************************************
|
||||
* Function Name : BLV<4C><56>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
* Software Version : 00.0
|
||||
* Publication Date <09><>2021-09-23 15:45
|
||||
*******************************************************************************/
|
||||
#include "BLV_Authorize.h"
|
||||
#include "CH57x_common.h"
|
||||
#include "SPI_SRAM.h"
|
||||
#include "rw_logging.h"
|
||||
#include "BLV_NET_Function.h"
|
||||
|
||||
BLV_AUTHORIZE sys_authorize;
|
||||
/*******************************************************************************
|
||||
* Function Name : BLV_Set_Authorize_Status
|
||||
* Description : <20><><EFBFBD><EFBFBD>BLVϵͳ<CFB5><CDB3>Ȩ״̬
|
||||
* Input :
|
||||
expires_time :<3A><>Ȩʱ<C8A8><CAB1>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void BLV_Set_Authorize_Status(uint32_t Expires_time,uint8_t lock)
|
||||
{
|
||||
memset(&sys_authorize,0,sizeof(BLV_AUTHORIZE));
|
||||
|
||||
sys_authorize.lock_status = lock;
|
||||
sys_authorize.expires_time = Expires_time;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : BLV_Authorize_Processing
|
||||
* Description : BLVϵͳ<CFB5><CDB3>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
|
||||
* Input :
|
||||
utc_time :<3A><><EFBFBD><EFBFBD>utcʱ<63><CAB1>
|
||||
* Return : None
|
||||
*******************************************************************************/
|
||||
void BLV_Authorize_Processing(uint32_t utc_time)
|
||||
{
|
||||
uint32_t temp_tick = utc_time;
|
||||
uint32_t temp_lock = 0;
|
||||
if((sys_authorize.expires_time != 0x00) && (temp_tick >= sys_authorize.expires_time ) )
|
||||
{
|
||||
sys_authorize.lock_status = 1;
|
||||
/*<2A><><EFBFBD>ʱ<E2B5BD>䵽<EFBFBD>ں<DABA><F3A3ACBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>λ<EFBFBD><CEBB>ͬʱ<CDAC><CAB1><EFBFBD>浽Flash<73><68>*/
|
||||
temp_lock = SRAM_Read_DW(SRAM_Register_Start_ADDRESS + Register_MandateLock_OFFSET);
|
||||
if(temp_lock != 0x00000001)
|
||||
{
|
||||
SRAM_Write_DW(0x01,SRAM_Register_Start_ADDRESS + Register_MandateLock_OFFSET);
|
||||
Retain_Flash_Register_Data();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Get_Authorize_Lock_Status
|
||||
* Description : <20><>ȡ<EFBFBD><C8A1>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>״̬
|
||||
* Input :
|
||||
0x00<30><30><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ȩδ<C8A8><CEB4><EFBFBD><EFBFBD>
|
||||
0x01<30><31><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
|
||||
*******************************************************************************/
|
||||
void Set_Authorize_Lock_Status(uint8_t state)
|
||||
{
|
||||
sys_authorize.lock_status = state;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Get_Authorize_Lock_Status
|
||||
* Description : <20><>ȡ<EFBFBD><C8A1>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>״̬
|
||||
* Input : None
|
||||
* Return :
|
||||
0x00<30><30><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ȩδ<C8A8><CEB4><EFBFBD><EFBFBD>
|
||||
0x01<30><31><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>
|
||||
*******************************************************************************/
|
||||
uint8_t Get_Authorize_Lock_Status(void)
|
||||
{
|
||||
if(sys_authorize.expires_time != 0x00) return sys_authorize.lock_status;
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : Get_Authorize_UnixTime
|
||||
* Description : <20><>ȡ<EFBFBD><C8A1>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
* Input : None
|
||||
* Return : <20><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
*******************************************************************************/
|
||||
uint32_t Get_Authorize_UnixTime(void)
|
||||
{
|
||||
return sys_authorize.expires_time;
|
||||
}
|
||||
|
||||
|
||||
20
BasicCode/Drive/BLV_Authorize/BLV_Authorize.h
Normal file
20
BasicCode/Drive/BLV_Authorize/BLV_Authorize.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#ifndef _BLV_AUTHORIZE_H_
|
||||
#define _BLV_AUTHORIZE_H_
|
||||
|
||||
#include "stdint.h"
|
||||
#include "string.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t lock_status; //<2F><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>״̬
|
||||
uint8_t last_status;
|
||||
uint32_t expires_time; //<2F><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
}__attribute__ ((__packed__))BLV_AUTHORIZE;
|
||||
|
||||
void BLV_Set_Authorize_Status(uint32_t Expires_time,uint8_t lock);
|
||||
void BLV_Authorize_Processing(uint32_t utc_time);
|
||||
void Set_Authorize_Lock_Status(uint8_t state);
|
||||
uint8_t Get_Authorize_Lock_Status(void);
|
||||
uint32_t Get_Authorize_UnixTime(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user