1
yincheng.zhong
2023-02-07 34ed79bf13ca72335e5bfd0434668fbccf0b1744
Src/application/dw_app.c
@@ -766,7 +766,9 @@
//         tyncpoll_time = (tagslotpos--%max_slotpos)*slottime;
   }
}
extern float nomove_count;
uint8_t pack_length = 0,pack_index = 0,pack_msgtype = 0;
uint8_t motor_flag;
void NearPoll(void)
{
   
@@ -790,9 +792,15 @@
   recbase_num=0;
//   motor_state=0;
    if(motor_keeptime>0)
    {
        motor_flag = 1;
    }else{
        motor_flag = 0;
    }
   
   tx_near_msg[BATTARY_IDX] = bat_percent;
   tx_near_msg[BUTTON_IDX] = userkey_state|stationary_flag<<1|gotosleep_flag<<2;
   tx_near_msg[BUTTON_IDX] = userkey_state|stationary_flag<<1|gotosleep_flag<<2|motor_flag<<5;
   tx_near_msg[SEQUENCE_IDX] = frame_seq_nb;
  tx_near_msg[SEQUENCEH_IDX] = (frame_seq_nb++)>>8;
   tx_near_msg[NEARBASENUM_INDEX] = nearbase_num;
@@ -1025,11 +1033,12 @@
            {
               if( pack_index == MOTOR_ONTIME_INDEX)
               {
                        if(motor_keeptime==0)
                       // if(motor_keeptime==0)
                            motor_keeptime = rec_remotepara[3];
               }else{
                        if(pack_index<200)
                        {
                                       nomove_count = 0;
                            memcpy((uint8_t*)&g_com_map + pack_index, &rec_remotepara[3], pack_length);
                            //返回一个error状态
                            //SendComMap(pack_datalen,pack_index);
@@ -1085,7 +1094,7 @@
      dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//开启发送,发送完成后等待一段时间开启接收,等待时间在dwt_setrxaftertxdelay中设置
   while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//不断查询芯片状态直到成功接收或者发生错误
   { 
      IdleTask();
//      IdleTask();
      
   };
      if(status_reg==0xffffffff)
@@ -1156,7 +1165,7 @@
        IdleTask();   
        if(error_times++>20)
        {
            printf("DW ID ERROR.\r\n");
            //printf("DW ID ERROR.\r\n");
            SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
        }
    }
@@ -1185,8 +1194,8 @@
         break;
      case NEARPOLL:   
         NearPoll();
         GetPressAndHeight();
         intheight = Height*100;
      //   GetPressAndHeight();
         //intheight = Height*100;
         break;
        case SINGLEPOLL:
            Poll();