修复 App 语法报错与命名冲突,彻底在后台命令行成功编译生成 wristband.hex 固件

This commit is contained in:
Antigravity IDE
2026-07-17 09:41:29 +08:00
parent 32e48f0576
commit 7cbd83c40b
6 changed files with 73 additions and 42 deletions

View File

@@ -18,7 +18,7 @@ extern volatile bit alarm_flash_flag;
extern Sensor_Slot xdata sensor_list[16];
// 本地私有变量
static u32 alarm_timer_ms = 0; // 报警震动波形计数器
static u32 alarm_pulse_timer = 0; // 报警震动波形计数器
static u16 last_run_tick = 0; // 记录上一次轮询的 ticks
// 声明本应用的生命周期回调函数
@@ -47,7 +47,7 @@ static void AlarmApp_OnStart(void)
u8 zone = 1;
current_state = STATE_ALARM; // 系统切入报警状态
alarm_timer_ms = 0; // 振动计时器清零
alarm_pulse_timer = 0; // 振动计时器清零
last_run_tick = ms_tick;
// 比对查出当前触发警报的传感器在数据库中的属性
@@ -114,47 +114,47 @@ static void AlarmApp_onRun(void)
}
last_run_tick = ms_tick;
alarm_timer_ms += tick_diff;
if (alarm_timer_ms >= 5000) {
alarm_timer_ms = 0; // 5秒一周期
alarm_pulse_timer += tick_diff;
if (alarm_pulse_timer >= 5000) {
alarm_pulse_timer = 0; // 5秒一周期
}
if (type == 0) {
// 门磁警报波形:单次震动 300ms停 4700ms
if (alarm_timer_ms < 300) MOTOR = 1; else MOTOR = 0;
if (alarm_pulse_timer < 300) MOTOR = 1; else MOTOR = 0;
} else if (type == 1) {
// PIR 警报波形:震动 300ms停 200ms再震动 300ms停 4200ms
if (alarm_timer_ms < 300) MOTOR = 1;
else if (alarm_timer_ms >= 300 && alarm_timer_ms < 500) MOTOR = 0;
else if (alarm_timer_ms >= 500 && alarm_timer_ms < 800) MOTOR = 1;
if (alarm_pulse_timer < 300) MOTOR = 1;
else if (alarm_pulse_timer >= 300 && alarm_pulse_timer < 500) MOTOR = 0;
else if (alarm_pulse_timer >= 500 && alarm_pulse_timer < 800) MOTOR = 1;
else MOTOR = 0;
} else if (type == 2) {
// 烟感警报波形:急促短闪三下 200ms-150ms-200ms-150ms-200ms
if (alarm_timer_ms < 200) MOTOR = 1;
else if (alarm_timer_ms >= 200 && alarm_timer_ms < 350) MOTOR = 0;
else if (alarm_timer_ms >= 350 && alarm_timer_ms < 550) MOTOR = 1;
else if (alarm_timer_ms >= 550 && alarm_timer_ms < 700) MOTOR = 0;
else if (alarm_timer_ms >= 700 && alarm_timer_ms < 900) MOTOR = 1;
if (alarm_pulse_timer < 200) MOTOR = 1;
else if (alarm_pulse_timer >= 200 && alarm_pulse_timer < 350) MOTOR = 0;
else if (alarm_pulse_timer >= 350 && alarm_pulse_timer < 550) MOTOR = 1;
else if (alarm_pulse_timer >= 550 && alarm_pulse_timer < 700) MOTOR = 0;
else if (alarm_pulse_timer >= 700 && alarm_pulse_timer < 900) MOTOR = 1;
else MOTOR = 0;
} else if (type == 3) {
// 燃气报警波形:快频连续四下
if (alarm_timer_ms < 200) MOTOR = 1;
else if (alarm_timer_ms >= 200 && alarm_timer_ms < 300) MOTOR = 0;
else if (alarm_timer_ms >= 300 && alarm_timer_ms < 500) MOTOR = 1;
else if (alarm_timer_ms >= 500 && alarm_timer_ms < 600) MOTOR = 0;
else if (alarm_timer_ms >= 600 && alarm_timer_ms < 800) MOTOR = 1;
else if (alarm_timer_ms >= 800 && alarm_timer_ms < 900) MOTOR = 0;
else if (alarm_timer_ms >= 900 && alarm_timer_ms < 1100) MOTOR = 1;
if (alarm_pulse_timer < 200) MOTOR = 1;
else if (alarm_pulse_timer >= 200 && alarm_pulse_timer < 300) MOTOR = 0;
else if (alarm_pulse_timer >= 300 && alarm_pulse_timer < 500) MOTOR = 1;
else if (alarm_pulse_timer >= 500 && alarm_pulse_timer < 600) MOTOR = 0;
else if (alarm_pulse_timer >= 600 && alarm_pulse_timer < 800) MOTOR = 1;
else if (alarm_pulse_timer >= 800 && alarm_pulse_timer < 900) MOTOR = 0;
else if (alarm_pulse_timer >= 900 && alarm_pulse_timer < 1100) MOTOR = 1;
else MOTOR = 0;
} else if (type == 4) {
// 水浸警报波形:慢速双长震波 600ms 和 600ms
if (alarm_timer_ms < 600) MOTOR = 1;
else if (alarm_timer_ms >= 600 && alarm_timer_ms < 900) MOTOR = 0;
else if (alarm_timer_ms >= 900 && alarm_timer_ms < 1500) MOTOR = 1;
if (alarm_pulse_timer < 600) MOTOR = 1;
else if (alarm_pulse_timer >= 600 && alarm_pulse_timer < 900) MOTOR = 0;
else if (alarm_pulse_timer >= 900 && alarm_pulse_timer < 1500) MOTOR = 1;
else MOTOR = 0;
} else {
// 缺省状态默认单次 300ms
if (alarm_timer_ms < 300) MOTOR = 1; else MOTOR = 0;
if (alarm_pulse_timer < 300) MOTOR = 1; else MOTOR = 0;
}
}