📄 debug.c
字号:
{
unsigned char chM[] = "BadGasRestore: xxx\n\r\n\r";
chM[15] = (g_chBadGasRestore / 100) + 48;
chM[16] = ((g_chBadGasRestore / 10) % 10)+ 48;
chM[17] = (g_chBadGasRestore % 10) + 48;
InsertDebugSendBuf((unsigned char *)chM,sizeof(chM) - 1);
g_intMainDebugProcess_Stat = 281;
}
break;
///////////////////////////DEBUG INFORMATION ZERO///////////////////////////////////
default:
g_intMainDebugProcess_Stat = 0;//DEFAULT 中会有相关清理
break;
}
}
}
/**************************************
*功能: 调试口主处理
*参数: ID号,数据缓冲,长度;长度 = 99,表明是读数据,否则为写数据的长度
*返回: 读数据时,= 读到数据的长度,=0表明读错误;写数据时,= 1 成功,=0 失败(包含 id 错误,写错误。。。)
*备注: 实时调用
**************************************/
unsigned char ParamID(unsigned char chParamID, unsigned char *chParamBuf, unsigned char chLen)
{
unsigned char chR = 0;
unsigned char chI;
switch(chParamID)
{
case 11://SysID_Info 系统ID 3
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 3; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(SysID_Info + chI);
}
chR = 3;
}
else
{//写数据
//错误
}
break;
case 12://局号
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 4; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(StationID_Info + chI);
}
chR = 4;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------
if(chLen == 5)
{
if(WriteID(StationID_Info - SysID_Info, (chParamBuf + 1), 4, 3))
{//OK
chR = 1;
}
}
}
break;
case 13://版本号
if(chLen == 99)
{//读数据---只提供给调试口显示用
*(chParamBuf) = Ver_ID0;
*(chParamBuf + 1) = Ver_ID1;
*(chParamBuf + 2) = Ver_ID2;
*(chParamBuf + 3) = Ver_ID3 + 48;
*(chParamBuf + 4) = Ver_ID4 + 48;
*(chParamBuf + 5) = (g_int135Ver / 1000) % 10 + 48;
*(chParamBuf + 6) = (g_int135Ver / 100) % 10 + 48;
*(chParamBuf + 7) = (g_int135Ver / 10) % 10 + 48;
*(chParamBuf + 8) = '0';
*(chParamBuf + 9) = '0';
*(chParamBuf + 10) = (g_chYear) % 10 + 48;
*(chParamBuf + 11) = (g_chMonth / 10) % 10 + 48;
*(chParamBuf + 12) = (g_chMonth % 10) + 48;
*(chParamBuf + 13) = (g_chDay / 10) % 10 + 48;
*(chParamBuf + 14) = (g_chDay % 10) + 48;
chR = 15;
}
else
{//写数据
//错误
}
break;
case 24://中心机号码 18 长度
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 18; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(DesTeleID_Info + chI);
}
for(chI = 0; chI < 18; chI++)
{
if(*(unsigned char *)(DesTeleID_Info + chI) != '9')
{
break;
}
}
chI -= 18; //变为共有多小个
if(chI <= 8)
{
chR = 8;
}
else
{
chR = chI;
}
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen <= 19)
{
if(WriteID(DesTeleID_Info - SysID_Info - chLen + 19, (chParamBuf + 1), 18 + chLen - 19, 3))
{//OK
chR = 1;
}
}
}
break;
case 25://DesPagerID_Info 0x1011 // 长度=8 值班员拷机参数
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 8; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(DesPagerID_Info + chI);
}
chR = 8;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen <= 9)
{
if(WriteID(DesPagerID_Info - SysID_Info - chLen + 9, (chParamBuf + 1), 8 + chLen - 9, 3))
{//OK
chR = 1;
}
}
}
break;
case 36://EnvDC_Info 0x1019 // 长度=6 直流门限
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 6; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(EnvDC_Info + chI);
}
chR = 6;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 7)
{
if(WriteID(EnvDC_Info - SysID_Info, (chParamBuf + 1), 6, 3))
{//OK
chR = 1;
}
}
}
break;
case 37://EnvAC_Info 0x101F // 长度=6 交流门限
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 6; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(EnvAC_Info + chI);
}
chR = 6;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 7)
{
if(WriteID(EnvAC_Info - SysID_Info, (chParamBuf + 1), 6, 3))
{//OK
chR = 1;
}
}
}
break;
case 38://EnvTemp_Info 0x1025 // 长度=10 温度门限
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 10; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(EnvTemp_Info + chI);
}
chR = 10;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 11)
{
if(WriteID(EnvTemp_Info - SysID_Info, (chParamBuf + 1), 10, 3))
{//OK
chR = 1;
}
}
}
break;
case 39://EnvHumidity_Info 0x102F // 长度=6 湿度门限
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 6; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(EnvHumidity_Info + chI);
}
chR = 6;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 7)
{
if(WriteID(EnvHumidity_Info - SysID_Info, (chParamBuf + 1), 6, 3))
{//OK
chR = 1;
}
}
}
break;
case 64://CommMode_Info 0x1035 // 长度=1 通讯方式选择
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 1; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(CommMode_Info + chI);
}
chR = 1;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 2)
{
if(WriteID(CommMode_Info - SysID_Info, (chParamBuf + 1), 1, 3))
{//OK
chR = 1;
}
}
}
break;
case 71://SoundMode_Info 0x1036 // 长度=1 静音设置
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 1; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(SoundMode_Info + chI);
}
chR = 1;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 2)
{
if(WriteID(SoundMode_Info - SysID_Info, (chParamBuf + 1), 1, 3))
{//OK
chR = 1;
}
}
}
break;
/////////////////////////写 RAM /////////////////////////////////////////////////////////////////////////
case 91://时间 日期
if(chLen == 99)
{//读数据---只提供给调试口显示用
*(chParamBuf) = '2';
*(chParamBuf + 1) = '0';
*(chParamBuf + 2) = ((g_chYear) / 10) + 48;
*(chParamBuf + 3) = ((g_chYear) % 10) + 48;
*(chParamBuf + 4) = ((g_chMonth) / 10) + 48;
*(chParamBuf + 5) = ((g_chMonth) % 10) + 48;
*(chParamBuf + 6) = ((g_chDay) / 10) + 48;
*(chParamBuf + 7) = ((g_chDay) % 10) + 48;
*(chParamBuf + 8) = ((g_chHour) / 10) + 48;
*(chParamBuf + 9) = ((g_chHour) % 10) + 48;
*(chParamBuf + 10) = ((g_chMinute) / 10) + 48;
*(chParamBuf + 11) = ((g_chMinute) % 10) + 48;
*(chParamBuf + 12) = ((g_chSecond) / 10) + 48;
*(chParamBuf + 13) = ((g_chSecond) % 10) + 48;
chR = 14;
}
else
{//写数据
if(chLen == 15)//14 + 1 为 13=回车键
{// 20030808121212
//0123456789
g_chYear = (*(chParamBuf + 3) - 48) * 10 + (*(chParamBuf + 4) - 48);
g_chMonth = (*(chParamBuf + 5) - 48) * 10 + (*(chParamBuf + 6) - 48);
g_chDay = (*(chParamBuf + 7) - 48) * 10 + (*(chParamBuf + 8) - 48);
g_chHour = (*(chParamBuf + 9) - 48) * 10 + (*(chParamBuf + 10) - 48);
g_chMinute = (*(chParamBuf + 11) - 48) * 10 + (*(chParamBuf + 12) - 48);
g_chSecond = (*(chParamBuf + 13) - 48) * 10 + (*(chParamBuf + 14) - 48);//秒肯定会有误差
//给 135!
//开机下一次时间!下时间!
//g_chMainInnerComm_Stat = 0;
g_chInnerCommSendBuf[1] = 216;
//second minute hour
g_chInnerCommSendBuf[2] = g_chSecond;
g_chInnerCommSendBuf[3] = g_chMinute;
g_chInnerCommSendBuf[4] = g_chHour;
//5 sum
//6 200
AddCheckSum(5);
chR = 1;
}
}
break;
case 92://写标志 WriteMode_Info
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 1; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(WriteMode_Info + chI) + 48;//唯一的 非 ASCII 码
}
chR = 1;
}
break;
case 93://读写开门密码
if(chLen == 99)
{//读数据---只提供给调试口显示用
for(chI = 0; chI < 8; chI++)
{
*(chParamBuf + chI) = *(unsigned char *)(Door_Password_Info + chI);
}
chR = 8;
}
else
{//写数据
//得到首地址 void WriteID(首地址,数据缓冲,长度) 只负责可靠地写入FLASH,当遇到问题,只能丢掉
//长度 必须= 4,否则返回问题--------长度可变
if(chLen == 9)
{
if(WriteID(Door_Password_Info - SysID_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -