📄 cmd_dispose.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 + -