⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmd_dispose.c

📁 一些用于电话管理的pc机下位机程序
💻 C
字号:
#include	"p18cxxx.h"//
           

extern unsigned char RC_s[10];//关于232通讯数据
extern unsigned char Err[2];//关于外部命令错误
extern unsigned char byte_Count;//字符数组的长度数
extern unsigned char SignalList[3];//关于外部音频信号状态

void En_see_bit(void);//设置查询
void Dn_see_bit(void);//设置查询
void TX_S(void);//回复上位机
extern void ctrl_8816(void);//设置8816IC
void Cmd_dispose()				//上位机指令处理
{
	if(RC_s[0]==1){				//是查询信号状态指令
		if(RC_s[1]==1){			//指令正确
			En_see_bit();} 
    	else if(RC_s[1]==3){	//指令正确
			Dn_see_bit();}
	}
	else if(RC_s[0]==3){					//是设置信号录音指令
		if((RC_s[1]==5)||(RC_s[1]==7)){		//指令正确
		ctrl_8816();}
	}
}
/*   dispose
  指令格式 
  格式:xx yy bb bb zz,xx… zz 代表指令类型;yy代表指令编号,用于唯一表示指令;bb bb代表路数(1~21)。
    查询指令 
      查询发送指令:01 01 bb bb 02 //上位机发送指令
      							状态回复指令<有语音>:02 02 bb bb 01 (注意:下位机定时发送。) 
      							状态回复指令<无语音>:02 03 bb bb 01 (注意:下位机定时发送。) 
	  停止查询指令:01 03 bb bb 02 //上位机发送指令
      							查询错误指令:02 04 bb bb 01 
    设置指令 
      请求录音指令:03 05 bb bb 04 //上位机发送指令
      							录音回复指令:04 06 bb bb 03 
      停止录音指令:03 07 bb bb 04 //上位机发送指令
      							停止回复指令:04 08 bb bb 03 
      							设置错误指令:04 09 bb bb 03  {} ||
*/
void En_see_bit()				//信号状态查询对象表对应位设置1
{
	unsigned char tmpA=1;
	unsigned char tmpB;
	if(RC_s[2]<1)
	{
 	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
	} 
	else if(RC_s[2]<8)
	{
	tmpB=RC_s[2];
	tmpB-=1;
	tmpA<<=tmpB;
	SignalList[2]|=tmpA;
	} 
	else if(RC_s[2]<15)
	{
	tmpB=RC_s[2];
	tmpB-=8;
	tmpA<<=tmpB;
	SignalList[1]|=tmpA;
	} 
	else if(RC_s[2]<22)
	{
	tmpB=RC_s[2];
	tmpB-=15;
	tmpA<<=tmpB;
	SignalList[0]|=tmpA;
	}
	else {									
	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
	}		
}

void Dn_see_bit()//信号状态查询对象表对应位设置0
{
	unsigned char tmpA=1;
	unsigned char tmpB;
	if(RC_s[2]<1)
	{
 	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
	} 
	else if(RC_s[2]<8)
	{
	tmpB=RC_s[2];
	tmpB-=1;
	tmpA<<=tmpB;
    tmpA^=0xFF;
	SignalList[2]&=tmpA;
	} 
	else if(RC_s[2]<15)
	{
	tmpB=RC_s[2];
	tmpB-=8;
	tmpA<<=tmpB;
	tmpA^=0xFF;
	SignalList[1]&=tmpA;
	} 
	else if(RC_s[2]<22)
	{
	tmpB=RC_s[2];
	tmpB-=15;
	tmpA<<=tmpB;
	tmpA^=0xFF;
	SignalList[0]&=tmpA;
	}
    else {
 	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
	}	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -