📄 glitter.c
字号:
#include "glitter.h"
xdata GLITTER_CONTROL glitterCon;
xdata SMSDISPLAY_CONTROL smsdisplayCon;
xdata SMSDISPLAY_CONTROL phoneRingCon;//电话超时
/***************************************
*初始化程序
***************************************/
void glitter_init()
{
glitterCon.status = GLITTER_NOUSE;
glitterCon.timeout = 0;
smsdisplayCon.status = GLITTER_NOUSE;
smsdisplayCon.timeout = 0;
phoneRingCon.status = GLITTER_NOUSE;
phoneRingCon.timeout = 0;
}
/***************************************
*开始闪烁,在需要闪烁的时候调用
***************************************/
void start_glitter()
{
glitterCon.status = GLITTER_WAITING;
glitterCon.timeout = GLITTER_TIMEOUT;
}
/***************************************
*停止闪烁,在不需要闪烁的时候调用
***************************************/
void stop_glitter()
{
glitterCon.status = GLITTER_NOUSE;
glitterCon.timeout = 0;
}
/***************************************
*获取当前闪烁状态
*返回值:GLITTER_WAITING(正在等待,表示1s的间隔没有到)
GLITTER_ACTION(1s间隔时间到,需要闪烁)
***************************************/
Byte get_glitter_status()
{
return glitterCon.status;
/* if (GLITTER_ACTION == glitterCon.status)
{
glitterCon.status = GLITTER_WAITING;
return GLITTER_ACTION;
}
else
{
return glitterCon.status;
}*/
}
/***************************************
*闪烁的计数处理
***************************************/
void glitter_timeout()
{
// if (GLITTER_NOUSE != glitterCon.status)
if (GLITTER_WAITING == glitterCon.status)
{
if (0 == glitterCon.timeout)
{
glitterCon.status = GLITTER_ACTION;
// glitterCon.timeout = GLITTER_TIMEOUT;
}
else
{
//>0
glitterCon.timeout--;
}
}
if (GLITTER_WAITING == smsdisplayCon.status)
{
if (0 == smsdisplayCon.timeout)
{
smsdisplayCon.status = GLITTER_ACTION;
}
else
{
smsdisplayCon.timeout--;
}
}
if (GLITTER_WAITING == phoneRingCon.status)
{
if (0 == phoneRingCon.timeout)
{
phoneRingCon.status = GLITTER_ACTION;
}
else
{
phoneRingCon.timeout--;
}
}
}
/***************************************
*在显示了短消息图标以后开始调用,每收到一个短消息以后都需要调用
***************************************/
void start_displaysms()
{
smsdisplayCon.status = GLITTER_WAITING;
smsdisplayCon.timeout = SMSDISPLAY_TIMEOUT;
}
/***************************************
*目前定为内部函数,停止短消息计数器工作
***************************************/
void stop_displaysms()
{
smsdisplayCon.status = GLITTER_NOUSE;
smsdisplayCon.timeout = 0;
}
/***************************************
*获取当前是否需要显示短消息图标
*返回值:GLITTER_WAITING(正在等待,表示1s的间隔没有到)
GLITTER_ACTION(1s间隔时间到,停止显示短消息图标)
***************************************/
Byte get_smsdisplay_status()
{
if (GLITTER_ACTION == smsdisplayCon.status)
{
stop_displaysms();
return GLITTER_ACTION;
}
else
{
return smsdisplayCon.status;
}
}
/******************************************
*每收到一个震铃消息需要调用此函数
******************************************/
void start_phonering()
{
phoneRingCon.status = GLITTER_WAITING;
phoneRingCon.timeout = PHONE_RING_TIMEOUT;
}
/*****************************************
*不需要震铃时调用此函数
******************************************/
void stop_phonering()
{
phoneRingCon.status = GLITTER_NOUSE;
phoneRingCon.timeout = 0;
}
/***************************************
*获取当前是否需要显示短消息图标
*返回值:GLITTER_WAITING(正在等待,表示1s的间隔没有到)
GLITTER_ACTION(1s间隔时间到,停止显示短消息图标)
***************************************/
Byte get_phonering_status()
{
if (GLITTER_ACTION == phoneRingCon.status)
{
stop_phonering();
return GLITTER_ACTION;
}
else
{
return phoneRingCon.status;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -