fix:修改UDP通讯中,取电变化上报机制

1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。
2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
This commit is contained in:
caocong
2026-01-23 09:23:12 +08:00
commit 95916b9995
622 changed files with 1336094 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
#include "data_save.h"
#include "stdlib.h"
DataFlash_Save_T dataFlash_save_t={
.flash_save_flg = 0, //<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
.flash_save_head = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
.bleName_len = 15, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.scanRspData = {
// complete name
0x10, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
'B',
'L',
'V',
'-',
'C',
'1',
' ',
'R',
'C',
'U',
':',
'8',
'8',
'8',
'8',
// connection interval range
0x05, // length of this data
GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ), // 100ms
HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),
LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ), // 1s
HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),
},
};
void DataFlash_Save_Init()
{
//DataFlash_Save_T save_t = {0};
PRINT("flash head:%X, %X\n", (*(uint8*)DATAFLASH_SAVE_START_ADDR & 3), *(uint8*)DATAFLASH_SAVE_START_ADDR);
if( (*(uint8*)DATAFLASH_SAVE_START_ADDR & 3) == FALSH_SAVE_HEAD) //<2F><>ͷ<EFBFBD><CDB7><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>flash<73><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
PRINT("Read flash\n");
memset(&dataFlash_save_t, 0, sizeof(DataFlash_Save_T));
memcpy((uint8*)&dataFlash_save_t, (uint8*)DATAFLASH_SAVE_START_ADDR, sizeof(DataFlash_Save_T));
PRINT("bleName_len:%d\n", dataFlash_save_t.bleName_len);
for(int i = 0; i< dataFlash_save_t.bleName_len ; i++)
{
PRINT("%c", (char)dataFlash_save_t.scanRspData[i+2]);
}
PRINT("\n");
}
else //<2F><>flashдĬ<D0B4>ϲ<EFBFBD><CFB2><EFBFBD>
{
dataFlash_save_t.flash_save_flg = 1;
}
}
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
void DataFlash_Save_Task()
{
if(dataFlash_save_t.flash_save_flg)
{
PRINT("Write flash\n");
dataFlash_save_t.flash_save_flg = 0;
dataFlash_save_t.flash_save_head = FALSH_SAVE_HEAD; //дͷ<D0B4><CDB7><EFBFBD><EFBFBD>
uint8 err = FlashBlockErase(DATAFLASH_SAVE_START_ADDR); //512<31><32><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>
if(err) PRINT("Erase flash err:%d\n", err);
int len = 0;
if( sizeof(DataFlash_Save_T) %4 != 0) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>ֽڶ<D6BD><DAB6><EFBFBD>
{
len = sizeof(DataFlash_Save_T) / 4 + 1;
}
else len = sizeof(DataFlash_Save_T) / 4;
// PRINT("buff size:%d\n", len);
uint32* buff = malloc(len);
if(buff == NULL) return;
for(int i = 0; i< len; i++)
{
buff[i] = 0x00000000;
}
memcpy((uint8*)buff, (uint8*)&dataFlash_save_t, sizeof(DataFlash_Save_T));
err = FlashWriteBuf(DATAFLASH_SAVE_START_ADDR, buff, len*4);
if(err) PRINT("Write flash err:%d\n", err);
free(buff);
}
}