zhyinch
2020-06-29 1ed0e9100899ee15b4f5da46ff5f65db79b1fdf7
Src/application/dw_app.c
@@ -294,6 +294,7 @@
u8 nearbase_num=0,last_nearbase_num,next_nearbase_num,last_slotnum;
u32 rec_tagpos_binary;
int16_t offset=2700;
u8 motor_state,rec_remotepara_state,rec_remotepara[30];
void NearPoll(void)
{
   
@@ -331,7 +332,7 @@
   flag_getresponse=0;
   start_count=HAL_LPTIM_ReadCounter(&hlptim1);
   recbase_num=0;
   timeout=ceil((float)nearbase_num*0.6)+20;
   timeout=ceil((float)nearbase_num*0.6)+2;
   end_count=start_count+(timeout<<5);
   if(end_count>=32768)
   {end_count-=32768;}
@@ -409,6 +410,8 @@
                           exsistbase_list[rec_nearbasepos]=KEEP_TIMES;
                           memcpy(&temp_dist,&rx_buffer[DIST_IDX],4);
                           nearbase_distlist[rec_nearbasepos]=temp_dist;
                           motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
                           rec_remotepara_state=rx_buffer[MOTORSTATE_INDEX]>>4;
                           
                           mainbase_lost_count=0;
                           flag_finalsend=1;
@@ -437,6 +440,17 @@
                           lastsync_timer=sync_timer;
                           offsettimeus=ancsync_time-current_count*LPTIMER_LSB+offset;
                           SetNextPollTime(tyncpoll_time);
                           if(rec_remotepara_state&&rec_remotepara_state!=g_com_map[REMOTEPARA_STATE])
                           {
                              g_com_map[REMOTEPARA_STATE]=rec_remotepara_state;
                              memcpy(rec_remotepara,&rx_buffer[REMOTEPARA_INDEX],REMOTEPARA_LEN);
                              memcpy(&g_com_map[COM_INTERVAL],&rec_remotepara[0],8);
                              memcpy(&g_com_map[POWER],&rec_remotepara[8],10);
                              save_com_map_to_flash();
                              delay_ms(100);
                              NVIC_SystemReset();
                           }
                           
                        //   count_offset=sync_count-current_count-143;
                        //   current_slottimes=(ancsync_time-10000)/(g_com_map[COM_INTERVAL]*1000);
@@ -471,6 +485,11 @@
                           memcpy(&temp_dist,&rx_buffer[DIST_IDX],4);
                           nearbase_distlist[rec_nearbasepos]=temp_dist;
                           
                           if(motor_state<rx_buffer[MOTORSTATE_INDEX]&&rx_buffer[MOTORSTATE_INDEX]!=3)
                           {
                                 motor_state=rx_buffer[MOTORSTATE_INDEX];
                           }
                           final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos)*4], resp_rx_ts);                        
                           dwt_writetxdata(28+nearbase_num*4, tx_near_msg, 0);//将发送数据写入DW1000
                           dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度