实验19 工程休眠设置

1. 实验目的

  • 通过修改与休眠相关的系统变量,使工程实现不同设置的休眠状态

  • 介绍休眠相关的电气参数

2. 电气参数

G系列支持深度休眠(关闭背光,MCU进入休眠)与普通休眠,S系列仅支持普通休眠(关闭背光)

G系列(电阻触摸或无触摸)

尺寸

普通休眠功率

深度休眠功率

正常工作功率

2.4

0.16W

0.03W

0.45W

2.8

0.16W

0.03W

0.45W

3.2

0.18W

0.025W

0.6W

3.5

0.15W

0.015W

0.65W

S系列(电阻触摸)

尺寸

普通休眠功率

正常工作功率

4.3

1.1W

1.6W

7

1.25W

2.6W

3. 休眠系统变量介绍

编号

变量名

说明

取值范围

4

sys_sleep

是否休眠(可读写)

0不休眠,1休眠

5

sys_slp_cls

休眠等级(可读写)

0为普通休眠(熄灭背光),1为深度休眠

6

sys_slp_nu

无串口数据自动睡眠时间(可读写)

单位:秒 0~255 0表示不睡眠

7

sys_slp_nt

无触摸操作自动睡眠时间 (可读写)

单位:秒 0~255 0表示不睡眠

8

sys_wup_bt

睡眠模式下触摸唤醒开关 (可读写)

0睡眠后触摸不会唤醒 1睡眠后触摸唤醒

9

sys_wup_bu

睡眠模式下串口数据唤醒开关 (可读写)

0睡眠后串口不会唤醒 1睡眠后串口唤醒

4. 页面布局

5. 控件介绍

控件名

属性

功能

t_slp

可见 双态按钮

休眠总开关,两种状态表示休眠和不休眠

t_slp_cla

可见 双态按钮

休眠等级,本例程默认普通休眠

t_slp_typ

可见 双态按钮

休眠类型,双态按钮分辨表示触摸和数据休眠

num_time

可见 整数控件

显示自动休眠的时间单位(秒)

butto_comfirm

可见 按钮

确认按钮,确认休眠设置

button_recover

可见 按钮

回复默认状态按钮,按下恢复默认设置

button_setdefault

可见 按钮

将当设置设为默认设置

keyboard10

可见 键盘

键盘输入自动休眠时间

arr_slp

不可见 数组

数组用来缓存设置的参数

arr_default

不可见 数组

数组用来缓存默认设置的参数

slg_flag

不可见 变量

初始化标记变量,标记页面加载事件只执行一次

6. 逻辑实现

6.1. 页面加载事件,初始化数组

脚本如下:

sys_slp_cls=0;//初始化睡眠等级为普通休眠

//初始化数组
//arr_slp[4]   此数组用来缓存控件修改的休眠数据,每一位表示一个相关参数
if(slg_flag.val==0)
{
	//数据数组
	arr_slp.vals[0]=0;//休眠等级 0普通休眠  1深度休眠
	arr_slp.vals[1]=1;//触摸唤醒开关  0关   1开
	arr_slp.vals[2]=0;//串口数据唤醒开关 0关  1开
	arr_slp.vals[3]=120;//自动睡眠时间1-255单位 秒 为零时表示不睡眠
	
	//默认状态数据缓存数组
	//此数组用来缓存默认休眠数据,每一位表示一个相关参数
	arr_default.vals[0]=0;//休眠等级 0普通休眠  1深度休眠
	arr_default.vals[1]=1;//触摸唤醒开关  0关   1开
	arr_default.vals[2]=0;//串口数据唤醒开关 0关  1开
	arr_default.vals[3]=120;//自动睡眠时间1-255单位 秒 为零时表示不睡眠
	slg_flag.val=1;
}

6.2. 休眠开关,设置是否休眠(双态按钮)

脚本如下

按下事件:

//可以休眠
//设置控件使能开启
//t_slp_cla.enable=1;//S系列不支持深度休眠
t_slp_typ.enable=1;
button_comfirm.enable=1;
button_recover.enable=1;
button_setdefault.enable=1;
num_time.opacity=100;

弹起事件:

//关闭休眠时其他控件使能关闭
//关闭休眠
//设置控件使能关闭
sys_wup_bt=0;
sys_wup_bu=0;
arr_slp.vals[1]=0;
arr_slp.vals[2]=0;
//t_slp_cla.enable=0;
t_slp_typ.enable=0;
button_comfirm.enable=0;
button_recover.enable=0;
button_setdefault.enable=0;
num_time.opacity=30;
num_time.fontColor=0xff000000;

6.3. 休眠等级,设置休眠等级(双态按钮)

此工程为S系列工程不支持深度休眠,此处脚本可以适用于G系列

脚本如下

按下事件:

