📄 stream.c
字号:
AddMenu( streamENGM154, SMaxl );
}
else if( SysID == HFLBDRF ) //哈飞汽车 -> 路宝ENG
{
SMaxl = 26;
AddMenu( streamHFLBENG, SMaxl );
}
else if( SysID == HFSMABS ) //哈飞汽车 -> 赛马ABS
{
SMaxl = 20;
AddMenu( streamHFABS, SMaxl );
}
Line = StartL;
}
else if( Rep == W_UP || Rep == W_DOWN ) //翻页
{
Line = StartL;
}
else //显示数据流
{
StrDis( Line, (unsigned char)(Line-StartL) );
Line++;
if( Line==(StartL+8) ) Line = StartL;
}
}
return SUCCESS;
}
/*
**-------------------------------------------------------------------------------------
* 数据流数值显示函数
**-------------------------------------------------------------------------------------
*/
void StrDis( unsigned char strnum, unsigned char line )
{
#ifdef DEBUGMODE
DebugString( "StrDis()" );
#endif
char tmpstr[20];
float Sum;
int sumint;
//在这里添加各系统的计算公式
if( SysID == HFDRF ) //哈飞汽车 -> 德尔福电控
{
switch(strnum)
{
case 0 : // 6 Y=X1
Sum = (float)TagStr.strread[6];
sprintf(tmpstr,"%3.0f",Sum);
break;
case 1 : //KPA 13 Y=0.37X1+10.3
Sum = (float)TagStr.strread[13]*0.37+10.3;
sprintf(tmpstr,"%6.1fKPA",Sum);
break;
case 2 : //V 14 Y=0.1X1
Sum = 0.1*(float)TagStr.strread[14];
sprintf(tmpstr,"%6.1fV",Sum);
break;
case 3 : // 16 Y=0.75X1-40
Sum = 0.75*(float)TagStr.strread[16]-40;
sprintf(tmpstr,"%3.0f",Sum);
break;
case 4 : // 18 Y=0.75X1-40
Sum = (float)TagStr.strread[18]*0.75-404;
sprintf( tmpstr, "%5.1f", Sum );
break;
case 5 : // 19 Y=0.7X1-90
Sum = (float)TagStr.strread[19]*0.7-90;
sprintf( tmpstr, "%5.1f", Sum);
break;
case 6 : //kpa 21 Y=20X1
Sum = 20*(float)TagStr.strread[21];
sprintf( tmpstr, "%6.1fKPA",Sum );
break;
case 7 : // 22 Y=X1
Sum = (float)TagStr.strread[22];
sprintf(tmpstr,"%3.0f",Sum);
break;
case 8 : //mV 27 Y=19.5X1
Sum = 19.5*(float)TagStr.strread[27];
sprintf( tmpstr, "%6.1fMV", Sum);
break;
case 9 : //% 28 Y=0.39X1
Sum = 0.39*(float)TagStr.strread[26];
sprintf(tmpstr,"%5.1f%%",Sum);
break;
case 10 : //KPH 29 Y=X1
Sum = (float)TagStr.strread[29];
sprintf(tmpstr,"%3.0fKPH",Sum);
break;
case 11 : //RPM 35 Y=12.5X1
Sum = 12.5*(float)TagStr.strread[35];
sprintf( tmpstr, "%5.1fRPM", Sum );
break;
case 12 : //RPM 30,31 Y=256X1+X2
Sum = (float)TagStr.strread[30]*256+(float)TagStr.strread[31];
sprintf( tmpstr, "%5.0fRPM" ,Sum );
break;
case 13 : //MS 32 Y=0.09X1
Sum = 0.09*(float)TagStr.strread[32];
sprintf( tmpstr, "%5.1fMS", Sum );
break;
case 14 : //STEP 33 Y=X1
Sum = (float)TagStr.strread[33];
sprintf( tmpstr, "%3.0fSTEP", Sum );
break;
case 15 : //MV 36 Y=4.4X1
Sum = 4.4*(float)TagStr.strread[36];
sprintf( tmpstr, "%6.1fMV", Sum );
break;
case 16 : // 37 Y=X1
Sum = (float)TagStr.strread[37];
sprintf( tmpstr, "%3.0f",Sum );
break;
case 17 : // 38 Y=X1
Sum = (float)TagStr.strread[38];
sprintf( tmpstr, "%3.0f" ,Sum );
break;
case 18 : // 39 同上
Sum = (float)TagStr.strread[39];
sprintf( tmpstr, "%3.0f", Sum );
break;
case 19 : // 40 同上
Sum = (float)TagStr.strread[40];
sprintf(tmpstr,"%3.0f",Sum);
break;
case 20 : // 42 Y=0.1X1 :1
Sum = 0.1*(float)TagStr.strread[42];
sprintf( tmpstr, "%5.1f:1", Sum );
break;
case 21 : //S 60,61 Y=256X1+X2
Sum = 256*(float)TagStr.strread[60]+(float)TagStr.strread[61];
sprintf( tmpstr, "%6.0fS",Sum );
break;
case 22 : // 64 Y=0.6X1-40
Sum = (float)TagStr.strread[64]*0.6-40;
sprintf( tmpstr, "%5.1f" ,Sum );
break;
case 23 : // 65 同上
Sum = (float)TagStr.strread[65]*0.6-40;
sprintf( tmpstr, "%5.1f", Sum );
break;
case 24 : //KM 56,57,58 Y=6553.6X1+25.6X2+0.1X3
Sum = 6553.6*(float)TagStr.strread[56]+25.6*(float)TagStr.strread[57]+0.1*(float)TagStr.strread[58];
sprintf(tmpstr,"%7.0fKM",TagStr.strread[43]);
break;
case 25 : //° 23 Y=0.35X1
Sum = 0.35*(float)TagStr.strread[23];
sprintf(tmpstr,"%5.1f'",Sum);
break;
case 26 : //° 24 同上
Sum = 0.35*(float)TagStr.strread[24];
sprintf( tmpstr, "%5.1f'", Sum );
break;
case 27 : //° 25 同上
Sum = 0.35*(float)TagStr.strread[25];
sprintf( tmpstr, "%5.1f'",Sum );
break;
case 28 : // ° 26 同上
Sum = 0.35*(float)TagStr.strread[26];
sprintf( tmpstr, "%5.1f'" ,Sum );
break;
default: break;
}
}
else if( SysID == HFDRFMT ) //哈飞汽车 -> 民意MT20
{
switch(strnum)
{
case 0 : // 6 Y=X1
Sum = (float)TagStr.strread[6];
sprintf(tmpstr,"%3.0f",Sum);
break;
case 1 : //KPA 13 Y=0.37X1+10.3
Sum = (float)TagStr.strread[13]*0.37+10.3;
sprintf(tmpstr,"%6.1fKPA",Sum);
break;
case 2 : //V 14 Y=0.1X1
Sum = 0.1*(float)TagStr.strread[14];
sprintf(tmpstr,"%6.1fV",Sum);
break;
case 3 : // 16 Y=0.75X1-40
Sum = 0.75*(float)TagStr.strread[16]-40;
sprintf(tmpstr,"%3.0f",Sum);
break;
case 4 : // 18 Y=0.75X1-40
Sum = (float)TagStr.strread[18]*0.75-404;
sprintf( tmpstr, "%5.1f", Sum );
break;
case 5 : // 19 Y=0.7X1-90
Sum = (float)TagStr.strread[19]*0.7-90;
sprintf( tmpstr, "%5.1f", Sum);
break;
case 6 : //kpa 21 Y=20X1
Sum = 20*(float)TagStr.strread[21];
sprintf( tmpstr, "%6.1fKPA",Sum );
break;
case 7 : // 22 Y=X1
Sum = (float)TagStr.strread[22];
sprintf(tmpstr,"%3.0f",Sum);
break;
case 8 : //mV 27 Y=19.5X1
Sum = 19.5*(float)TagStr.strread[27];
sprintf( tmpstr, "%6.1fMV", Sum);
break;
case 9 : //% 28 Y=0.39X1
Sum = 0.39*(float)TagStr.strread[26];
sprintf(tmpstr,"%5.1f%%",Sum);
break;
case 10 : //KPH 29 Y=X1
Sum = (float)TagStr.strread[29];
sprintf(tmpstr,"%3.0fKPH",Sum);
break;
case 11 : //RPM 35 Y=12.5X1
Sum = 12.5*(float)TagStr.strread[35];
sprintf( tmpstr, "%5.1fRPM", Sum );
break;
case 12 : //RPM 30,31 Y=256X1+X2
Sum = (float)TagStr.strread[30]*256+(float)TagStr.strread[31];
sprintf( tmpstr, "%5.0fRPM" ,Sum );
break;
case 13 : //MS 32 Y=0.09X1
Sum = 0.09*(float)TagStr.strread[32];
sprintf( tmpstr, "%5.1fMS", Sum );
break;
case 14 : //STEP 33 Y=X1
Sum = (float)TagStr.strread[33];
sprintf( tmpstr, "%3.0fSTEP", Sum );
break;
case 15 : //MV 36 Y=4.4X1
Sum = 4.4*(float)TagStr.strread[36];
sprintf( tmpstr, "%6.1fMV", Sum );
break;
case 16 : // 37 Y=X1
Sum = (float)TagStr.strread[37];
sprintf( tmpstr, "%3.0f",Sum );
break;
case 17 : // 38 Y=X1
Sum = (float)TagStr.strread[38];
sprintf( tmpstr, "%3.0f" ,Sum );
break;
case 18 : // 39 同上
Sum = (float)TagStr.strread[39];
sprintf( tmpstr, "%3.0f", Sum );
break;
case 19 : // 40 同上
Sum = (float)TagStr.strread[40];
sprintf(tmpstr,"%3.0f",Sum);
break;
case 20 : // 42 Y=0.1X1 :1
Sum = 0.1*(float)TagStr.strread[42];
sprintf( tmpstr, "%5.1f:1", Sum );
break;
case 21 : //S 60,61 Y=256X1+X2
Sum = 256*(float)TagStr.strread[60]+(float)TagStr.strread[61];
sprintf( tmpstr, "%6.0fS",Sum );
break;
case 22 : // 64 Y=0.6X1-40
Sum = (float)TagStr.strread[64]*0.6-40;
sprintf( tmpstr, "%5.1f" ,Sum );
break;
case 23 : // 65 同上
Sum = (float)TagStr.strread[65]*0.6-40;
sprintf( tmpstr, "%5.1f", Sum );
break;
default: break;
}
}
else if( SysID == HFM154 ) //哈飞汽车 -> 联电M154
{
switch(strnum)
{
case 0 : //X1=byte3,X2=byte4, Y=X1*X2/5 RPM
Sum = (float)TagStr.strread[4]*(float)TagStr.strread[5]/5;
sprintf(tmpstr,"%6.0f/min",Sum);
break;
case 1 : //X1=byte7,X2=byte8, Y=(X1*X2-X1*100)/10 ℃
Sum = ((float)TagStr.strread[7]*(float)TagStr.strread[8]-(float)TagStr.strread[7]*100)/10;
sprintf(tmpstr,"%5.0fC",Sum);
break;
case 2 : //X1=byte10,X2=byte11, Y=(X1*|X2-128|)/100 BTDC
Sum = ((float)TagStr.strread[10]*((float)TagStr.strread[11]-128))/100;
sprintf(tmpstr,"%5.1fBTDC",Sum);
break;
case 3 : //X1=byte10, Y=X1*106/255 °
Sum = (float)TagStr.strread[10]*106/255;
sprintf(tmpstr,"%5.2f'",Sum);
break;
case 4 : //X1=byte7,X2=byte8, Y=X1*X2/100 ms
Sum = (float)TagStr.strread[7]*(float)TagStr.strread[8]/100;
sprintf(tmpstr,"%5.0fms",Sum);
break;
case 5 : //X1=byte10,X2=byte11, Y=X1*X2/1000 V
Sum = (float)TagStr.strread[10]*(float)TagStr.strread[11]/1000;
sprintf(tmpstr,"%5.2fV",Sum);
break;
case 6 : //X1=byte13,X2=byte14, Y=(X1*X2-X1*100)/10 ℃
Sum = ((float)TagStr.strread[13]*(float)TagStr.strread[14]-(float)TagStr.strread[13]*100)/10;
sprintf(tmpstr,"%5.0fC",Sum);
break;
case 7 : //X1=byte3,X2=byte4, Y=(X1%5)*111.7-(X1/5)*596+X2*111.2/255 kpa
Sum = (TagStr.strread[3]%5)*111.7-(TagStr.strread[3]/5)*596+(float)TagStr.strread[4]*111.2/255;
sprintf(tmpstr,"%5.1fkPa",Sum);
break;
case 8 : //X1=byte10,X2=byte11, Y=X1*X2/100 km/h
Sum = (float)TagStr.strread[10]*(float)TagStr.strread[11]/100;
sprintf(tmpstr,"%6.1fkm/h",Sum);
break;
case 9 : //X1=byte4,X2=byte5, Y=(X1*X2-X1*128)/10000+1
Sum = ((float)TagStr.strread[4]*(float)TagStr.strread[5]-(float)TagStr.strread[4]*128)/10000+1;
sprintf(tmpstr,"%6.2f",Sum);
break;
case 10 : //X1=byte7,X2=byte8, Y=X1*X2/256 %
Sum = (float)TagStr.strread[7]*(float)TagStr.strread[8]/256;
sprintf(tmpstr,"%5.1f%%",Sum);
break;
case 11 : //X1=byte3, Y=X1
Sum = (float)TagStr.strread[3];
sprintf(tmpstr,"%4.0f", Sum);
break;
case 12 : //X1=byte3, Y=4.76X1-0.4 mV
Sum = 4.76*(float)TagStr.strread[3]-0.4;
sprintf(tmpstr,"%5.1fmV",Sum);
break;
default: break;
}
}
else if( SysID == HFLBDRF ) //哈飞汽车 -> 路宝ENG
{
switch(strnum)
{
case 0 : //52 y1=0.0195*x1+0.002 V
Sum = (float)TagStr.strread[52]*0.0195+0.002;
sprintf(tmpstr,"%7.2fV",Sum);
break;
case 1 : //53 y=10*x1 KPA
Sum = (float)TagStr.strread[53]*10;
sprintf(tmpstr,"%5.0fKPA",Sum);
break;
case 2 : //37 y1=x1*18.8/255 V
Sum = (float)TagStr.strread[37]*18.8/255;
sprintf(tmpstr,"%7.1fV",Sum);
break;
case 3 : //46 y1=0.0195*x1 V
Sum = (float)TagStr.strread[46]*0.0195;
sprintf(tmpstr,"%7.2fV",Sum);
break;
case 4 : //47 y=x1-40 ℃
sumint = (int)TagStr.strread[47]-40;
sprintf(tmpstr,"%5dC",sumint);
break;
case 5 : //44 y1=0.0195*x1+0.0025 V
Sum = (float)TagStr.strread[44]*0.0195+0.0025;
sprintf(tmpstr,"%7.2fV",Sum);
break;
case 6 : //45 y=x1-40 ℃
sumint = (int)TagStr.strread[45]-40;
sprintf(tmpstr,"%5dC", sumint);
break;
case 7 : //42 y=x1 KM/H
sumint = (int)TagStr.strread[42];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -