📄 linkecu.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 + -