zhyinch
2022-02-17 af4710835316cb2fd8dd70db7867e23147206f31
Ô´Âë/ºËÐİå/Src/application/beep_logic_app.c
@@ -12,16 +12,17 @@
#define ONTIME3 1   // 500ms
#define OFFTIME3 5  // 500ms
int32_t min_dist;
void main_logic(void)   //主逻辑在这里执行
{
   static uint8_t beep_state,timer_state,beep_timer,beep_ontime,beep_offtime;
   uint16_t i, min_dist;
   int16_t i;
   //除UWB之外的其他代码...
   static uint16_t beep_judge_cnt = 0;
   if(beep_judge_cnt++ >= 100)
   {   
      beep_judge_cnt = 0;
      min_dist=0xffff;
      min_dist=0x7fffff;
      for(i = 0; i < 255;i++)
      {
         if(g_Tagdist[i] < min_dist)
@@ -36,99 +37,116 @@
         beep_ontime = ONTIME1;
         beep_offtime = OFFTIME1;
         beep_state=1;
      }else if (min_dist <= g_com_map[ALARM_DISTANCE2])
         RELAY1_ON;
         RELAY2_ON;
      }
      else if (min_dist <= g_com_map[ALARM_DISTANCE2])
      {
         beep_ontime = ONTIME2;
         beep_offtime = OFFTIME2;
         beep_state=1;
      }else if (min_dist <= g_com_map[ALARM_DISTANCE3])
      {
         beep_ontime = ONTIME3;
         beep_offtime = OFFTIME3;
         beep_state=1;
      }else{
         RELAY2_ON;
      }
      //else if (min_dist <= g_com_map[ALARM_DISTANCE3])
//      {
//         beep_ontime = ONTIME3;
//         beep_offtime = OFFTIME3;
//         beep_state=1;
//      }
      else{
         beep_state=0;
      }
      if(beep_state==1)
      if (min_dist >= g_com_map[ALARM_DISTANCE1]+20)
      {
         if(timer_state==1)
         {
            if(beep_timer++ < beep_ontime)
            {
               switch(g_com_map[ALARM_DEV])
                     {
                        case 0:
                           BEEP2_ON;
                           BEEP_OFF;
                           OUT2_OFF;
                           break;
                        case 1:
                           BEEP_ON;
                           BEEP2_OFF;
                           OUT2_OFF;
                           break;
                        case 2:
                           OUT2_ON;
                           BEEP_OFF;
                           BEEP2_OFF;
                           break;
                        default:
                           BEEP2_ON;
                           BEEP_ON;
                           OUT2_ON;
                           break;
                     }
            }else{
               timer_state=0;
               beep_timer=0;
            }
         }else{
             if(beep_timer++ < beep_offtime)
               {
                  switch(g_com_map[ALARM_DEV])
                     {
                        case 0:
                           BEEP2_OFF;
                           break;
                        case 1:
                           BEEP_OFF;
                           break;
                        case 2:
                           OUT2_OFF;
                           break;
                        default:
                           BEEP2_OFF;
                           BEEP_OFF;
                           OUT2_OFF;
                           break;
                     }
               }else{
                     timer_state=1;
                     beep_timer=0;
               }
         }
      }   else {
         switch(g_com_map[ALARM_DEV])
         {
            case 0:
               BEEP2_OFF;
               break;
            case 1:
               BEEP_OFF;
               break;
            case 2:
               OUT2_OFF;
               break;
            default:
               BEEP2_OFF;
               BEEP_OFF;
               OUT2_OFF;
               break;
         }
         RELAY1_OFF;
      }
      if (min_dist >= g_com_map[ALARM_DISTANCE2]+20)
      {
         RELAY2_OFF;
      }
//
//      if(beep_state==1)
//      {
//         if(timer_state==1)
//         {
//            if(beep_timer++ < beep_ontime)
//            {
//               switch(g_com_map[ALARM_DEV])
//                     {
//                        case 0:
//                           BEEP2_ON;
//                           BEEP_OFF;
//                           OUT2_OFF;
//                           break;
//                        case 1:
//                           BEEP_ON;
//                           BEEP2_OFF;
//                           OUT2_OFF;
//                           break;
//                        case 2:
//                           OUT2_ON;
//                           BEEP_OFF;
//                           BEEP2_OFF;
//                           break;
//                        default:
//                           BEEP2_ON;
//                           BEEP_ON;
//                           OUT2_ON;
//                           break;
//                     }
//            }else{
//               timer_state=0;
//               beep_timer=0;
//            }
//         }else{
//             if(beep_timer++ < beep_offtime)
//               {
//                  switch(g_com_map[ALARM_DEV])
//                     {
//                        case 0:
//                           BEEP2_OFF;
//                           break;
//                        case 1:
//                           BEEP_OFF;
//                           break;
//                        case 2:
//                           OUT2_OFF;
//                           break;
//                        default:
//                           BEEP2_OFF;
//                           BEEP_OFF;
//                           OUT2_OFF;
//                           break;
//                     }
//               }else{
//                     timer_state=1;
//                     beep_timer=0;
//               }
//
//         }
//
//      }   else {
//         switch(g_com_map[ALARM_DEV])
//         {
//            case 0:
//               BEEP2_OFF;
//               break;
//            case 1:
//               BEEP_OFF;
//               break;
//            case 2:
//               OUT2_OFF;
//               break;
//            default:
//               BEEP2_OFF;
//               BEEP_OFF;
//               OUT2_OFF;
//               break;
//         }
//      }
   }
}