yincheng.zhong
2025-04-01 40f12b7c8cc3d8f2d97be6693c0d00c49c866773
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include "beep_logic_app.h"
#include "led.h"
#include "beep.h"
#include "global_param.h"
#include "dw_app.h"
 
#define ONTIME1 1   // 100ms
#define OFFTIME1 0  // 100ms
 
#define ONTIME2 1   // 100ms
#define OFFTIME2 1  // 100ms
 
#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;
    int16_t i;
    //³ýUWBÖ®ÍâµÄÆäËû´úÂë...
    static uint16_t beep_judge_cnt = 0;
    if(beep_judge_cnt++ >= 100)
    {
        beep_judge_cnt = 0;
        min_dist=0x7fffff;
        for(i = 0; i < 255; i++)
        {
            if(g_Tagdist[i] < min_dist)
            {
                min_dist=g_Tagdist[i];
            }
 
        }
 
        if(min_dist <= g_com_map[ALARM_DISTANCE1])
        {
            beep_ontime = ONTIME1;
            beep_offtime = OFFTIME1;
            beep_state=1;
            RELAY1_ON;
            RELAY2_ON;
 
        }
        else if (min_dist <= g_com_map[ALARM_DISTANCE2])
        {
            beep_ontime = ONTIME2;
            beep_offtime = OFFTIME2;
            beep_state=1;
            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 (min_dist >= g_com_map[ALARM_DISTANCE1]+20)
        {
            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;
//            }
//        }
    }
}