From 2c162b948f68bde8d17cb5e86d18a8972b5661f2 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期二, 22 七月 2025 18:18:05 +0800
Subject: [PATCH] 修改传aoa信息逻辑为读取指令发送时并且为自身id才给,取消发送区域显示逻辑,将信号质量改为角度置信度
---
keil/include/drivers/global_param.c | 202 +++++++++++++++++++++++++++++++-------------------
1 files changed, 125 insertions(+), 77 deletions(-)
diff --git a/keil/include/drivers/global_param.c b/keil/include/drivers/global_param.c
index 447af52..fc13ca0 100644
--- a/keil/include/drivers/global_param.c
+++ b/keil/include/drivers/global_param.c
@@ -3,9 +3,10 @@
//#include "dw_app.h"
#include <string.h>
#define FLASH_IAP_CTRL_MAP (uint32_t)0x0402E000 //the control map start address, 63K MK8000修改
-
-
-
+#define FLASH_Authorization_MAP (uint32_t)0x0402f000 //授权标签列表起始地址
+#define AUTHORIZATION_NUM 1024
+uint32_t tag_id_authorization_list[AUTHORIZATION_NUM];
+uint32_t tag_id_authorization_list_num;
uint16_t g_com_map[COM_MAP_SIZE];
uint8_t parameter_check(void)
{
@@ -37,94 +38,141 @@
}
uint32_t save_com_map_to_flash(void)
{
- uint32_t result = 0;
+ uint32_t result = 0;
if(parameter_check()) //参数错误,不保存
{
return 1;
}
- __disable_irq();
- //result = FLASH_Prepare(FLASH_IAP_CTRL_MAP, (COM_MAP_SIZE<<1));MK8000修改
- result=flash_open(FLASH_ID0,NULL);
- //MK8000没有对应函数
- if(!result){
- flash_erase(FLASH_ID0,FLASH_IAP_CTRL_MAP,FLASH_SECTOR_SIZE);
- flash_write_nbytes(FLASH_ID0, FLASH_IAP_CTRL_MAP, (const uint8_t*)g_com_map, sizeof(g_com_map));
- //result = FLASH_Write(FLASH_IAP_CTRL_MAP, (const uint8_t*)g_com_map, (COM_MAP_SIZE<<1));
- }
- //flash_close(FLASH_ID0);
- __enable_irq();
- return result;
+ __disable_irq();
+ //result = FLASH_Prepare(FLASH_IAP_CTRL_MAP, (COM_MAP_SIZE<<1));MK8000修改
+ result=flash_open(FLASH_ID0,NULL);
+ //MK8000没有对应函数
+ if(!result) {
+ flash_erase(FLASH_ID0,FLASH_IAP_CTRL_MAP,FLASH_SECTOR_SIZE);
+ flash_write_nbytes(FLASH_ID0, FLASH_IAP_CTRL_MAP, (const uint8_t*)g_com_map, sizeof(g_com_map));
+ }
+ //flash_close(FLASH_ID0);
+ __enable_irq();
+ return result;
}
-
+uint32_t save_taglist_map_to_flash(void)
+{
+ uint32_t result = 0;
+ if(parameter_check()) //参数错误,不保存
+ {
+ return 1;
+ }
+ __disable_irq();
+ //result = FLASH_Prepare(FLASH_IAP_CTRL_MAP, (COM_MAP_SIZE<<1));MK8000修改
+ result=flash_open(FLASH_ID0,NULL);
+ //MK8000没有对应函数
+ if(!result) {
+ flash_erase(FLASH_ID0,FLASH_Authorization_MAP,4*FLASH_SECTOR_SIZE);
+ flash_write_nbytes(FLASH_ID0, FLASH_Authorization_MAP, (const uint8_t*)tag_id_authorization_list, sizeof(tag_id_authorization_list));
+ //result = FLASH_Write(FLASH_IAP_CTRL_MAP, (const uint8_t*)g_com_map, (COM_MAP_SIZE<<1));
+ }
+ //flash_close(FLASH_ID0);
+ __enable_irq();
+ return result;
+}
void parameter_init(void)//注意看前面有没有关闭flash如果有则打开flash在读取,否则会出错
-{ flash_open(FLASH_ID0,NULL);
- //FLASH_Read(FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, (COM_MAP_SIZE<<1));MK8000修改
- flash_read(FLASH_ID0, FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, sizeof(g_com_map));
- if(g_com_map[0] != 0x55AA)//第一次没有任何数据的话就默认这个
- {
- g_com_map[0] = 0x55AA;
- g_com_map[DEV_ID] =0x1234;//DEFAULT_DEV_ID; //默认设备ID
+{ flash_open(FLASH_ID0,NULL);
+ //FLASH_Read(FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, (COM_MAP_SIZE<<1));MK8000修改
+ flash_read(FLASH_ID0, FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, sizeof(g_com_map));
+ if(g_com_map[0] != 0x55AA)//第一次没有任何数据的话就默认这个
+ {
+ g_com_map[0] = 0x55AA;
+ g_com_map[DEV_ID] =0x1234;//DEFAULT_DEV_ID; //默认设备ID
- g_com_map[COM_INTERVAL]=500; //频率2HZ
- g_com_map[MAX_REPORT_ANC_NUM]=10;
- g_com_map[GROUP_ID]=0;
- g_com_map[DIST_OFFSET]=-31;
-
- g_com_map[DEV_ROLE] =0x1; //标签
+ g_com_map[COM_INTERVAL]=200; //频率2HZ
+ g_com_map[MAX_REPORT_ANC_NUM]=10;
+ g_com_map[GROUP_ID]=0;
+ g_com_map[DIST_OFFSET]=-31;
-
- g_com_map[HEARTBEAT]=0;
-
- g_com_map[POWER]=67; //发射功率
- g_com_map[IMU_THRES]=2;
- g_com_map[NOMOVESLEEP_TIME]=120; //静止休眠2分钟
- g_com_map[MOTOR_ENABLE]=1; //震动电机使能
- g_com_map[IMU_ENABLE]=1; //静止休眠使能
-
- g_com_map[CNT_RESTART]=0;
- g_com_map[CNT_REBOOT]=0;
- g_com_map[CNT_UPDATE]=0;
- g_com_map[MODBUS_MODE]=0;
- g_com_map[ACTIVE_INDEX]=0;
- g_com_map[STATIONARY_TIME]=20; //静止判定时间20秒
+ g_com_map[DEV_ROLE] =0x1; //标签
+
+
+ g_com_map[HEARTBEAT]=0;
+
+ g_com_map[POWER]=67; //发射功率
+ g_com_map[IMU_THRES]=2;
+ g_com_map[NOMOVESLEEP_TIME]=120; //静止休眠2分钟
+ g_com_map[MOTOR_ENABLE]=1; //震动电机使能
+ g_com_map[IMU_ENABLE]=1; //静止休眠使能
+
+ g_com_map[CNT_RESTART]=0;
+ g_com_map[CNT_REBOOT]=0;
+ g_com_map[CNT_UPDATE]=0;
+ g_com_map[MOTOR_ONTIME_INDEX]=10;
+ g_com_map[NERA_FREQUENCY]=5;//默认切换到5hz将标签
+
+ g_com_map[TCP_IP_0]=0x111;
+ g_com_map[TCP_IP_0]=0x198;
+ g_com_map[TCP_IP_0]=0x60;
+ g_com_map[TCP_IP_0]=0x6;
+ g_com_map[TCP_IP_0]=1234;
+
g_com_map[HEIGHTOFFEST_INDEX]=0;
- save_com_map_to_flash();
- }
+ save_com_map_to_flash();
+ }
+
+
}
+uint32_t check_tag_id_authorization_list_num(void)
+{
+ uint32_t count = 0;
+
+ for (uint32_t i = 0; i < AUTHORIZATION_NUM; i++) {
+ if (tag_id_authorization_list[i] != 0xffffffff&&tag_id_authorization_list[i] != 0) {
+ count++;
+ }
+ }
+
+ return count;
+}
void parameter_init_anchor(void)
{
- flash_open(FLASH_ID0,NULL);
- //FLASH_Read(FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, (COM_MAP_SIZE<<1));MK8000修改
- flash_read(FLASH_ID0, FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, sizeof(g_com_map));
- if(g_com_map[0] != 0x55AA)//第一次没有任何数据的话就默认这个
- {
- g_com_map[0] = 0x55AA;
- g_com_map[DEV_ID] =0x1234;//DEFAULT_DEV_ID; //默认设备ID
+ flash_open(FLASH_ID0,NULL);
+ //FLASH_Read(FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, (COM_MAP_SIZE<<1));MK8000修改
+ flash_read(FLASH_ID0, FLASH_IAP_CTRL_MAP, (uint8_t*)&g_com_map, sizeof(g_com_map));
+ if(g_com_map[0] != 0x55AA)//第一次没有任何数据的话就默认这个
+ {
+ g_com_map[0] = 0x55AA;
+ g_com_map[DEV_ID] =0x1234;//DEFAULT_DEV_ID; //默认设备ID
- g_com_map[COM_INTERVAL]=500; //频率2HZ
- g_com_map[MAX_REPORT_ANC_NUM]=10;
- g_com_map[GROUP_ID]=0;
- g_com_map[DIST_OFFSET]=-31;
-
- g_com_map[DEV_ROLE] =0x0; //基站
+ g_com_map[COM_INTERVAL]=200; //频率2HZ
+ g_com_map[MAX_REPORT_ANC_NUM]=10;
+ g_com_map[GROUP_ID]=0;
+ g_com_map[DIST_OFFSET]=-31;
-
- g_com_map[HEARTBEAT]=0;
-
- g_com_map[POWER]=67; //发射功率
- g_com_map[IMU_THRES]=2;
- g_com_map[NOMOVESLEEP_TIME]=120; //静止休眠2分钟
- g_com_map[MOTOR_ENABLE]=1; //震动电机使能
- g_com_map[IMU_ENABLE]=1; //静止休眠使能
-
- g_com_map[CNT_RESTART]=0;
- g_com_map[CNT_REBOOT]=0;
- g_com_map[CNT_UPDATE]=0;
- g_com_map[MODBUS_MODE]=0;
- g_com_map[ACTIVE_INDEX]=0;
- g_com_map[STATIONARY_TIME]=20; //静止判定时间20秒
+ g_com_map[DEV_ROLE] =0x0; //基站
+
+
+ g_com_map[HEARTBEAT]=0;
+
+ g_com_map[POWER]=67; //发射功率
+ g_com_map[IMU_THRES]=2;
+ g_com_map[NOMOVESLEEP_TIME]=120; //静止休眠2分钟
+ g_com_map[MOTOR_ENABLE]=1; //震动电机使能
+ g_com_map[IMU_ENABLE]=1; //静止休眠使能
+
+ g_com_map[CNT_RESTART]=0;
+ g_com_map[CNT_REBOOT]=0;
+ g_com_map[CNT_UPDATE]=0;
+ g_com_map[MODBUS_MODE]=0;
+ g_com_map[NERA_FREQUENCY]=5;//默认切换到5hz将标签
+
+ g_com_map[TCP_IP_0]=0x111;
+ g_com_map[TCP_IP_1]=0x198;
+ g_com_map[TCP_IP_2]=0x60;
+ g_com_map[TCP_IP_3]=0x6;
+ g_com_map[TCP_PORT]=0x1234;
+
g_com_map[HEIGHTOFFEST_INDEX]=0;
- save_com_map_to_flash();
- }
+ save_com_map_to_flash();
+ }
+// //新增上电获取授权标签列表
+// flash_read(FLASH_ID0, FLASH_Authorization_MAP, (uint8_t*)&tag_id_authorization_list, sizeof(tag_id_authorization_list));//从flash中拿出来授权表
+// tag_id_authorization_list_num=check_tag_id_authorization_list_num();//获取实际有效长度减少轮训开销
}
\ No newline at end of file
--
Gitblit v1.9.3