📄 rf315_attand.c
字号:
#include "all.h"
bit Is_DiZh_Rx_Buff_Ok() ;
uchar Spk_At89341_cnt;
/**********************************************************************
**函数原型: void YU_YIN (void)
**入口参数: Xin_485_b=1
**出口参数: 无
**返 回 值: 无
**说 明: 语音任务。
************************************************************************/
uint Mobile_Sigal_Cnt=0; //手机信号定时查询计数器
uchar RF315_addr=0xff; // 不等于0xff: 正在放音
void RF315_YIN (void) _task_ RF315 {
uchar Tem_lei ;
//os_wait2(K_SIG, 0);
while (1) {
os_wait2(K_TMO, 1);
Dog_RF315_cnt=0; //看门狗计数器
if( XinRf315_B) {
// RF_Address24_Xin.Address=(uint)((XinRf315_Value[1]>>8)&0xffff);
// RF_Address24_Xin.Lei=(uchar)((XinRf315_Value[1])&0xff);
XinJingLei_Byte=0;
if( Is_DiZh_Rx_Buff_Ok()==1&&DiZh_Rx_Buff[0]==8) {
RF_Address24_Xin.Lei=DiZh_Rx_Buff[2];
switch(RF_Address24_Xin.Lei) {
case YAO_CE:
CeFang_Once();
break;
case YAO_BU:
BuFang_Once();
break;
case YAO_ZAI:
ZaiJia_BuFang_Once();
break;
//case YAO_tan_HU:
case YAO_HU:
XinJingLei_Byte=5;
break;
case YAO_1:
XinJingLei_Byte=1;
break;
case YAO_2:
XinJingLei_Byte=2;
break;
case YAO_3:
XinJingLei_Byte=3;
break;
case YAO_4:
XinJingLei_Byte=4;
break;
case YAO_YouXian: // 报警板的有线输入
XinJingLei_Byte=0x85;
break;
default:
XinJingLei_Byte=0;
break;
}
}
XinRf315_B=0;
}
if( XinJingLei_Byte!=0) {
//struct_Variale_True.XinCeFang_B=0;
Tem_lei=XinJingLei_Byte&0x7f;
if(( Tem_lei==5)|| ( Tem_lei==6)) { //当是呼救或地需时
struct_Variale_True.Attand_One_Jing_B=1;
XinPhone_JingLei_Byte= XinJingLei_Byte;
}
else {
switch(Para_all_True.Work_Mode) {
case 0: //撤防时
break;
case 1: //布防时
struct_Variale_True.Attand_One_Jing_B=1;
XinPhone_JingLei_Byte= XinJingLei_Byte;
break;
case 2: //在家布防时
//在家布防时只有1,2防区有效
if(Tem_lei==1||Tem_lei==2)
struct_Variale_True.Attand_One_Jing_B=1;
XinPhone_JingLei_Byte= XinJingLei_Byte;
break;
default:
break;
}
}
}
XinJingLei_Byte=0;
}
}
//系统进行一次撤防
void CeFang_Once() {
Spk_cnt=0; //如报警警号响则停止响
Close_Spkk_P; //如报警警号响则停止响
Sound_DiDi_B=1;
Para_all_True.Work_Mode=0;
struct_Variale_True.XinCeFang_B=1;
}
//系统进行一次布防
uchar BuDelay_Time=0;
void BuFang_Once() {
Sound_Di_B=1;
Para_all_True.Work_Mode=5;
BuDelay_Time=0;
}
//系统进行一次在家布防
void ZaiJia_BuFang_Once() {
Sound_DiDiDi_B=1;
Para_all_True.Work_Mode=2;
}
// 保存一条记录之子程序
//读时间的6个字节到BUFFF
uchar ReadTime(uchar *Bufff) {
uchar i;
//得到权限
while(KEY_TX_Right_B==0 ) os_wait2(K_TMO,2);
KEY_TX_Right_B=0;
Xin_Time_in_B=0; //读到新时间 标志
DaBao_JTX_0x24_And_Send(55, &i, 0); // 55 查询屏的当前时间
// os_wait2(K_TMO,100);
//放弃到权限 在后面
i=0;
/*
Xin_KEY_RX_B=0;
while(++i<50) { // //1.2秒时
os_wait2(K_TMO,5);
if( Xin_KEY_RX_B) {
Xin_KEY_RX_B=0;
break;
}
}
if(i==50) {
goto Lassrt;
}
*/
//以上是接收确认
i=0;
Xin_KEY_RX_B=0;
while(++i<100) { // //1.2秒时
os_wait2(K_TMO,5);
if( Xin_KEY_RX_B) {
Xin_KEY_RX_B=0;
if(IS_CS_OK()==1&&KEY_RX_Buff[0]==55) {
*Bufff++=KEY_RX_Buff[2]; //年
*Bufff++=KEY_RX_Buff[3];
*Bufff++=KEY_RX_Buff[4];
*Bufff++=KEY_RX_Buff[5];
*Bufff++=KEY_RX_Buff[6];
*Bufff++=KEY_RX_Buff[7]; //秒
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -