📄 yc.c
字号:
if(ps_leng==0)udl=yxname_udl+0x06;
else if(ps_leng==4)udl=yxname_udl+0x02+0x06;
else if(ps_leng==8)udl=yxname_udl+0x04+0x06;
else if(ps_leng==12)udl=yxname_udl+0x06+0x06;
else if(ps_leng==16)udl=yxname_udl+0x08+0x06;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<yxname_len;n++) *pt++=temp_name[n];
for(n=0;n<4;n++) *pt++=enter[n];
if (m==0x8000 )
for(n=0;n<4;n++) *pt++=he[n];
else
for(n=0;n<4;n++) *pt++=fen[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; //^z 短信结束符
len=15+ps_leng+yxname_len;//发送缓冲区的长度
}
}
else if(k==5)
{//遥信6
for(i=0;i<4;i++)
{if((yx_name[i*2+24]==0x00)||(yx_name[i*2+24]==0xff))
{temp_name[i*4+1]='\0';
tran_len=i*2;
break;
}
else
{temp_name[16]='\0';
tran_len=8;}
}
for(i=0;i<tran_len;i++)
{
ascll_num=hex_asc(yx_name[i+24]);
temp_name[i*2]=ascll_num>>8;
temp_name[i*2+1]=ascll_num&0x00ff;
}
yxname_len=strlen(temp_name);
if(yxname_len==0)
{
if(ps_leng==0)udl=0x0a;
else if(ps_leng==4)udl=0x0a+0x02;
else if(ps_leng==8)udl=0x0a+0x04;
else if(ps_leng==12)udl=0x0a+0x06;
else if(ps_leng==16)udl=0x0a+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<8;n++) *pt++=yaoxin[n];
*pt++=48;//0的ascll码
*pt++=48;//0的ascll码
*pt++=51;//3的ascll码
*pt++=k+1+48;//遥信序号的ascll码
if(m==0x8000 )
for(n=0;n<4;n++) *pt++=he[n];
else
for(n=0;n<4;n++) *pt++=fen[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; // ^z 短信结束符
len=23+ps_leng;
}
else
{
yxname_udl=yxname_len>>1;
if(ps_leng==0)udl=yxname_udl+0x06;
else if(ps_leng==4)udl=yxname_udl+0x02+0x06;
else if(ps_leng==8)udl=yxname_udl+0x04+0x06;
else if(ps_leng==12)udl=yxname_udl+0x06+0x06;
else if(ps_leng==16)udl=yxname_udl+0x08+0x06;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<yxname_len;n++) *pt++=temp_name[n];
for(n=0;n<4;n++) *pt++=enter[n];
if (m==0x8000 )
for(n=0;n<4;n++) *pt++=he[n];
else
for(n=0;n<4;n++) *pt++=fen[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; //^z 短信结束符
len=15+ps_leng+yxname_len;//发送缓冲区的长度
}
}
else
{//其余遥信
if(ps_leng==0)udl=0x0a;
else if(ps_leng==4)udl=0x0a+0x02;
else if(ps_leng==8)udl=0x0a+0x04;
else if(ps_leng==12)udl=0x0a+0x06;
else if(ps_leng==16)udl=0x0a+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<8;n++) *pt++=yaoxin[n];
*pt++=48;//0的ascll码
*pt++=48;//0的ascll码
*pt++=51;//3的ascll码
*pt++=k+1+48;//遥信序号的ascll码
if(m==0x8000 )
for(n=0;n<4;n++) *pt++=he[n];
else
for(n=0;n<4;n++) *pt++=fen[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; // ^z 短信结束符
len=23+ps_leng;
}
}
else if(sms_type==SMS_ALL_DAT)/* 频率:xx.xxHz;电压:xxx.xV;电流:xxx.xA;压力:x.xxMPa */
{
pt=&com1_tx_buf[30];
if(ps_leng==0)udl=0x5e;
else if(ps_leng==4)udl=0x5e+0x02;
else if(ps_leng==8)udl=0x5e+0x04;
else if(ps_leng==12)udl=0x5e+0x06;
else if(ps_leng==16)udl=0x5e+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; // 短信的全部长度的16进制 一个汉字,数字,标点加2
for(n=0;n<8;n++) *pt++=pinlv[n];
for(n=0;n<4;n++) *pt++=maohao[n];
value=bpq_f;
for(n=0;n<4;n++) *pt++=number[value/1000][n];
for(n=0;n<4;n++) *pt++=number[value%1000/100][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[value%1000%100/10][n];
for(n=0;n<4;n++) *pt++=number[value%1000%100%10][n];
for(n=0;n<8;n++) *pt++=Hz[n];
for(n=0;n<4;n++) *pt++=enter[n];
for(n=0;n<8;n++) *pt++=dianya[n];
for(n=0;n<4;n++) *pt++=maohao[n];
value=bpq_v;
for(n=0;n<4;n++) *pt++=number[value/1000][n];
for(n=0;n<4;n++) *pt++=number[value%1000/100][n];
for(n=0;n<4;n++) *pt++=number[value%1000%100/10][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[value%1000%100%10][n];
for(n=0;n<4;n++) *pt++=fu[n];
for(n=0;n<4;n++) *pt++=enter[n];
for(n=0;n<8;n++) *pt++=dianliu[n];
for(n=0;n<4;n++) *pt++=maohao[n];
value=bpq_i;
for(n=0;n<4;n++) *pt++=number[value/1000][n];
for(n=0;n<4;n++) *pt++=number[value%1000/100][n];
for(n=0;n<4;n++) *pt++=number[value%1000%100/10][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[value%1000%100%10][n];
for(n=0;n<4;n++) *pt++=A[n];
for(n=0;n<4;n++) *pt++=enter[n];
for(n=0;n<8;n++) *pt++=yali[n];
for(n=0;n<4;n++) *pt++=maohao[n];
value=bpq_p;
for(n=0;n<4;n++) *pt++=number[value/100][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[value%100/10][n];
for(n=0;n<4;n++) *pt++=number[value%100%10][n];
for(n=0;n<12;n++) *pt++=MPa[n];
for(n=0;n<4;n++) *pt++=enter[n];
for(n=0;n<16;n++) *pt++=xtzc[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; /* ^z 短信结束符com_tx_buf[1][164]=26**/
len=184+3+4+ps_leng; //pt的长度
}
else if(sms_type==SMS_UI_FAULT)
{
alarm_time++;
if (asp_rdp==0) rdp=30;
else rdp=asp_rdp-1;
if(asp_buf[rdp]!=0)
{
if(asp_buf[rdp]==1) /*压力过高报警*/
{
pt=&com1_tx_buf[30];
if(ps_leng==0)udl=0x0e;
else if(ps_leng==4)udl=0x0e+0x02;
else if(ps_leng==8)udl=0x0e+0x04;
else if(ps_leng==12)udl=0x0e+0x06;
else if(ps_leng==16)udl=0x0e+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<8;n++) *pt++=yali[n];
for(n=0;n<8;n++) *pt++=guogao[n];
for(n=0;n<8;n++) *pt++=baojing[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; /* ^z 短信结束符com_tx_buf[1][164]=26**/
len=24+3+4+ps_leng;
}
else if(asp_buf[rdp]==2) /*加速时过电流*/
{
pt=&com1_tx_buf[30];
if(ps_leng==0)udl=0x0e;
else if(ps_leng==4)udl=0x0e+0x02;
else if(ps_leng==8)udl=0x0e+0x04;
else if(ps_leng==12)udl=0x0e+0x06;
else if(ps_leng==16)udl=0x0e+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<12;n++) *pt++=jasushi[n];
for(n=0;n<4;n++) *pt++=guo[n];
for(n=0;n<8;n++) *pt++=dianliu[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; /* ^z 短信结束符com_tx_buf[1][164]=26**/
len=24+3+4+ps_leng;
}
else if(asp_buf[rdp]==3) /*散热片温度高*/
{
pt=&com1_tx_buf[30];
if(ps_leng==0)udl=0x0e;
else if(ps_leng==4)udl=0x0e+0x02;
else if(ps_leng==8)udl=0x0e+0x04;
else if(ps_leng==12)udl=0x0e+0x06;
else if(ps_leng==16)udl=0x0e+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<12;n++) *pt++=sanrepian[n];
for(n=0;n<12;n++) *pt++=wendugao[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; /* ^z 短信结束符com_tx_buf[1][164]=26**/
len=24+3+4+ps_leng;
}
else if(asp_buf[rdp]==4) /*系统异常报警*/
{
pt=&com1_tx_buf[30];
if(ps_leng==0)udl=0x0e;
else if(ps_leng==4)udl=0x0e+0x02;
else if(ps_leng==8)udl=0x0e+0x04;
else if(ps_leng==12)udl=0x0e+0x06;
else if(ps_leng==16)udl=0x0e+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制 一个汉字,数字,标点加2 */
for(n=0;n<16;n++) *pt++=xtyc[n];
for(n=0;n<8;n++) *pt++=baojing[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; /* ^z 短信结束符com_tx_buf[1][164]=26**/
len=24+3+4+ps_leng;
}
}
else return;
}
else if(sms_type==SMS_POWER_OFF)
{
pt=&com1_tx_buf[30];
if(ps_leng==0)udl=0x20;
else if(ps_leng==4)udl=0x20+0x02;
else if(ps_leng==8)udl=0x20+0x04;
else if(ps_leng==12)udl=0x20+0x06;
else if(ps_leng==16)udl=0x20+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; /*短信的全部长度的16进制一个汉字,数字,标点加2 */
for(n=0;n<8;n++)*pt++=dianchi[n];
for(n=0;n<8;n++)*pt++=dianliang[n];
for(n=0;n<8;n++)*pt++=buzu[n];
for(n=0;n<4;n++)*pt++=douhao[n];
for(n=0;n<8;n++)*pt++=zhuangzhi[n];
for(n=0;n<8;n++)*pt++=sanshi[n];
for(n=0;n<4;n++)*pt++=seconde[n];
for(n=0;n<8;n++)*pt++=guanji[n];
for(n=0;n<4;n++)*pt++=tanhao[n];
for(n=0;n<4;n++) *pt++=enter[n];
if(ps_leng!=0)
for(n=0;n<ps_leng;n++)*pt++=ps_name[n];
*pt=26; /* ^z 短信结束符com_tx_buf[1][164]=26**/
len=60+3+4+ps_leng;
}
else if(sms_type==SMS_SIMULAT_DAT)
{
pt=&com1_tx_buf[30];
for(i=0;i<4;i++)
{if((dc_name[i*2]==0x00)||(dc_name[i*2]==0xff))
{dc1_temp[i*4+1]='\0';
tran_len=i*2;
break;
}
else
{dc1_temp[16]='\0';
tran_len=8;}
}
for(i=0;i<tran_len;i++)
{
ascll_num=hex_asc(dc_name[i]);
dc1_temp[i*2]=ascll_num>>8;
dc1_temp[i*2+1]=ascll_num&0x00ff;
}
dc1_len=strlen(dc1_temp);
if(dc1_len==0)
dc1_udllen=20;
else
dc1_udllen=(dc1_len>>1)+14;
for(i=0;i<4;i++)
{if((dc_name[i*2+8]==0x00)||(dc_name[i*2+8]==0xff))
{dc2_temp[i*4+1]='\0';
tran_len=i*2;
break;
}
else
{dc2_temp[16]='\0';
tran_len=8;}
}
for(i=0;i<tran_len;i++)
{
ascll_num=hex_asc(dc_name[i+8]);
dc2_temp[i*2]=ascll_num>>8;
dc2_temp[i*2+1]=ascll_num&0x00ff;
}
dc2_len=strlen(dc2_temp);
if(dc2_len==0)
dc2_udllen=20;
else
dc2_udllen=(dc2_len>>1)+14;
if(ps_leng==0)udl=dc1_udllen+dc2_udllen;
else if(ps_leng==4)udl=dc1_udllen+dc2_udllen+0x02;
else if(ps_leng==8)udl=dc1_udllen+dc2_udllen+0x04;
else if(ps_leng==12)udl=dc1_udllen+dc2_udllen+0x06;
else if(ps_leng==16)udl=dc1_udllen+dc2_udllen+0x08;
ascll_num=hex_asc(udl);
*pt++=ascll_num>>8;
*pt++=ascll_num&0x00ff; // 短信的全部长度的16进制 一个汉字,数字,标点加2
if(dc1_len==0)
{
for(n=0;n<8;n++) *pt++=simulate[n];
*pt++=48;//0的ascll码
*pt++=48;//0的ascll码
*pt++=51;//0的ascll码
*pt++=49;//1的ascll码
for(n=0;n<4;n++) *pt++=maohao[n];
value_temp=yc.DC[0];
value_temp=((value_temp*2.5)/4096)*4*mandu_dc1;
dc1_value=value_temp*100;
for(n=0;n<4;n++) *pt++=number[dc1_value/1000][n];
for(n=0;n<4;n++) *pt++=number[dc1_value%1000/100][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100/10][n];
for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100%10][n];
//for(n=0;n<4;n++) *pt++=fu[n];
for(n=0;n<4;n++) *pt++=enter[n];
dc1_ptlen=40;
}
else
{
for(n=0;n<dc1_len;n++) *pt++=dc1_temp[n];
for(n=0;n<4;n++) *pt++=maohao[n];
value_temp=yc.DC[0];
value_temp=((value_temp*2.5)/4096)*4*mandu_dc1;
dc1_value=value_temp*100;
for(n=0;n<4;n++) *pt++=number[dc1_value/1000][n];
for(n=0;n<4;n++) *pt++=number[dc1_value%1000/100][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100/10][n];
for(n=0;n<4;n++) *pt++=number[dc1_value%1000%100%10][n];
//for(n=0;n<4;n++) *pt++=fu[n];
for(n=0;n<4;n++) *pt++=enter[n];
dc1_ptlen=dc1_len+28;
}
if(dc2_len==0)
{
for(n=0;n<8;n++) *pt++=simulate[n];
*pt++=48;//0的ascll码
*pt++=48;//0的ascll码
*pt++=51;//0的ascll码
*pt++=50;//1的ascll码
for(n=0;n<4;n++) *pt++=maohao[n];
value_temp=0;
value_temp=yc.DC[1];
value_temp=((value_temp*2.5)/4096)*4*mandu_dc2;
dc2_value=value_temp*100;
for(n=0;n<4;n++) *pt++=number[dc2_value/1000][n];
for(n=0;n<4;n++) *pt++=number[dc2_value%1000/100][n];
for(n=0;n<4;n++) *pt++=d_point[n];
for(n=0;n<4;n++) *pt++=number[dc2_value%1000%100/10][n];
for(n=0;n<4;n++) *pt++=number[dc2_value%1000%100%10][n];
//for(n=0;n<4;n++) *pt++=fu[n];
for(n=0;n<4;n++) *pt++=enter[n];
dc2_ptlen=40;
}
else
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -