📄 dvs-funset.c
字号:
{
case 1: luc_SData = luc_Buf[0]; break;
case 2: luc_SData = luc_Buf[0]*10+luc_Buf[1]; break;
case 3: luc_SData = luc_Buf[0]*100+luc_Buf[1]*10+luc_Buf[2]; break;
}
return luc_SData;
}
}
break;
}
else if(luc_data!=0) FailBuzzer(); //设置失败时发出的声音
}
return 0;
}
//============================================================================================
//语法格式:SetGogeTiw()
//实现功能:设置共同的两次设置
//参数: 无
//返回值: 执行1或10,设置失败0
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
unsigned char SetGogeTiw()
{
unsigned char data luc_data;
unsigned char data luc_temp;
while(1)
{
if(guc_Timer0 == 0) break;
luc_data = DTMF();
if(luc_data==0x0c)
{
SuccBuzzer(); //设置成功时发出的声音
while(1)
{
luc_data = DTMF();
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
if((luc_data == 10)||(luc_data == 1))
{
luc_temp = luc_data;
SuccBuzzer(); //设置成功时发出的声音
while(1)
{
luc_data = DTMF();
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
if(luc_data ==0x0c)
{
return luc_temp;
}
else if(luc_data!=0) FailBuzzer(); //设置失败时发出的声音
}
break;
}
else if(luc_data!=0) FailBuzzer(); //设置失败时发出的声音
}
break;
}
else if(luc_data!=0) FailBuzzer(); //设置失败时发出的声音
}
return 0 ;
}
//============================================================================================
//语法格式:SetRingCnt()
//实现功能:设置振铃次数
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void SetRingCnt()
{
unsigned char data luc_SData;
luc_SData = SetTiGoge() ;
if((2<=luc_SData)&&(luc_SData<=10))
{
SuccBuzzer(); //设置成功时发出的声音
WrEEPROM(Ring_Cnt_Addr,luc_SData);
}
else FailBuzzer(); //设置失败时发出的声音
}
//============================================================================================
//语法格式:SetAlarTI()
//实现功能:设置警笛声时间
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void SetAlarTI()
{
unsigned char data luc_SData;
luc_SData = SetTiGoge() ;
if((0<luc_SData)&&(luc_SData<=99))
{
SuccBuzzer(); //设置成功时发出的声音
WrEEPROM(Alar_TI_Addr,luc_SData); //保存到EEPROM里
judgeRAYTC(SET_COM_WAR_TIME,1,&luc_SData); //发送到网络模块
}
else FailBuzzer(); //设置失败时发出的声音
}
//============================================================================================
//语法格式:SetDialOF()
//实现功能:设置拔号开关
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void SetDialOF()
{
unsigned char data luc_temp;
luc_temp = SetGogeTiw();
if(luc_temp!=0)
{
switch(luc_temp)
{
case 10:guc_bitbhOF = 0; break; //拔号开关关
case 1: guc_bitbhOF = 1; break; //拔号开关开
default:break;
}
SuccBuzzer(); //设置成功时发出的声音
}
else FailBuzzer(); //设置失败时发出的声音
}
//============================================================================================
//语法格式:SetOnLineAlar()
//实现功能:设置断线报警
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void SetOnLineAlar()
{
unsigned char data luc_temp;
luc_temp = SetGogeTiw();
if(luc_temp!=0)
{
switch(luc_temp)
{
case 10:guc_bitLineOFAlar = 0; break; //断线报警关闭
case 1: guc_bitLineOFAlar = 1; break; //断线报警打开
default:break;
}
SuccBuzzer(); //设置成功时发出的声音
}
else FailBuzzer(); //设置失败时发出的声音
}
//============================================================================================
//语法格式:SetBuChe()
//实现功能:设置布撤防
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void SetBuChe()
{
unsigned char data luc_temp;
luc_temp = SetGogeTiw();
if(luc_temp!=0)
{
switch(luc_temp)
{
case 10:CheFanDis(); break; //撤防
case 1: BuFanDis(); break; //布防
default:break;
}
SuccBuzzer(); //设置成功时发出的声音
}
else FailBuzzer(); //设置失败时发出的声音
}
//============================================================================================
//语法格式:Greek_Listen_Ctrl()
//实现功能:现场监听控制
//参数: 无
//返回值: 无
//创建时间:2008-12-29 修改时间:
//创建人员: 修改人员:
//============================================================================================
void Greek_Listen_Ctrl()
{
Listen_CTRL = 1; //打开现场监听
guc_Timer0 = 32 * 30; //30秒没有按任何键则退出
while(1)
{
if(DTMF()==0x0c) break; //以"#"键确定
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
}
guc_Timer0 = 0;
Listen_CTRL = 0; //关闭现场监听
}
//============================================================================================
//语法格式:User_REC_End()
//实现功能:用户录音
//参数: 无
//返回值: 无
//创建时间:2009-02-10 修改时间:
//创建人员: 修改人员:
//============================================================================================
void User_REC_Enad() //用户录音
{
bit luc_bit;
SuccBuzzer(); //设置成功时发出的声音
luc_bit = ALARM_LED;
ALARM_LED = 0; //设置灯点亮
REC_Enabled = 0; //录音打开
Delay1Ms(1000*7); //延时10秒
REC_Enabled = 1; //录音关闭
ALARM_LED = luc_bit; //恢复设置灯
SuccBuzzer(); //设置成功时发出的声音
}
//============================================================================================
//语法格式:Fun_SET()
//实现功能:功能设置
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void Fun_SET()
{
unsigned char data luc_data; //DTMF解码数据
while(1)
{
luc_data = DTMF();
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
if((0<luc_data)&&(luc_data<10))
{
SuccBuzzer(); //设置成功时发出的声音
switch(luc_data)
{
case PHONE_CODE : SavePhontCode(); break; //设置保存电话号码
case SET_PASS : SetPass(); break; //设置密码
case SET_RING_CNT : SetRingCnt(); break; //设置振铃次数
case SET_DIAL_OF : SetDialOF(); break; //设置拔号的开关
case SET_ALAR_TI : SetAlarTI(); break; //设置警笛声时间
case SET_ONLINE_ALAR: SetOnLineAlar(); break; //设置断线报警
case SET_BUCHE : SetBuChe(); break; //设置布撤防
case DE_LISTEN : Greek_Listen_Ctrl();break; //现场监听
case USER_REC_ENAD : User_REC_Enad(); break; //用户录音
default:break;
}
break;
}
else if(luc_data!=0) FailBuzzer(); //设置失败时发出的声音
}
}
//============================================================================================
//语法格式:RstInit2()
//实现功能:工厂复位第2次比较数据
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void RstInit2()
{
unsigned char data luc_i;
unsigned char data luc_data; //DTMF解码数据
unsigned char data luc_DataLen = 0; //DTMF解码数据长度
unsigned char data luc_Buf[5];
bit bit_ok;
while(1)
{
luc_data = DTMF();
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
if((0<luc_data)&&(luc_data<=10))
{
if(luc_data==10)luc_data = 0;
luc_Buf[luc_DataLen++] = luc_data;
}
if(luc_data==0x0b) luc_DataLen = 0; //"*"键重新输入
if(luc_data==0x0c) //以"#"键确定
{
for(luc_i = 0 ; luc_i < 4; luc_i++)
{
if(luc_Buf[luc_i] == Rst_Tab2[luc_i]) bit_ok = 1;
else
{
bit_ok = 0 ;
break;
}
}
if(bit_ok)
{
SuccBuzzer(); //设置成功时发出的声音
SaveInit(); //保存初始化的值
}
break;
}
}
}
//============================================================================================
//语法格式:RstInit()
//实现功能:工厂复位第1次比较数据
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void RstInit()
{
unsigned char data luc_i;
unsigned char data luc_data; //DTMF解码数据
unsigned char data luc_DataLen = 0; //DTMF解码数据长度
unsigned char data luc_Buf[4];
bit bit_ok;
while(1)
{
luc_data = DTMF();
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
if((0<luc_data)&&(luc_data<=10))
{
if(luc_data==10)luc_data = 0;
luc_Buf[luc_DataLen++] = luc_data;
}
if(luc_data==0x0b) luc_DataLen = 0; //"*"键重新输入
if(luc_data==0x0c) //以"#"键确定
{
for(luc_i = 0 ; luc_i < 4; luc_i++)
{
if(luc_Buf[luc_i] == Rst_Tab[luc_i]) bit_ok = 1;
else
{
bit_ok = 0 ;
break;
}
}
if(bit_ok)
{
SuccBuzzer(); //设置成功时发出的声音
RstInit2(); //比较第2次号码
}
break;
}
}
}
//============================================================================================
//语法格式:In_Fun_SET()
//实现功能:进入设置状态
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void In_Fun_SET()
{
unsigned char data luc_i;
unsigned char data luc_data; //DTMF解码数据
unsigned char data luc_DataLen = 0; //DTMF解码数据长度
unsigned char data luc_Buf[4];
unsigned char data luc_RstLen = 0; //工厂复位长度
unsigned char data luc_temp;
bit bit_ok;
StarSetFun(); //开始设置各种功能
SetWordDisp(); //设置时LED指示
guc_bit_AlLedOF = 0 ; //报警指示闪烁灯关
ALARM_LED = 0; //撤防时报警指示点亮
SUN_LED = SUN_LED_OFF; //撤防时电源指示点亮
if(guc_bitPhSet) GreekVoice(); //如果是远程控制,远程控制时成功提示音
while(1)
{
luc_data = DTMF();
luc_temp = luc_data;
if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
if((luc_DataLen<=4)&&(0<luc_data)&&(luc_data<=10))
{
if(luc_data==10)luc_data = 0;
luc_Buf[luc_DataLen++] = luc_data;
}
if(luc_data==0x0b)
{
luc_RstLen++;
luc_DataLen = 0; //"*"键重新输入
}
if(luc_RstLen == 3) //进入工厂恢复
{
SuccBuzzer(); //设置成功时发出的声音
RstInit(); //恢复初始化
break;
}
if(luc_data==0x0c) //以"#"键确定,比较密码
{
for(luc_i = 0 ; luc_i < 4 ; luc_i ++)
{
if(guc_PassBuf[luc_i] == luc_Buf[luc_i]) bit_ok = 1;//如果密码相等处理,否则退出
else
{
bit_ok = 0;
break;
}
}
if(guc_bitPhSet) //如果是远程控制
{
if(bit_ok)
{
GreekVoice(); //远程控制时成功提示音
Fun_SET();
}
else FailBuzzer(); //设置失败时发出的声音
}
else
{
SuccBuzzer(); //设置成功时发出的声音
Fun_SET();
}
break;
}
}
OverSetFun(); //结束设置各种功能
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -