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

📄 linkecu.c

📁 汽车电子解码器电缆测试。可以判断汽车故障在哪里
💻 C
字号:
/******************************************************************************************
 *  目的:通讯链路模块
 *  功能:与 ECU 建立通讯链路并获取协议
 *  模块依赖:ScreenSol.h
 ******************************************************************************************/
#include "Systemint.h"
#include "LinkECU.h"
#include "main.h"

struct  LinkE
{
     unsigned char Port1;          //通讯脚 1
     unsigned char Port2;          //通讯脚 2
     unsigned char TempDig[20];    //数据Temp
}    Taglink;

/*
**-------------------------------------------------------------------------------------
** 与 ECU 取得通讯链路
**-------------------------------------------------------------------------------------
*/
char  LinkECU()
{
#ifdef DEBUGMODE
     DebugString( "LinkECU()" );
#endif
     //根据选定系统触发
     if( SysID == HFDRF )          //哈飞汽车 -> 德尔福电控
     {
          //初始化
          KW_Init();
          //插入链路维持
          Taglink.TempDig[0] = 0x81;
          Taglink.TempDig[1] = 0x11;
          Taglink.TempDig[2] = 0xF1;
          Taglink.TempDig[3] = 0x3E;
          Taglink.TempDig[4] = 0xC1;
          KW_Maintain( Taglink.TempDig, 2000 );
          Taglink.TempDig[0] = 0x81;
          Taglink.TempDig[1] = 0x11;
          Taglink.TempDig[2] = 0xF1;
          Taglink.TempDig[3] = 0x81;
          Taglink.TempDig[4] = 0x04;
          //通讯连接
          Taglink.Port1 = 3;
          Taglink.Port2 = 0;
          if( KW_Link( Taglink.Port1, Taglink.Port2, 10400, Taglink.TempDig, 0x11 ) )
          {
               return SUCCESS;
          }

     }
     else if( SysID == HFDRFMT )   //哈飞汽车 -> 民意MT20
     {
          //初始化
          KW_Init();
          //插入链路维持
          Taglink.TempDig[0] = 0x81;
          Taglink.TempDig[1] = 0x11;
          Taglink.TempDig[2] = 0xF1;
          Taglink.TempDig[3] = 0x3E;
          Taglink.TempDig[4] = 0xC1;
          KW_Maintain( Taglink.TempDig, 2000 );
          Taglink.TempDig[0] = 0x81;
          Taglink.TempDig[1] = 0x11;
          Taglink.TempDig[2] = 0xF1;
          Taglink.TempDig[3] = 0x81;
          Taglink.TempDig[4] = 0x04;
          //通讯连接
          Taglink.Port1 = 3;
          Taglink.Port2 = 0;
          if( KW_Link( Taglink.Port1, Taglink.Port2, 10400, Taglink.TempDig, 0x11 ) )
          {
               //82 11 F1 1A 81 1F
               unsigned char Temp[200];
               Taglink.TempDig[0] = 0x82;
               Taglink.TempDig[1] = 0x11;
               Taglink.TempDig[2] = 0xF1;
               Taglink.TempDig[3] = 0x1A;
               Taglink.TempDig[4] = 0x81;
               Taglink.TempDig[5] = 0x1F;
               KW_Send( Taglink.TempDig, 10 );
               KW_Read( Temp, 500, 200 );
               return SUCCESS;
          }
     }
     else if( SysID == HFM154 )    //哈飞汽车 -> 联电M154
     {
          unsigned char Temp[20];
          unsigned char i;
          //初始化
          VW_Init();
          //插入链路维持
          Taglink.TempDig[0] = 0x03;
          Taglink.TempDig[1] = 0x00;
          Taglink.TempDig[2] = 0x09;
          Taglink.TempDig[3] = 0x03;
          VW_Maintain( Taglink.TempDig, 3000 );
          //通讯连接
          Taglink.Port1 = 3;
          Taglink.Port2 = 1;
          if( VWlink( 0x01, Taglink.Port1, Taglink.Port2 ) )
          {
               //跳过M1的版本信息
               VW_Read( Temp, 500, 20 );
               for( i=0; i<4; i++ )
               {
                    delay( 20 );
                    VW_Send( Taglink.TempDig, 10 );
                    VW_Read( Temp, 500, 20 );
               }
               return SUCCESS;
          }
     }
     else if( SysID == HFLBDRF )   //哈飞汽车 -> 路宝ENG
     {
          //初始化
          KW_Init();
          //插入链路维持
          Taglink.TempDig[0] = 0x81;
          Taglink.TempDig[1] = 0x11;
          Taglink.TempDig[2] = 0xF1;
          Taglink.TempDig[3] = 0x3E;
          Taglink.TempDig[4] = 0xC1;
          KW_Maintain( Taglink.TempDig, 2000 );
          Taglink.TempDig[0] = 0x81;
          Taglink.TempDig[1] = 0x11;
          Taglink.TempDig[2] = 0xF1;
          Taglink.TempDig[3] = 0x81;
          Taglink.TempDig[4] = 0x04;
          //通讯连接
          Taglink.Port1 = 3;
          Taglink.Port2 = 0;
          if( KW_Link( Taglink.Port1, Taglink.Port2, 10400, Taglink.TempDig, 0x11 ) )
          {
               //82 11 F1 1A 81 1F
               unsigned char Temp[200];
               Taglink.TempDig[0] = 0x82;
               Taglink.TempDig[1] = 0x11;
               Taglink.TempDig[2] = 0xF1;
               Taglink.TempDig[3] = 0x1A;
               Taglink.TempDig[4] = 0x81;
               Taglink.TempDig[5] = 0x1F;
               KW_Send( Taglink.TempDig, 10 );
               KW_Read( Temp, 500, 200 );
               return SUCCESS;
          }
     }
     else if( SysID == HFSMABS )   //哈飞汽车 -> 赛马ABS
     {
          ISO686A_Init();
          Taglink.TempDig[0] = 6;
          Taglink.TempDig[1] = 0x68;
          Taglink.TempDig[2] = 0x6A;
          Taglink.TempDig[3] = 0xF1;
          Taglink.TempDig[4] = 0xB1;
          Taglink.TempDig[5] = 0x00;
          Taglink.TempDig[6] = 0x74;
          ISO686A_Maintain( Taglink.TempDig, 2000 );
          //插入链路维持
          //通讯连接
          Taglink.Port1 = 3;
          Taglink.Port2 = 1;
          if( ISO686A_Link( Taglink.Port1, Taglink.Port2, NULL, 0x30 ) )
          {
               return SUCCESS;
          }

     }
     //else if(){
     //................................................................................
     else
     {
          //NULL
     }
     return FAIL;
}
/*
**-------------------------------------------------------------------------------------
** 与 ECU 终止通信结束本次任务
**-------------------------------------------------------------------------------------
*/
char  RelaseECU()
{
     if( SysID == HFDRF )          //哈飞汽车 -> 德尔福电控
     {

     }
     else if( SysID == HFDRFMT )   //哈飞汽车 -> 民意MT20
     {

     }
     else if( SysID == HFM154 )    //哈飞汽车 -> 联电M154
     {

     }
     else if( SysID == HFLBDRF )   //哈飞汽车 -> 路宝ENG
     {

     }
     else if( SysID == HFSMABS )   //哈飞汽车 -> 赛马ABS
     {

     }
     //else if()
     else
     {
          //NULL
     }
     return SUCCESS;

}
//----------------------------------------------------------------- End Of File --------

⌨️ 快捷键说明

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