Browse Source

feature:优化离床报警任务

weight-flt
Zhangwen 9 months ago
parent
commit
a3d1b5f138
  1. 837
      keilp/stcTTSS2_W5.uvguix.Administrator
  2. 44
      keilp/stcTTSS2_W5.uvoptx
  3. 54
      keilp/stcTTSS2_W5.uvprojx
  4. 2
      source/app/app_config.h
  5. 101
      source/app/task_bedalarm.c
  6. 12
      source/app/task_bedalarm.h
  7. 64
      source/app/task_screen.c
  8. 4
      source/app/task_screen.h

837
keilp/stcTTSS2_W5.uvguix.Administrator

File diff suppressed because one or more lines are too long

44
keilp/stcTTSS2_W5.uvoptx

@ -100,9 +100,6 @@
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>-1</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
@ -149,16 +146,6 @@
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
</TargetOption>
</Target>
@ -173,6 +160,7 @@
<FileNumber>1</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\app\app_weight.c</PathWithFileName>
@ -185,6 +173,7 @@
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\app\main.c</PathWithFileName>
@ -197,6 +186,7 @@
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\app\app_config.c</PathWithFileName>
@ -209,6 +199,7 @@
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\app\task_screen.c</PathWithFileName>
@ -220,7 +211,8 @@
<GroupNumber>1</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\app\app_screen_save.c</PathWithFileName>
@ -232,7 +224,8 @@
<GroupNumber>1</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\app\task_bedalarm.c</PathWithFileName>
@ -253,6 +246,7 @@
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\asp\asp_schain.c</PathWithFileName>
@ -265,6 +259,7 @@
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\asp\asp_lowpower.c</PathWithFileName>
@ -285,6 +280,7 @@
<FileNumber>9</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\cpu\STARTUP.A51</PathWithFileName>
@ -297,6 +293,7 @@
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\cpu\stc_8_delay.c</PathWithFileName>
@ -317,6 +314,7 @@
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\msp\uart\msp_uartN.c</PathWithFileName>
@ -329,6 +327,7 @@
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\msp\msp_time2.c</PathWithFileName>
@ -341,6 +340,7 @@
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\msp\uart\msp_uart1.c</PathWithFileName>
@ -353,6 +353,7 @@
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\msp\msp_iicMx.c</PathWithFileName>
@ -365,6 +366,7 @@
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\msp\msp_eeprom.c</PathWithFileName>
@ -377,6 +379,7 @@
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\msp\msp_adc.c</PathWithFileName>
@ -397,6 +400,7 @@
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\bsp\TTSSbsp\bsp_config.c</PathWithFileName>
@ -409,6 +413,7 @@
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\bsp\bsp_led.c</PathWithFileName>
@ -421,6 +426,7 @@
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\bsp\bsp_cs1232.c</PathWithFileName>
@ -441,6 +447,7 @@
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\ctask\TTSS_task.c</PathWithFileName>
@ -453,6 +460,7 @@
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\ctask\TTSS_tick.c</PathWithFileName>
@ -465,6 +473,7 @@
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\ctask\TTSS_time_stc.c</PathWithFileName>
@ -485,6 +494,7 @@
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\tpc\tpc_road.c</PathWithFileName>
@ -505,6 +515,7 @@
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\clib\c_lib.c</PathWithFileName>
@ -517,6 +528,7 @@
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\clib\c_delay.c</PathWithFileName>
@ -537,6 +549,7 @@
<FileNumber>26</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\debug\cc_as_stc01_main.ini</PathWithFileName>
@ -549,6 +562,7 @@
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>1</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\source\debug\debug_drv.c</PathWithFileName>

54
keilp/stcTTSS2_W5.uvprojx

@ -10,7 +10,6 @@
<TargetName>STC8H3K64S2</TargetName>
<ToolsetNumber>0x0</ToolsetNumber>
<ToolsetName>MCS-51</ToolsetName>
<uAC6>0</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>STC8H3K64S4 Series</Device>
@ -124,6 +123,47 @@
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
<Simulator>
<UseSimulator>1</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
<RestoreSysVw>1</RestoreSysVw>
</Simulator>
<Target>
<UseTarget>0</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>0</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>-1</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<Driver></Driver>
</TargetDlls>
</DebugOption>
<Utilities>
<Flash1>
@ -177,14 +217,12 @@
<Mx51P>0</Mx51P>
<hadXRAM2>0</hadXRAM2>
<uocXram2>0</uocXram2>
<hadXRAM3>0</hadXRAM3>
<ModC2>0</ModC2>
<ModH2>0</ModH2>
<Mdu_R515>0</Mdu_R515>
<Mdu_F120>0</Mdu_F120>
<Psoc>0</Psoc>
<hadIROM2>0</hadIROM2>
<hadIROM3>0</hadIROM3>
<ModSmx2>0</ModSmx2>
<cBanks>0</cBanks>
<xBanks>0</xBanks>
@ -254,16 +292,6 @@
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</IROM512>
<XRA513>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRA513>
<IROM513>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</IROM513>
</OnChipMemories>
</Target51Misc>
<C51>

2
source/app/app_config.h

@ -16,7 +16,7 @@
#define POWER_LOW 1
#define LeaveForbid_OPEN 1 //1 打开,0 不打开
#define LeaveForbid_OFF 0
#define LeaveForbid_OFF 0 //1 打开,0 不打开
// #define RFID_FREE_NO 0x00FA

101
source/app/task_bedalarm.c

@ -7,28 +7,102 @@
S_TASK_Bed_ALARM _s_task_bed_alarm;
// A5 5A 08 82 06 D3 01 00 00 FF 7D 清除报警图标
SCRSetPkg scrPkgAlarmClearPkg = {
0xA5, 0x5A,
0x08, //指令字节长度(不含帧头)
0x82, //指令
0x06, 0xD3, //变量存储地址
0x01, //数据字长度
0x00,0x00, // 数据内容
0xFF,0x7D, // CRC
};
//=============================================
void L3_task_bed_alarm_init(void)
{
L1_task_init(&_s_task_bed_alarm.task);
_s_task_bed_alarm.mode_flag = R.LeaveForbid_flag;
L3_task_s_go(_s_task_bed_alarm,D_task_init);
R.weight.differ = R.Weight_Ref - R.weight.kgx10_out;
}
#define D_task_ALARM_JUDGE 0x50
#define D_task_JUDGE 0x50
#define D_task_ALARM_DELETE 0x51
// _____beep-on_____模式开_____beep-off___
// 离床作为主体,beep为辅 _____模式关_____/ \____模式关___
void L3_task_bed_alarm_handler(S_TASK_Bed_ALARM *s)
{
TTSS_Task_init():
L2_task_go(D_task_ALARM_JUDGE);
//判定是否开启离床报警
// if(R.LeaveForbid_flag == LeaveForbid_OPEN)
// {
// R.weight.last = R.weight.kgx10_out * 10; //////应该在 按键按下时,就置标志位R.LeaveForbid_flag == LeaveForbid_OPEN和获取参考点位的重量。
// L2_task_go_Tdelay(D_task_WEIGHT_READ_AGAIN, D_Tdelay_100ms);
// }
L2_task_go(D_task_JUDGE);
//判定是否触发报警
TTSS_Task_step(D_task_ALARM_JUDGE):
TTSS_Task_step(D_task_JUDGE):
R.weight.differ = R.Weight_Ref - R.weight.kgx10_out;
//模式开启情况下,蜂鸣器不响的时候
if(R.LeaveForbid_flag == LeaveForbid_OPEN && R.beep == beep_off)
{
// 检测到体重变化超10kg
if( R.weight.differ > 50) // 50 5kg 100 10kg
{
R.beep = beep_on;
L0_uart1_str("Enter Alarm->");
L0_uart1_0d0a();
R.beep_startime = D_sys_now;
}
}
//模式开启情况下,蜂鸣器响的时候
if (R.LeaveForbid_flag == LeaveForbid_OPEN && R.beep == beep_on)
{
// 检测到时间超时
if (D_sys_now - R.beep_startime > D_COUNT_JIFFIES(30000))
{
R.beep = beep_off;
L0_uart1_str("Overtime!! Quit Alarm ->");
L0_uart1_0d0a();
R.Weight_Ref = 0;
R.beep_startime = 0;
R.LeaveForbid_flag = LeaveForbid_OFF;
//A5 5A 08 83 06 D3 01 00 00 FE AC解除报警时,清除图标
L1_uart1_Array((U8 *)&scrPkgAlarmClearPkg, sizeof(scrPkgAlarmClearPkg));
}
}
// 模式标志为关闭
if (R.LeaveForbid_flag == LeaveForbid_OFF)
{
// 而上一刻的是打开,说明是手动解除报警
if (_s_task_bed_alarm.mode_flag == LeaveForbid_OPEN)
{
if (R.beep == beep_on)
{
R.beep = beep_off;
L0_uart1_str("Manually dismiss! Quit Alarm ->");
}
L0_uart1_str("Manually dismiss mode!!");
L0_uart1_0d0a();
R.Weight_Ref = 0;
R.beep_startime = 0;
L1_uart1_Array((U8 *)&scrPkgAlarmClearPkg, sizeof(scrPkgAlarmClearPkg));
}
}
// 模式标志为打开
else if (R.LeaveForbid_flag == LeaveForbid_OPEN)
{
// 而上一刻的是关闭,说明是手动打开了模式
if (_s_task_bed_alarm.mode_flag == LeaveForbid_OFF)
{
R.Weight_Ref = tst_weight.kgx10;//记录下参考重量
L0_uart1_str("LeaveForbid_OPEN!!!");
L0_uart1_0d0a();
}
}
_s_task_bed_alarm.mode_flag = R.LeaveForbid_flag;
TTSS_Task_end();
}
/*
R.weight.differ = R.Weight_Ref - R.weight.kgx10_out;
if(R.LeaveForbid_flag == LeaveForbid_OPEN)
{ //触发报警 //取绝对值abs();
@ -52,7 +126,9 @@ void L3_task_bed_alarm_handler(S_TASK_Bed_ALARM *s)
//未触发报警
}
else
L2_task_go_Tdelay(D_task_ALARM_JUDGE, D_Tdelay_200ms);
{
L2_task_go_Tdelay(D_task_ALARM_JUDGE, D_Tdelay_200ms);
}
//判定是否解除报警
TTSS_Task_step(D_task_ALARM_DELETE):
@ -83,8 +159,7 @@ void L3_task_bed_alarm_handler(S_TASK_Bed_ALARM *s)
}
else
L2_task_go_Tdelay(D_task_ALARM_DELETE, D_Tdelay_200ms);
TTSS_Task_end();
}
* */

12
source/app/task_bedalarm.h

@ -18,10 +18,22 @@
#include "../clib/c_lib.h"
// #include "task_screen.h"
// A5 5A 08 82 06 D3 01 00 00 FF 7D
typedef struct
{
U8 head[2]; //A5 5A:帧头
U8 num; //08:指令字节长度,83 00 00 01 02 22 00 00共 8字节(不含帧头)
U8 cmd; //82:指令
U8 start_addr[2];//06 D3:变量存储器地址
U8 num_word; //01:数据字长度,02 22 共 1 字长
U8 Data[2]; //00 00:数据内容,设置的键值
U8 crc[2]; //FF 7D: CRC
} SCRSetPkg;
typedef struct _s_task_low_power
{
TS_task task;
U8 mode_flag;
}S_TASK_Bed_ALARM;
extern S_TASK_Bed_ALARM _s_task_bed_alarm;

64
source/app/task_screen.c

@ -75,8 +75,8 @@ SCRControlPkg scrBeepOnPkg = {
0xA5, 0x5A,
0x05, //长度
0x80, //指令
0x02, 0xC8, //数据
0x70, 0xDE, // CRC
0x02, 0x32, //数据
0xF0, 0x9D, // CRC
};
// A5 5A 08 82 07 A0 01 00 00 D8 39 清除图标0
@ -123,16 +123,16 @@ SCReturnPkg scrPkgIconYClearPkg = {
0xFC,0xA5, // CRC
};
// A5 5A 08 82 06 D3 01 00 00 FF 7D 清除报警图标
SCReturnPkg scrPkgAlarmClearPkg = {
0xA5, 0x5A,
0x08, //指令字节长度(不含帧头)
0x82, //指令
0x06, 0xD3, //变量存储地址
0x01, //数据字长度
0x00,0x00, // 数据内容
0xFF,0x7D, // CRC
};
// // A5 5A 08 82 06 D3 01 00 00 FF 7D 清除报警图标
// SCReturnPkg scrPkgAlarmClearPkg = {
// 0xA5, 0x5A,
// 0x08, //指令字节长度(不含帧头)
// 0x82, //指令
// 0x06, 0xD3, //变量存储地址
// 0x01, //数据字长度
// 0x00,0x00, // 数据内容
// 0xFF,0x7D, // CRC
// };
// A5 5A 08 82 06 D7 01 00 00 FE 4D 切换单位
SCReturnPkg scrPkgUnitSwitchPkg = {
@ -303,28 +303,28 @@ void parse_screen_pkg()
tst_weight.kgx10_zero = tst_weight.kgx10;
}
break;
case 0xD3://离床报警
if(R.LeaveForbid_flag != LeaveForbid_OPEN)
{
R.LeaveForbid_flag = LeaveForbid_OPEN; //按键按下时,就置标志位R.LeaveForbid_flag == LeaveForbid_OPEN和获取参考点位的重量。
R.Weight_Ref = tst_weight.kgx10; //参考重量 weight_ref = 当前重量
L0_uart1_str("LeaveForbid_OPEN!!!");
L0_uart1_0d0a();
}
else if (R.LeaveForbid_flag == LeaveForbid_OPEN)
{
R.LeaveForbid_flag = LeaveForbid_OFF;
//A5 5A 08 83 06 D3 01 00 00 FE AC手动解除报警时,清除图标
L1_uart1_Array((U8 *)&scrPkgAlarmClearPkg, sizeof(scrPkgAlarmClearPkg));
}
case 0xD3://离床报警
R.LeaveForbid_flag ^= 1;// R.LeaveForbid_flag = R.LeaveForbid_flag ^ 1;
// if(R.LeaveForbid_flag != LeaveForbid_OPEN)
// {
// R.LeaveForbid_flag = LeaveForbid_OPEN;
// L0_uart1_str("LeaveForbid_OPEN!!!");
// L0_uart1_0d0a();
// }
// else if(R.LeaveForbid_flag == LeaveForbid_OPEN)
// {
// R.LeaveForbid_flag = LeaveForbid_OFF;
// L0_uart1_str("LeaveForbid_OFF!!!");
// L0_uart1_0d0a();
// }
break;
case 0xD4://保存
if(p->Data[1] == 1)
{
// screen_save_push(tst_weight.kgx10);
screen_save_push(tst_weight.kgx10_out);
}
break;
if(p->Data[1] == 1)
{
// screen_save_push(tst_weight.kgx10);
screen_save_push(tst_weight.kgx10_out);
}
break;
case 0xD5://校准菜单按钮
// scrSetValPkg.buf.ui[1] = p->Data[1];
break;

4
source/app/task_screen.h

@ -66,8 +66,8 @@ typedef struct
// A5 5A 05 80 02 14 71 47 0.2s
extern SCRControlPkg scrBeepPowOnPkg;
// A5 5A 08 82 06 D3 01 00 00 FF 7D 清除报警图标
extern SCReturnPkg scrPkgAlarmClearPkg;
// // A5 5A 08 82 06 D3 01 00 00 FF 7D 清除报警图标
// extern SCReturnPkg scrPkgAlarmClearPkg;
// typedef struct _tpc_screen_
// {

Loading…
Cancel
Save