keil/include/drivers/global_param.c
@@ -37,94 +37,106 @@
}
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));
        //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[ACTIVE_INDEX]=0;
        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();
    }
}
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]=150;
        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[ACTIVE_INDEX]=0;
        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();
    }
}