其他程序的CAN CANFD LIN的移植
This commit is contained in:
57
CapMachine.Wpf/CanDrive/CanFD/DBCParserByFD.cs
Normal file
57
CapMachine.Wpf/CanDrive/CanFD/DBCParserByFD.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CapMachine.Wpf.CanDrive.CanFD
|
||||
{
|
||||
/// <summary>
|
||||
/// 和DBCParser一样,但用于处理USB设备的DBC文件解析。
|
||||
/// DBCParserByFD类用于处理USB设备的DBC文件解析。
|
||||
/// </summary>
|
||||
public class DBCParserByFD
|
||||
{
|
||||
public const Int32 DBC_PARSER_OK = 0;//没有错误
|
||||
public const Int32 DBC_PARSER_FILE_OPEN = (-1);//打开文件出错
|
||||
public const Int32 DBC_PARSER_FILE_FORMAT = (-2);//文件格式错误
|
||||
public const Int32 DBC_PARSER_DEV_DISCONNECT = (-3);//设备未连接
|
||||
public const Int32 DBC_PARSER_HANDLE_ERROR = (-4);//LDF Handle错误
|
||||
public const Int32 DBC_PARSER_GET_INFO_ERROR = (-5);//获取解析后的数据出错
|
||||
public const Int32 DBC_PARSER_DATA_ERROR = (-6);//数据处理错误
|
||||
public const Int32 DBC_PARSER_SLAVE_NACK = (-7);//从机未响应数据
|
||||
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern UInt64 DBC_ParserFile(int DevHandle, StringBuilder pDBCFileName);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetMsgQuantity(UInt64 DBCHandle);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetMsgName(UInt64 DBCHandle, int index, StringBuilder pMsgName);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetMsgSignalQuantity(UInt64 DBCHandle, StringBuilder pMsgName);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetMsgSignalName(UInt64 DBCHandle, StringBuilder pMsgName, int index, StringBuilder pSignalName);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetMsgPublisher(UInt64 DBCHandle, StringBuilder pMsgName, StringBuilder pPublisher);
|
||||
//设置信号值
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_SetSignalValue(UInt64 DBCHandle, StringBuilder pMsgName, StringBuilder pSignalName, double Value);
|
||||
//获取信号值
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetSignalValue(UInt64 DBCHandle, StringBuilder pMsgName, StringBuilder pSignalName, double[] pValue);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_GetSignalValueStr(UInt64 DBCHandle, StringBuilder pMsgName, StringBuilder pSignalName, StringBuilder pValueStr);
|
||||
|
||||
//将CAN消息数据填充到信号里面
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_SyncCANMsgToValue(UInt64 DBCHandle, IntPtr pCANMsg, int MsgLen);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_SyncCANFDMsgToValue(UInt64 DBCHandle, IntPtr pCANFDMsg, int MsgLen);
|
||||
//将信号数据填充到CAN消息里面
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_SyncValueToCANMsg(UInt64 DBCHandle, StringBuilder pMsgName, IntPtr pCANMsg);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 DBC_SyncValueToCANFDMsg(UInt64 DBCHandle, StringBuilder pMsgName, IntPtr pCANFDMsg);
|
||||
}
|
||||
}
|
||||
1107
CapMachine.Wpf/CanDrive/CanFD/ToomossCanFD.cs
Normal file
1107
CapMachine.Wpf/CanDrive/CanFD/ToomossCanFD.cs
Normal file
File diff suppressed because it is too large
Load Diff
161
CapMachine.Wpf/CanDrive/CanFD/USB2CANFD.cs
Normal file
161
CapMachine.Wpf/CanDrive/CanFD/USB2CANFD.cs
Normal file
@@ -0,0 +1,161 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CapMachine.Wpf.CanDrive
|
||||
{
|
||||
public class USB2CANFD
|
||||
{
|
||||
//1.CANFD信息帧的数据类型定义
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||
public struct CANFD_MSG
|
||||
{
|
||||
public UInt32 ID; //报文ID,bit[30]-RTR,bit[31]-IDE,bit[28..0]-ID
|
||||
public Byte DLC; //数据字节长度,可设置为-0,1,2,3,4,5,6,7,8,12,16,20,24,32,48,64
|
||||
public Byte Flags; //bit[0]-BRS,bit[1]-ESI,bit[2]-FDF,bit[6..5]-Channel,bit[7]-RXD
|
||||
public Byte __Res0; //保留
|
||||
public Byte TimeStampHigh;//时间戳高位
|
||||
public UInt32 TimeStamp;//帧接收或者发送时的时间戳,单位为10us
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
|
||||
public Byte[] Data; //报文的数据。
|
||||
};
|
||||
|
||||
//2.CANFD初始化配置数据类型定义
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||
public struct CANFD_INIT_CONFIG
|
||||
{
|
||||
public Byte Mode; //0-正常模式,1-自发自收模式
|
||||
public Byte ISOCRCEnable;//0-禁止ISO CRC,1-使能ISO CRC
|
||||
public Byte RetrySend;//0-禁止重发,1-无限制重发
|
||||
public Byte ResEnable;//0-不接入内部120欧终端电阻,1-接入内部120欧终端电阻
|
||||
//波特率参数可以用TCANLINPro软件里面的波特率计算工具计算
|
||||
//仲裁段波特率参数,波特率=40M/NBT_BRP*(1+NBT_SEG1+NBT_SEG2)
|
||||
public Byte NBT_BRP;
|
||||
public Byte NBT_SEG1;
|
||||
public Byte NBT_SEG2;
|
||||
public Byte NBT_SJW;
|
||||
//数据段波特率参数,波特率=40M/DBT_BRP*(1+DBT_SEG1+DBT_SEG2)
|
||||
public Byte DBT_BRP;
|
||||
public Byte DBT_SEG1;
|
||||
public Byte DBT_SEG2;
|
||||
public Byte DBT_SJW;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.I1)]
|
||||
public Byte[] __Res0;//保留
|
||||
};
|
||||
//3.CANFD诊断帧信息结构体定义
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||
public struct CANFD_DIAGNOSTIC
|
||||
{
|
||||
public Byte NREC;//标称比特率接收错误计数
|
||||
public Byte NTEC;//标称比特率发送错误计数
|
||||
public Byte DREC;//数据比特率接收错误计数
|
||||
public Byte DTEC;//数据比特率发送错误计数
|
||||
public UInt16 ErrorFreeMsgCount;//无错误帧计数
|
||||
public UInt16 Flags;//参考诊断标志定义
|
||||
};
|
||||
//4.CANFD总线错误信息结构体定义
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||
public struct CANFD_BUS_ERROR
|
||||
{
|
||||
public Byte TEC;//发送错误计数
|
||||
public Byte REC;//接收错误计数
|
||||
public Byte Flags;//参考总线错误标志定义
|
||||
public Byte __Res0;
|
||||
};
|
||||
//5.CAN 滤波器设置数据类型定义
|
||||
public struct CANFD_FILTER_CONFIG
|
||||
{
|
||||
public Byte Enable; //使能该过滤器,1-使能,0-禁止
|
||||
public Byte Index; //过滤器索引号,取值范围为0到31
|
||||
public Byte __Res0;
|
||||
public Byte __Res1;
|
||||
public UInt32 ID_Accept; //验收码ID,bit[28..0]为有效ID位,bit[31]为IDE
|
||||
public UInt32 ID_Mask; //屏蔽码,对应bit位若为1,则需要对比对应验收码bit位,相同才接收
|
||||
};
|
||||
|
||||
//函数返回错误代码定义
|
||||
public const Int32 CANFD_SUCCESS = (0); //函数执行成功
|
||||
public const Int32 CANFD_ERR_NOT_SUPPORT = (-1); //适配器不支持该函数
|
||||
public const Int32 CANFD_ERR_USB_WRITE_FAIL = (-2); //USB写数据失败
|
||||
public const Int32 CANFD_ERR_USB_READ_FAIL = (-3); //USB读数据失败
|
||||
public const Int32 CANFD_ERR_CMD_FAIL = (-4); //命令执行失败
|
||||
//CANFD_MSG.ID定义
|
||||
public const Int32 CANFD_MSG_FLAG_RTR = (1 << 30);
|
||||
public const Int32 CANFD_MSG_FLAG_IDE = (1 << 31);
|
||||
public const Int32 CANFD_MSG_FLAG_ID_MASK = (0x1FFFFFFF);
|
||||
//CANFD_MSG.Flags定义
|
||||
public const Int32 CANFD_MSG_FLAG_BRS = (1 << 0);
|
||||
public const Int32 CANFD_MSG_FLAG_ESI = (1 << 1);
|
||||
public const Int32 CANFD_MSG_FLAG_FDF = (1 << 2);
|
||||
public const Int32 CANFD_MSG_FLAG_RXD = (1 << 7);
|
||||
//CANFD_DIAGNOSTIC.Flags定义
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_NBIT0_ERR = (0x0001);//在发送报文(或应答位、主动错误标志或过载标志)期间,器件要发送显性电平(逻辑值为0的数据或标识符位),但监视的总线值为隐性。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_NBIT1_ERR = (0x0002);//在发送报文(仲裁字段除外)期间,器件要发送隐性电平(逻辑值为1的位),但监视到的总线值为显性。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_NACK_ERR = (0x0004);//发送报文未应答。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_NFORM_ERR = (0x0008);//接收报文的固定格式部分格式错误。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_NSTUFF_ERR = (0x0010);//在接收报文的一部分中,序列中包含了5个以上相等位,而报文中不允许出现这种序列。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_NCRC_ERR = (0x0020);//接收的报文的CRC校验和不正确。输入报文的CRC与通过接收到的数据计算得到的CRC不匹配。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_TXBO_ERR = (0x0080);//器件进入离线状态(且自动恢复)。
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_DBIT0_ERR = (0x0100);//见NBIT0_ERR
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_DBIT1_ERR = (0x0200);//见NBIT1_ERR
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_DFORM_ERR = (0x0800);//见NFORM_ERR
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_DSTUFF_ERR = (0x1000);//见NSTUFF_ERR
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_DCRC_ERR = (0x2000);//见NCRC_ERR
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_ESI_ERR = (0x4000);//接收的CAN FD报文的ESI标志置1
|
||||
public const Int32 CANFD_DIAGNOSTIC_FLAG_DLC_MISMATCH = (0x8000);//DLC不匹配,在发送或接收期间,指定的DLC大于FIFO元素的PLSIZE
|
||||
//CANFD_BUS_ERROR.Flags定义
|
||||
public const Int32 CANFD_BUS_ERROR_FLAG_TX_RX_WARNING = (0x01);
|
||||
public const Int32 CANFD_BUS_ERROR_FLAG_RX_WARNING = (0x02);
|
||||
public const Int32 CANFD_BUS_ERROR_FLAG_TX_WARNING = (0x04);
|
||||
public const Int32 CANFD_BUS_ERROR_FLAG_RX_BUS_PASSIVE = (0x08);
|
||||
public const Int32 CANFD_BUS_ERROR_FLAG_TX_BUS_PASSIVE = (0x10);
|
||||
public const Int32 CANFD_BUS_ERROR_FLAG_TX_BUS_OFF = (0x20);
|
||||
//USB2CANFD相关函数定义
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_GetCANSpeedArg(Int32 DevHandle, ref CANFD_INIT_CONFIG pCanConfig, UInt32 SpeedBpsNBT, UInt32 SpeedBpsDBT);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_Init(Int32 DevHandle, Byte CANIndex, ref CANFD_INIT_CONFIG pCanConfig);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_Init2(Int32 DevHandle, Byte CANIndex, Int32 BaudRateNBTBps, Int32 BaudRateDBTBps, Byte EnResistor, Byte ISOCRCEnable);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_StartGetMsg(Int32 DevHandle, Byte CANIndex);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_StopGetMsg(Int32 DevHandle, Byte CANIndex);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_SendMsg(Int32 DevHandle, Byte CANIndex, CANFD_MSG[] pCanSendMsg, Int32 SendMsgNum);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_SendMsgWithTime(Int32 DevHandle, Byte CANIndex, CANFD_MSG[] pCanSendMsg, Int32 SendMsgNum);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_GetMsg(Int32 DevHandle, Byte CANIndex, IntPtr pCanGetMsg, Int32 BufferSize);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_ClearMsg(Int32 DevHandle, Byte CANIndex);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_SetFilter(Int32 DevHandle, Byte CANIndex, ref CANFD_FILTER_CONFIG pCanFilter, Byte Len);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_FilterList_Init(Int32 DevHandle, Byte CANIndex, UInt32[] pIDList, Byte IDListLen);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_GetDiagnostic(Int32 DevHandle, Byte CANIndex, ref CANFD_DIAGNOSTIC pCanDiagnostic);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_GetBusError(Int32 DevHandle, Byte CANIndex, ref CANFD_BUS_ERROR pCanBusError);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_Stop(Int32 DevHandle, Byte CANIndex);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_SetSchedule(Int32 DevHandle, Byte CANIndex, CANFD_MSG[] pCanMsgTab, Byte[] pMsgNum, UInt16[] pSendTimes, Byte MsgTabNum);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_StartSchedule(Int32 DevHandle, Byte CANIndex, Byte MsgTabIndex, Byte TimePrecMs, Byte OrderSend);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_UpdateSchedule(Int32 DevHandle, Byte CANIndex, Byte MsgTabIndex, Byte MsgIndex, CANFD_MSG[] pCanMsg, Byte MsgNum);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_StopSchedule(Int32 DevHandle, Byte CANIndex);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int64 CANFD_GetStartTime(Int32 DevHandle, Byte CANIndex);
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_ResetStartTime(Int32 DevHandle, Byte CANIndex);
|
||||
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 CANFD_SetRelay(Int32 DevHandle, Byte RelayState);
|
||||
}
|
||||
}
|
||||
143
CapMachine.Wpf/CanDrive/CanFD/USB_DEVICEByFD.cs
Normal file
143
CapMachine.Wpf/CanDrive/CanFD/USB_DEVICEByFD.cs
Normal file
@@ -0,0 +1,143 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CapMachine.Wpf.CanDrive.CanFD
|
||||
{
|
||||
/// <summary>
|
||||
/// 和USB_DEVICE一样,但用于处理USB设备的CAN FD协议。
|
||||
/// </summary>
|
||||
public class USB_DEVICEByFD
|
||||
{
|
||||
//定义电压输出值
|
||||
public const Byte POWER_LEVEL_NONE = 0; //不输出
|
||||
public const Byte POWER_LEVEL_1V8 = 1; //输出1.8V
|
||||
public const Byte POWER_LEVEL_2V5 = 2; //输出2.5V
|
||||
public const Byte POWER_LEVEL_3V3 = 3; //输出3.3V
|
||||
public const Byte POWER_LEVEL_5V0 = 4; //输出5.0V
|
||||
//设备信息定义
|
||||
public struct DEVICE_INFO
|
||||
{
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||
public Byte[] FirmwareName; //固件名称字符串
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||
public Byte[] BuildDate; //固件编译时间字符串
|
||||
public UInt32 HardwareVersion;//硬件版本号
|
||||
public UInt32 FirmwareVersion;//固件版本号
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public UInt32[] SerialNumber; //适配器序列号
|
||||
public UInt32 Functions; //适配器当前具备的功能
|
||||
}
|
||||
//方法定义
|
||||
/**
|
||||
* @brief 初始化USB设备,并扫描设备连接数,必须调用
|
||||
* @param pDevHandle 每个设备的设备号存储地址
|
||||
* @retval 扫描到的设备数量
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern Int32 USB_ScanDevice(Int32[] pDevHandle);
|
||||
/**
|
||||
* @brief 打开设备,必须调用
|
||||
* @param DevHandle 设备索引号
|
||||
* @retval 打开设备的状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool USB_OpenDevice(Int32 DevHandle);
|
||||
/**
|
||||
* @brief 关闭设备
|
||||
* @param DevHandle 设备索引号
|
||||
* @retval 关闭设备的状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool USB_CloseDevice(Int32 DevHandle);
|
||||
/**
|
||||
* @brief 复位设备程序,复位后需要重新调用USB_ScanDevice,USB_OpenDevice函数
|
||||
* @param DevHandle 设备索引号
|
||||
* @retval 复位设备的状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool USB_ResetDevice(Int32 DevHandle);
|
||||
|
||||
/**
|
||||
* @brief 检测到USB断开连接后,重新连接设备
|
||||
* @param DevHandle 设备号
|
||||
* @retval 重连状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool USB_RetryConnect(Int32 DevHandle);
|
||||
|
||||
/**
|
||||
* @brief 获取设备信息,比如设备名称,固件版本号,设备序号,设备功能说明字符串等
|
||||
* @param DevHandle 设备索引号
|
||||
* @param pDevInfo 设备信息存储结构体指针
|
||||
* @param pFunctionStr 设备功能说明字符串
|
||||
* @retval 获取设备信息的状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_GetDeviceInfo(Int32 DevHandle, ref DEVICE_INFO pDevInfo, StringBuilder pFunctionStr);
|
||||
/**
|
||||
* @brief 擦出用户区数据
|
||||
* @param DevHandle 设备索引号
|
||||
* @retval 用户区数据擦出状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_EraseUserData(Int32 DevHandle);
|
||||
|
||||
/**
|
||||
* @brief 向用户区域写入用户自定义数据,写入数据之前需要调用擦出函数将数据擦出
|
||||
* @param DevHandle 设备索引号
|
||||
* @param OffsetAddr 数据写入偏移地址,起始地址为0x00,用户区总容量为0x10000字节,也就是64KBye
|
||||
* @param pWriteData 用户数据缓冲区首地址
|
||||
* @param DataLen 待写入的数据字节数
|
||||
* @retval 写入用户自定义数据状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_WriteUserData(Int32 DevHandle, Int32 OffsetAddr, byte[] pWriteData, Int32 DataLen);
|
||||
|
||||
/**
|
||||
* @brief 从用户自定义数据区读出数据
|
||||
* @param DevHandle 设备索引号
|
||||
* @param OffsetAddr 数据写入偏移地址,起始地址为0x00,用户区总容量为0x10000字节,也就是64KBye
|
||||
* @param pReadData 用户数据缓冲区首地址
|
||||
* @param DataLen 待读出的数据字节数
|
||||
* @retval 读出用户自定义数据的状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_ReadUserData(Int32 DevHandle, Int32 OffsetAddr, byte[] pReadData, Int32 DataLen);
|
||||
|
||||
/**
|
||||
* @brief 设置可变电压输出引脚输出电压值
|
||||
* @param DevHandle 设备索引号
|
||||
* @param PowerLevel 输出电压值
|
||||
* @retval 设置输出电压状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_SetPowerLevel(Int32 DevHandle, byte PowerLevel);
|
||||
/**
|
||||
* @brief 或者CAN或者LIN的时间戳原始值
|
||||
* @param DevHandle 设备索引号
|
||||
* @param pTimestamp 时间戳指针
|
||||
* @retval 获取时间戳状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_GetTimestamp(Int32 DevHandle, byte BusType, Int32[] pTimestamp);
|
||||
|
||||
/**
|
||||
* @brief 复位CAN/LIN时间戳,需要在初始化CAN/LIN之后调用
|
||||
* @param DevHandle 设备索引号
|
||||
* @retval 复位时间戳状态
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_ResetTimestamp(Int32 DevHandle);
|
||||
/**
|
||||
* @brief 获取dll编译日期
|
||||
* @param pDateTime 输出DLL编译日期字符串
|
||||
* @retval 获取dll编译日期字符串
|
||||
*/
|
||||
[DllImport("USB2XXX.dll")]
|
||||
public static extern bool DEV_GetDllBuildTime(StringBuilder pDateTime);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user