arr_slp.vals[0]=0;//休眠等级普通
//仅G系列支持深度休眠,S系列只支持普通休眠

弹起事件:

arr_slp.vals[0]=1;//休眠等级为深度休眠
//仅G系列支持深度休眠,S系列支持普通休眠

6.4. 休眠类型,设置休眠类型 触摸或者数据(双态按钮)

脚本如下

按下事件:

//按下 触摸唤醒开关为关闭状态,串口数据唤醒开关为开
arr_slp.vals[1]=0;
arr_slp.vals[2]=1;

弹起事件

//按下 触摸唤醒开关为关闭状态,串口数据唤醒开关为开
arr_slp.vals[1]=0;
arr_slp.vals[2]=1;

6.5. 休眠时间,设置自动休眠事件(整数,键盘)

整数控件调出键盘,键盘上输入自动休眠时间

整数控件脚本:

if(t_slp.press==1)//休眠状态开启时可以输入
	keyboard10.x=180;//调用键盘

键盘控件脚本如下:

输入完成

num_time.val=stringToInt(keyboard10.txt);//将键盘输入值赋值给显示控件

if(num_time.val<1)
{
	num_time.val=1;
}
else if(num_time.val>255)
{
	num_time.val=255;
}//自动休眠是时长为0-255,当为0时不睡眠,此处排除这种情况

arr_slp.vals[3]=num_time.val;//将正确输入的自动休眠时长赋值给数据对应位置
keyboard10.txt="";//清空键盘内容
keyboard10.x=810;//隐藏键盘

输入取消

keyboard10.txt="";//清空键盘内容
keyboard10.x=810;//隐藏键盘

6.6. 确认修改(按钮)

将缓存设置数据的数组赋值给系统变量

脚本如下:


//按下确认,将数组值赋值给休眠相关的各系统变量,确认修改

//设置休眠等级
//if(arr_slp.vals[0]==0)//仅G系列支持普通休眠和深度休眠切换,S系列只支持普通休眠
//{
//	sys_slp_cls=0;
//}
//else
//{
//	sys_slp_cls=1;
//}

//设置休眠类型和时间
if(arr_slp.vals[1]==1&&arr_slp.vals[2]==0)//设置休眠类型为触摸唤醒,设置无触摸自动休眠时间
{
	sys_wup_bt=1;//开启触摸唤醒
	sys_wup_bu=0;//关闭数据唤醒
	sys_slp_nt=arr_slp.vals[3];//设置触摸自动休眠时长为数组缓存值
}
else if(arr_slp.vals[1]==0&&arr_slp.vals[2]==1)//设置休眠类型为数据唤醒,设置无数据自动休眠时间
{
	sys_wup_bt=0;//关闭触摸唤醒
	sys_wup_bu=1;//开机数据唤醒
	sys_slp_nu=arr_slp.vals[3];//设置无数据自动休眠时长为数组缓存值
}

num_time.fontColor=0xffff0000;//将时间显示的字体颜色设为红色//表示设置完成

6.7. 恢复默认(按钮)

按下按钮恢复默认设置

脚本如下:

//按下恢复默认,将默认设置数组值赋值给休眠相关的各系统变量,确认修改
//设置休眠等级,S系列不支持修改,仅支持普通休眠,G系列支持深度休眠

//if(arr_default.vals[0]==0)
//{
//	sys_slp_cls=0;
//	t_slp_cla.press=1;
//}
//else
//{
//	sys_slp_cls=1;
//	t_slp_cla.press=0;
//}
//根据默认状态数据数组,设置休眠类型和时间

if(arr_default.vals[1]==1&&arr_default.vals[2]==0)//设置休眠类型为触摸唤醒,设置无触摸自动休眠时间
{
	sys_wup_bt=1;
	sys_wup_bu=0;
	sys_slp_nt=arr_default.vals[3];
	num_time.val=arr_default.vals[3];
	t_slp_typ.press=0;//反馈休眠类型双态按钮的状态
}
else if(arr_default.vals[1]==0&&arr_default.vals[2]==1)
{
	sys_wup_bt=0;
	sys_wup_bu=1;
	sys_slp_nu=arr_default.vals[3];
	num_time.val=arr_default.vals[3];
	t_slp_typ.press=1;
}

num_time.fontColor=0xffff0000;//时间显示字体为红色表示处于休眠开启状态

6.8. 设为默认(按钮)

按下将目前设置的参数设为默认设置

脚本如下:

//arr_default.vals[0]=arr_slp.vals[0];

//将休眠的设置数据保存为默认设置;
arr_default.vals[1]=arr_slp.vals[1];
arr_default.vals[2]=arr_slp.vals[2];
arr_default.vals[3]=arr_slp.vals[3];

7. 实验结果

开启休眠,休眠类型改为触摸,自动休眠时间改成5,点击确定,五秒之后背光关,再次触摸背光亮;