功能机实例
功能机实例代码太多调用,我就简单把编程思想写在下面吧
EVENT代表信号强度,有1 - 4 ,4个值
move代表手机在移动,移动的越远,信号越低
if(move)
{
switch(EVENT)
{
case 1:显示信号一格;break;
case 2:显示信号两格;break;
case 3:显示信号三格;break;
case 4:显示信号四格;break;
}
}
我现在要做的就是在每降一格信号的时候,发生报警提示,也就是下面这样
ant_fun()是报警音
if(move)
{
switch(EVENT)
{
case 1:显示信号一格;ant_fun();break;
case 2:显示信号两格;ant_fun();break;
case 3:显示信号三格;ant_fun();break;
case 4:显示信号四格;break;
}
}
但是现在问题出来了,因为这段代码在机器启动后一直在调用,所以一旦响起来了就会一直响,而且不分
减弱或者增强
后来我就试了试静态变量
static int i = 3;
因为这段代码一直在被调用,我就加上while(1)吧,改后如下
while(1)
{
static int i = 3;
if(move)
{
switch(EVENT)
{
case 1:
{
显示信号一格;
if(i == 1)
{
ant_fun();
i--;
}
break;
case 2:显示信号两格;
if(i == 2)
{
ant_fun();
i--;
}
break;
case 3:显示信号三格;
if(i == 3)
{
ant_fun();
i--;
}
break;
case 4:显示信号四格;break;
}
}
}
这样只会响一次,因为静态变量只能定义一次,所以下次调用这段代码就不会改变i的值,但还是有问题
,就是从4格信号到3格信号会响一次,而且只会响一次,后面信号增强到4格后,如果减弱到3格又不会响
了
能力有限,下面怎么改才完美呢,
这段代码对我而言的难点如下
1.这段代码是反复调用的,所以改不改铃声的函数都一样,只要铃声函数响,就必然在每次调用的时候都
一直响,这样也就不能实现例如只响一声或者两声的意义
2.信号减弱回响,但是信号恢复正常了,再减弱也要响,那就必须某个条件变量跟着节奏走,这个条件变
量怎么写呢?
忘高人前辈能花点时间不吝赐教!
万分感激!
如果我有表述不清的地方,无论严厉还是婉转的指出,我都会悉心改正!
我再CDSN也发帖了,这样没问题吧