zhyinch
2022-06-04 0f9a5a119401d9e08cefc4b9cb7f700988a69abe
Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -344,6 +344,7 @@
   tx_nearpoll_msg[BUTTON_IDX] = !READ_KEY0;
   tx_nearpoll_msg[SEQUENCE_IDX] = frame_seq_nb++;
   tx_nearpoll_msg[NEARBASENUM_INDEX] = nearbase_num;
   memcpy(&tx_nearpoll_msg[NEARBASEID_INDEX],&nearbaseid_list,nearbase_num*2);
    for(i=0;i<nearbase_num;i++)
    { memcpy(&tx_nearpoll_msg[NEARBASEID_INDEX+nearbase_num*2+i*2],&nearbase_distlist[i],2);}
@@ -437,6 +438,7 @@
                           }
                           TIM3->CNT=tmp_time;
                        }
                                    if(g_com_map[DEV_ROLE])
                           current_slotnum=temp_sync_timer1/g_com_map[COM_INTERVAL];
//                           if(tagslotpos>max_slotpos)
//                              tagslotpos=tagslotpos%(max_slotpos+1);
@@ -464,7 +466,7 @@
                           dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//将发送数据写入DW1000
                           dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度
                           memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4);
                        if(temp_dist!=0x1ffff&&g_com_map[ALARM_DISTANCE1] == 1)
                        if(temp_dist!=0x1ffff)
                           {
                              g_Resttimer=0;
                                        IWDG_Feed();
@@ -472,14 +474,10 @@
                              usart_send[2] = 1;//正常模式
                              usart_send[3] = 17;//数据段长度
                              usart_send[4] = frame_seq_nb;//数据段长度
                              if(g_com_map[DEV_ROLE])
                              {
                              memcpy(&usart_send[5],&dev_id,2);
                              memcpy(&usart_send[7],&rec_nearbaseid,2);      
                              }else{
                              memcpy(&usart_send[5],&rec_nearbaseid,2);
                              memcpy(&usart_send[7],&dev_id,2);
                              }
                              memcpy(&usart_send[9],&rx_buffer[DIST_IDX],4);
                              usart_send[13] = battary;
                              usart_send[14] = button;
@@ -516,20 +514,16 @@
                           LED0_BLINK;
//                           memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4);
//                           tagslotpos=GetRandomSlotPos(rec_tagpos_binary);
                           if(temp_dist!=0x1ffff&&g_com_map[ALARM_DISTANCE1] == 1)
                           if(temp_dist!=0x1ffff)
                           {
                              #ifdef USART_SINGLE_OUTPUT
                              usart_send[2] = 1;//正常模式
                              usart_send[3] = 17;//数据段长度
                              usart_send[4] = frame_seq_nb;//数据段长度
                              if(g_com_map[DEV_ROLE])
                              {
                              memcpy(&usart_send[5],&dev_id,2);
                              memcpy(&usart_send[7],&rec_nearbaseid,2);
                              }else{
                              memcpy(&usart_send[5],&rec_nearbaseid,2);
                              memcpy(&usart_send[7],&dev_id,2);   
                              }
                              memcpy(&usart_send[9],&rx_buffer[DIST_IDX],4);
                              usart_send[13] = battary;
                              usart_send[14] = button;
@@ -891,8 +885,9 @@
         }else{
            memcpy(&tx_nearresp_msg[DIST_IDX], &tagdist_list[taglist_pos], 4);
         }
         if(tagdist_list[taglist_pos]<g_com_map[ALARM_DISTANCE1]||tagdist_list[taglist_pos]==0)
         motorstate =0;
            if(tagdist_list[taglist_pos]<g_com_map[ALARM_DISTANCE1]||tagdist_list[taglist_pos]==0)
         {
            motorstate =0;
         }else if(tagdist_list[taglist_pos]<g_com_map[ALARM_DISTANCE2])
@@ -909,22 +904,21 @@
               }else{
               motorstate =0;
            }
         }else{
            motorstate =0;
         }
      tx_nearresp_msg[GROUP_ID_IDX] = group_id;
            tx_nearresp_msg[GROUP_ID_IDX] = group_id;
         tx_nearresp_msg[MAINBASE_INDEX]=flag_syncbase;
         tx_nearresp_msg[MESSAGE_TYPE_IDX]=NEAR_RESPONSE;
         tx_nearresp_msg[MOTORSTATE_INDEX]=(remotesend_state<<4)|motorstate;
         if(remotesend_state)
         {
             memcpy(&tx_nearresp_msg[REMOTEPARA_INDEX],remotetag_para,REMOTEPARA_LEN);
            dwt_writetxdata(22+REMOTEPARA_LEN, tx_nearresp_msg, 0);//写入发送数据
            dwt_writetxfctrl(22+REMOTEPARA_LEN, 0);//设定发送长度
         }else{
         dwt_writetxdata(22, tx_nearresp_msg, 0);//写入发送数据
         dwt_writetxfctrl(22, 0);//设定发送长度
         }
         tx_nearresp_msg[MOTORSTATE_INDEX]=motorstate;//(remotesend_state<<4)|motorstate;
         tx_nearresp_msg[MOTORSTATE_INDEX]&=0x0f;
//         if(remotesend_state)
//         {
//             memcpy(&tx_nearresp_msg[REMOTEPARA_INDEX],remotetag_para,REMOTEPARA_LEN);
//            dwt_writetxdata(22+REMOTEPARA_LEN, tx_nearresp_msg, 0);//写入发送数据
//            dwt_writetxfctrl(22+REMOTEPARA_LEN, 0);//设定发送长度
//         }else{
         dwt_writetxdata(24, tx_nearresp_msg, 0);//写入发送数据
         dwt_writetxfctrl(24, 0);//设定发送长度
      //   }
         result = dwt_starttx(DWT_START_TX_DELAYED | DWT_RESPONSE_EXPECTED);//延迟发送,等待接收
         
@@ -1016,7 +1010,7 @@
                  {
                            g_Tagdist[taglist_pos]=hex_dist/10;   
                        }else{
                            g_Tagdist[taglist_pos]= 999999;
                            g_Tagdist[taglist_pos]= 0x2ffff;
                        }
            #ifdef USART_SINGLE_OUTPUT
               usart_send[2] = 1;//正常模式 
@@ -1025,7 +1019,7 @@
               memcpy(&usart_send[5],&tag_id_recv,2);
               memcpy(&usart_send[7],&dev_id,2);         
                            if(tagdist_list[taglist_pos]<=0)
                                tagdist_list[taglist_pos]=999999;
                                tagdist_list[taglist_pos]=0x2ffff;
               memcpy(&usart_send[9],&tagdist_list[taglist_pos],4);
               usart_send[13] = battary;
               usart_send[14] = button;
@@ -1142,7 +1136,7 @@
            memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2);
                memcpy(&rec_ancidlist,&rx_buffer[NEARBASEID_INDEX],2*rec_nearbase_num);
                memcpy(&rec_ancdistlist,&rx_buffer[NEARBASEID_INDEX+2*rec_nearbase_num],2*rec_nearbase_num);
                memcpy(&rec_antdelay,&rx_buffer[NEARBASEID_INDEX+nearbase_num*4],2);
                memcpy(&rec_antdelay,&rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*4],2);
            #ifdef USART_ALL_OUTPUT
                    usart_send[2] = 0x0c;//正常模式 
               usart_send[3] = 8+rec_nearbase_num*4;//数据段长度