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

📄 stream.c

📁 汽车电子解码器电缆测试。可以判断汽车故障在哪里
💻 C
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************************
 *  目的:数据流功能模块
 *  功能:实现读取数据流功能
 *  模块依赖:Systemint.h
 ******************************************************************************************/
#include "Systemint.h"
#include "Stream.h"
#include "main.h"

#define STRRECIVELEN     256  //数据流最大接收长度
struct StrDig
{
     unsigned char strsend[20];                 //数据流发送命令
     unsigned char strread[STRRECIVELEN];       //数据流接收数组
}    TagStr;
/*
**-------------------------------------------------------------------------------------
** 数据流显示函数
**-------------------------------------------------------------------------------------
*/
char Stream()
{
#ifdef DEBUGMODE
     DebugString( "Stream()" );
#endif
     //添加显示信息
     unsigned char *Read[]=
     {
          "读取数据流",
          "请等待...",
     };
     unsigned char RMaxl = 2;
     unsigned char *Fail[]=
     {
          "读取数据流失败",
          "[ NO ] 返回"
     };
     unsigned char Startline = 0;
     unsigned char Userline = 0;
     unsigned char FMaxl = 2;
     //显示正在读取
     ScreenInit( W_STAT );
     AddMenu( Read, RMaxl );
     ScreenAct( &Startline, &Userline );
     //显示数据流
     if( !Strdata() )
     {
          ScreenInit( W_STAT );
          AddMenu( Fail, FMaxl );
          while( ScreenAct( &Startline, &Userline ) != W_RETURN );
          return FAIL;
     }
     else
     {
          //NULL
     }
     return SUCCESS;
}
/*
**-------------------------------------------------------------------------------------
** 数据流命令发送函数
** Line:表示当前发送的是第几项数据流命令
**-------------------------------------------------------------------------------------
*/
char StrCom(unsigned char Line,unsigned char StartL)
{
     //在此处添加各系统的发送命令
     if( SysID == HFDRF ||  SysID == HFDRFMT || SysID == HFLBDRF )          //哈飞汽车 -> 德尔福电控 -> 民意MT20 -> 路宝ENG
     {
          if( Line != StartL )     return SUCCESS;
          TagStr.strsend[0] = 0x82;
          TagStr.strsend[1] = 0x11;
          TagStr.strsend[2] = 0xF1;
          TagStr.strsend[3] = 0x21;
          TagStr.strsend[4] = 0x01;
          TagStr.strsend[5] = 0xA6;
          //开始发送
          KW_Send( TagStr.strsend, 10 );
          if( !KW_Read( TagStr.strread, 800, 255 ) )
          {
               return FAIL;
          }
          else
          {
               //delay( 50 );   //Delay For Smoop
               return SUCCESS;
          }
     }
     else if( SysID == HFM154 )    //哈飞汽车 -> 联电M154
     {
          unsigned char StrCommand[13][8]=
          {
               {0x04,0x00,0x29,0x01,0x03},
               {0x04,0x00,0x29,0x01,0x03},
               {0x04,0x00,0x29,0x01,0x03},
               {0x04,0x00,0x29,0x00,0x03},
               {0x04,0x00,0x29,0x02,0x03},
               {0x04,0x00,0x29,0x02,0x03},
               {0x04,0x00,0x29,0x02,0x03},
               {0x06,0x0A,0x01,0x03,0x00,0x69,0x03},
               {0x04,0x00,0x29,0x04,0x03},
               {0x04,0x00,0x29,0x09,0x03},
               {0x04,0x00,0x29,0x05,0x03},
               {0x06,0x56,0x01,0x01,0x07,0x51,0x03},
               {0x06,0xA0,0x01,0x01,0x02,0x49,0x03}
          };
          //开始发送
          VW_Send( StrCommand[Line], 10 );
          if( !VW_Read( TagStr.strread, 800, 255 ) )
          {
               return FAIL;
          }
          else
          {
               //delay( 50 );   //Delay For Smoop
               return SUCCESS;
          }
     }
     else if( SysID == HFSMABS )   //哈飞汽车 -> 赛马ABS
     {
          unsigned char StrID[] =
          {
               0x01, 0x01, 0x0A, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E,
               0x1F, 0x22, 0x22, 0x23, 0x26, 0x26, 0x26, 0x26,
               0x26, 0x26, 0x26, 0x26,
          };   //数据流ID
          TagStr.strsend[0] = 6;
          TagStr.strsend[1] = 0x68;
          TagStr.strsend[2] = 0x6A;
          TagStr.strsend[3] = 0xF1;
          TagStr.strsend[4] = 0xB1;
          TagStr.strsend[5] = StrID[ Line ];
          TagStr.strsend[6] = 0x7E;
          //开始发送
          ISO686A_Send( TagStr.strsend, 10 );
          if( !ISO686A_Recive( TagStr.strread, 800, 255 ) )
          {
               return FAIL;
          }
          else
          {
               //delay( 100 );   //Delay For Smoop
               return SUCCESS;
          }

     }
     return FAIL;
}
/*
**-------------------------------------------------------------------------------------
* 数据流显示函数
**-------------------------------------------------------------------------------------
*/
char Strdata()
{
     //此处添加各系统的数据流文本信息
     unsigned char *streamHFDRF[] =    //哈飞汽车 -> 德尔福电控
     {
          "DTC ......",
          "IMP ......",
          "B.VOL ....",
          "IAT ......",
          "ECT ......",
          "ESA ......",
          "ACP ......",
          "CCESC UNIT",

          "TPV ......",
          "TP .......",
          "VEH.S ....",
          "R.TS .....",
          "ENG.S ....",
          "IPW ......",
          "IMCP .....",
          "O2S ......",

          "HO2SCA ...",
          "L.UNIT ...",
          "LEARN ....",
          "O2S.C.N ..",
          "A/F ......",
          "RTime ....",
          "EVAP.T(F).",
          "EVAP.T(A).",

          "ODM ......",
          "SD.1CYL ..",
          "SD.2CYL ..",
          "SD.3CYL ..",
          "SD.4CYL .."
     };
     unsigned char *streamHFMT20[] =    //哈飞汽车 -> 德尔福MT20
     {
          "DTC ......",
          "IMP ......",
          "B.VOL ....",
          "IAT ......",
          "ECT ......",
          "ESA ......",
          "ACP ......",
          "CCESC UNIT",

          "TPV ......",
          "TP .......",
          "VEH.S ....",
          "R.TS .....",
          "ENG.S ....",
          "IPW ......",
          "IMCP .....",
          "O2S ......",

          "HO2SCA ...",
          "L.UNIT ...",
          "LEARN ....",
          "O2S.C.N ..",
          "A/F ......",
          "RTime ....",
          "EVAP.T(F).",
          "EVAP.T(A)."
     };
     unsigned char *streamENGM154[] =  //哈飞汽车 -> M154电控系统
     {
          "ENG.S ...",
          "ECT .....",
          "ESA .....",
          "TP ......",
          "IPW .....",
          "SYS.V ...",
          "IAT .....",
          "IPS .....",

          "VEH.S ...",
          "IPM .....",
          "CED .....",
          "IAC .....",
          "O2S .....",
     };
     unsigned char *streamHFLBENG[] =    //哈飞汽车 -> 路宝ENG
     {
          "IMP1 .....",
          "IMP2 .....",
          "B.VOL ....",
          "IATS .....",
          "IAT ......",
          "CTS ......",
          "ECT ......",
          "VEH.S ....",

          "ENG.S ....",
          "P.TS .....",
          "R.TS .....",
          "TPV ......",
          "TPR ......",
          "TP.PWM ...",
          "EVN.TEMP .",
          "TPAS .....",

          "CT .......",
          "IPW ......",
          "ESA ......",
          "DS-1 .....",
          "DS-2 .....",
          "O2S.VOL ..",
          "ENG.F.D ..",
          "FTLT .....",

          "FSC ......",
          "IAS.R ...."
     };
     unsigned char *streamHFABS[] =    //哈飞汽车 -> 赛马ABS
     {
          "DTC NUM.",
          "DTC LIGHT",
          "BATTERY VOL",
          "LF WHEEL SPD",
          "RF WHEEL SPD",
          "LB WHEEL SPD",
          "RB WHEEL SPD",
          "WARING LIGHT",

          "DRIVE PEDAL",
          "MOTOR RELAY",
          "ELEC. RELAY",
          "MOTOR",
          "LF ELEC. IN.",
          "RF ELEC. IN.",
          "LB ELEC. IN.",
          "RB ELEC. IN.",

          "LF ELEC. OUT.",
          "RF ELEC. OUT.",
          "LB ELEC. OUT.",
          "RB ELEC. OUT."
     };
     unsigned char SMaxl = 0;     //数据流项目数
     unsigned char Rep = W_NULL;   // 用户选定项
     unsigned char Line = 0;       //当前处理行
     unsigned char Userline = 0;
     unsigned char StartL = 0;     //当前起始行
     ScreenInit( W_STREAM );
     //在此处添加各系统的数据流菜单装载代码
     if( SysID == HFDRF )          //哈飞汽车 -> 德尔福电控
     {
          SMaxl = 29;
          AddMenu( streamHFDRF, SMaxl );
     }
     else if( SysID == HFDRFMT )   //哈飞汽车 -> 民意MT20
     {
          SMaxl = 24;
          AddMenu( streamHFMT20, SMaxl );
     }
     else if( SysID == HFM154 )    //哈飞汽车 -> 联电M154
     {
          SMaxl = 13;
          AddMenu( streamENGM154, SMaxl );
     }
     else if( SysID == HFLBDRF )   //哈飞汽车 -> 路宝ENG
     {
          SMaxl = 26;
          AddMenu( streamHFLBENG, SMaxl );
     }
     else if( SysID == HFSMABS )   //哈飞汽车 -> 赛马ABS
     {
          SMaxl = 20;
          AddMenu( streamHFABS, SMaxl );
     }
     Line = 0;
     while( Rep != W_RETURN )
     {
          //正在发送
          if( !StrCom( Line, StartL ) )
          {
               return FAIL;
          }
          else
          {
               //NULL
          }
          //显示文本
          Rep = ScreenAct( &StartL, &Userline );
          //显示数据
          if( Rep  == W_OK )   //用户选定数据流帮助
          {
               Rep = UserRep();
               StreamHelp( Rep );  //数据流帮助
               ScreenInit( W_STREAM );
               //在此处添加各系统的数据流菜单装载代码
               if( SysID == HFDRF )          //哈飞汽车 -> 德尔福电控
               {
                    SMaxl = 29;
                    AddMenu( streamHFDRF, SMaxl );
               }
               else if( SysID == HFDRFMT )   //哈飞汽车 -> 民意MT20
               {
                    SMaxl = 24;
                    AddMenu( streamHFMT20, SMaxl );
               }
               else if( SysID == HFM154 )    //哈飞汽车 -> 联电M154
               {
                    SMaxl = 13;

⌨️ 快捷键说明

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