You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
2.4 KiB
C#
45 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace USB2XXX
|
|
{
|
|
class USB2K
|
|
{
|
|
//定义函数返回错误代码
|
|
public const Int32 K_SUCCESS = (0); //函数执行成功
|
|
public const Int32 K_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
|
|
public const Int32 K_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
|
|
public const Int32 K_ERR_USB_READ_FAIL = (-3); //USB读数据失败
|
|
public const Int32 K_ERR_CMD_FAIL = (-4); //命令执行失败
|
|
public const Int32 K_ERR_SERVER_NO_RESPONSE = (-5); //ECU无响应
|
|
public const Int32 K_ERR_RESPONSE = (-6); //ECU响应数据错误
|
|
public const Int32 K_ERR_SEND_DATA = (-7); //数据发送出错
|
|
public const Int32 K_ERR_CHECK_ERROR = (-8); //数据发送出错
|
|
//定义初始化K的数据类型
|
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
|
public struct K_MSG
|
|
{
|
|
public Byte Fmt; //Format byte, K_MSG_FMT
|
|
public Byte TgtAddr; //This is the target address for the message. It may be a physical or a functional address.
|
|
public Byte SrcAddr; //Source address
|
|
public Byte Len; //This byte is provided if the length in the header byte Fmt.DataLen is set to 0.
|
|
public Byte SId; //Service Identification byte
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 254, ArraySubType = UnmanagedType.I1)]
|
|
public Byte[] Data; //depending on service
|
|
public Byte CS; //Checksum byte
|
|
}
|
|
//USB2K相关函数定义
|
|
[DllImport("USB2XXX.dll")]
|
|
public static extern Int32 K_Init(Int32 DevHandle, Byte Channel,Int32 BaudRate);
|
|
[DllImport("USB2XXX.dll")]
|
|
public static extern Int32 K_5BaudInit(Int32 DevHandle, Byte Channel,Byte Addr,Byte[] pKB1,Byte[] pKB2);
|
|
[DllImport("USB2XXX.dll")]
|
|
public static extern Int32 K_FastInit(Int32 DevHandle, Byte Channel,IntPtr pRequest,IntPtr pResponse,Byte InterByteTimeMs);
|
|
[DllImport("USB2XXX.dll")]
|
|
public static extern Int32 K_Request(Int32 DevHandle, Byte Channel,IntPtr pRequest,IntPtr pResponse,Byte InterByteTimeMs,Int32 ResponseTimeOutMs);
|
|
}
|
|
}
|