更新库
This commit is contained in:
parent
c7d020d782
commit
7382c2dc5a
@ -55,6 +55,25 @@ namespace usb2canfd{
|
|||||||
BYTE CAN_TXFP; //发送优先级管理,0-标识符决定,1-发送请求顺序决定
|
BYTE CAN_TXFP; //发送优先级管理,0-标识符决定,1-发送请求顺序决定
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class CAN_FILTER_CONFIG{
|
||||||
|
ctor( /*输入构造函数所需要的参数*/ ){
|
||||||
|
|
||||||
|
};
|
||||||
|
type=me;
|
||||||
|
/*对象的所有成员必须用分号分隔*/
|
||||||
|
BYTE Enable; //使能该过滤器,1-使能,0-禁止
|
||||||
|
BYTE FilterIndex; //过滤器索引号,取值范围为0到13
|
||||||
|
BYTE FilterMode; //过滤器模式,0-屏蔽位模式,1-标识符列表模式
|
||||||
|
BYTE ExtFrame; //过滤的帧类型标志,为1 代表要过滤的为扩展帧,为0 代表要过滤的为标准帧。
|
||||||
|
INT ID_Std_Ext; //验收码ID
|
||||||
|
INT ID_IDE; //验收码IDE
|
||||||
|
INT ID_RTR; //验收码RTR
|
||||||
|
INT MASK_Std_Ext; //屏蔽码ID,该项只有在过滤器模式为屏蔽位模式时有用
|
||||||
|
INT MASK_IDE; //屏蔽码IDE,该项只有在过滤器模式为屏蔽位模式时有用
|
||||||
|
INT MASK_RTR; //屏蔽码RTR,该项只有在过滤器模式为屏蔽位模式时有用
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//CANfd信息帧的数据类型定义
|
//CANfd信息帧的数据类型定义
|
||||||
class CANFD_MSG{
|
class CANFD_MSG{
|
||||||
ctor( /*输入构造函数所需要的参数*/ ){
|
ctor( /*输入构造函数所需要的参数*/ ){
|
||||||
@ -143,7 +162,7 @@ namespace usb2canfd{
|
|||||||
{
|
{
|
||||||
import win;
|
import win;
|
||||||
DllHandle = null;
|
DllHandle = null;
|
||||||
win.msgboxTimeout("加载USB2LIN的DLL失败,请检查USB2XXX.dll和libusb-1.0.dll文件","错误",1000,);
|
win.msgboxTimeout("加载USB2LIN的DLL失败,请检查USB2XXX.dll和libusb-1.0.dll文件","错误",3000,);
|
||||||
}
|
}
|
||||||
if(DllHandle == null)return 1;
|
if(DllHandle == null)return 1;
|
||||||
return 0;
|
return 0;
|
||||||
@ -185,6 +204,7 @@ namespace usb2canfd{
|
|||||||
|
|
||||||
return ret,DeviceInfo,funcstr;
|
return ret,DeviceInfo,funcstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取设备信息
|
//获取设备信息
|
||||||
GetNowInfo = function(){
|
GetNowInfo = function(){
|
||||||
if(Hwconnected == null){
|
if(Hwconnected == null){
|
||||||
@ -204,6 +224,30 @@ namespace usb2canfd{
|
|||||||
return AvailableHW;
|
return AvailableHW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetFilter = function(index){
|
||||||
|
CANFilter = ..usb2canfd.CAN_FILTER_CONFIG();
|
||||||
|
CANFilter.FilterIndex = 0;
|
||||||
|
CANFilter.Enable = 1;
|
||||||
|
CANFilter.ExtFrame = 0; //需要过滤接收的帧为标准帧
|
||||||
|
CANFilter.FilterMode = 1;//标识符列表模式
|
||||||
|
CANFilter.ID_IDE = 0; //接收到的数据帧IDE必须为1,也就是必须为扩展帧数据
|
||||||
|
CANFilter.ID_RTR = 0; //接收到的帧类型必须为数据帧
|
||||||
|
CANFilter.ID_Std_Ext = 0x620;//接收到的帧ID必须等于CANFilter.ID_Std_Ext设置的值
|
||||||
|
var ret = DllHandle.CAN_Filter_Init(AvailableHW[index].hLINHW,0,CANFilter);
|
||||||
|
|
||||||
|
CANFilter.FilterIndex = 1;
|
||||||
|
CANFilter.ID_Std_Ext = 0x610;
|
||||||
|
var ret = DllHandle.CAN_Filter_Init(AvailableHW[index].hLINHW,0,CANFilter);
|
||||||
|
|
||||||
|
|
||||||
|
for(i=2;13;1){
|
||||||
|
CANFilter.FilterIndex = i;
|
||||||
|
CANFilter.Enable = 0;
|
||||||
|
DllHandle.CAN_Filter_Init(AvailableHW[index].hLINHW,0,CANFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//打开设备,包括初始化通道
|
//打开设备,包括初始化通道
|
||||||
OpenDevice = function(index,channel,canfd){
|
OpenDevice = function(index,channel,canfd){
|
||||||
if(index > HwNum)
|
if(index > HwNum)
|
||||||
@ -236,18 +280,20 @@ namespace usb2canfd{
|
|||||||
else {
|
else {
|
||||||
canconfig = ..usb2canfd.CAN_INIT_CONFIG();
|
canconfig = ..usb2canfd.CAN_INIT_CONFIG();
|
||||||
|
|
||||||
canconfig.CAN_Mode = 0;//0-正常模式 1-环回模式
|
canconfig.CAN_Mode = 0x80;//0-正常模式 1-环回模式 0x80终端电阻
|
||||||
|
|
||||||
canconfig.CAN_ABOM = 0;//禁止自动离线
|
canconfig.CAN_ABOM = 0;//禁止自动离线
|
||||||
canconfig.CAN_NART = 1;//禁止报文重传
|
canconfig.CAN_NART = 0;//禁止报文重传
|
||||||
canconfig.CAN_RFLM = 0;//FIFO满之后覆盖旧报文
|
canconfig.CAN_RFLM = 0;//FIFO满之后覆盖旧报文
|
||||||
canconfig.CAN_TXFP = 1;//发送请求决定发送顺序
|
canconfig.CAN_TXFP = 1;//发送请求决定发送顺序
|
||||||
//配置波特率,波特率 = 100M/(BRP*(SJW+BS1+BS2))
|
//配置波特率,波特率 = 42M/(BRP*(SJW+BS1+BS2))
|
||||||
canconfig.CAN_BRP = 25;
|
canconfig.CAN_BRP = 4;
|
||||||
canconfig.CAN_BS1 = 2;
|
canconfig.CAN_BS1 = 15;
|
||||||
canconfig.CAN_BS2 = 1;
|
canconfig.CAN_BS2 = 5;
|
||||||
canconfig.CAN_SJW = 1;
|
canconfig.CAN_SJW = 2;
|
||||||
ret = DllHandle.CAN_Init(AvailableHW[index].hLINHW,channel,canconfig);
|
ret = DllHandle.CAN_Init(AvailableHW[index].hLINHW,channel,canconfig);
|
||||||
|
//console.log("init ret = " + ret);
|
||||||
|
this.SetFilter(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
canfd_connected = canfd;
|
canfd_connected = canfd;
|
||||||
@ -310,10 +356,28 @@ namespace usb2canfd{
|
|||||||
|
|
||||||
msg.DLC = #data;
|
msg.DLC = #data;
|
||||||
msg.Data = data;
|
msg.Data = data;
|
||||||
|
|
||||||
|
//console.dumpJson(msg);
|
||||||
|
//console.log("Hwconnected = " + Hwconnected);
|
||||||
|
//console.log("Chconntected = " + Chconntected);
|
||||||
ret = DllHandle.CANFD_SendMsg(Hwconnected,Chconntected,msg,1);
|
ret = DllHandle.CANFD_SendMsg(Hwconnected,Chconntected,msg,1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var msg = ..usb2canfd.CAN_MSG();
|
var msg = ..usb2canfd.CAN_MSG();
|
||||||
|
//msg.Flags = 0;
|
||||||
|
if(id <= 0x7ff){
|
||||||
|
msg.ID = id; //| (1<<31);//扩展帧
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.ID = id | (1<<31);//扩展帧
|
||||||
|
}
|
||||||
|
msg.ExternFlag = 0;
|
||||||
|
msg.RemoteFlag = 0;
|
||||||
|
msg.DataLen = #data;
|
||||||
|
msg.Data = data;
|
||||||
|
//console.log("发送报文")
|
||||||
|
ret = DllHandle.CAN_SendMsg(Hwconnected,Chconntected,msg,1);
|
||||||
|
//console.log("ret = " + ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -341,6 +405,26 @@ namespace usb2canfd{
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//CAN
|
//CAN
|
||||||
|
do{
|
||||||
|
//raw.convertArray(raw.sizeof(..usb2canfd.CAN_MSG())
|
||||||
|
var msgbuf = {};
|
||||||
|
for(i=1;10;1){
|
||||||
|
//msgbuf.push(new ..usb2canfd.CAN_MS())
|
||||||
|
var temp = ..usb2canfd.CAN_MSG()
|
||||||
|
..table.push(msgbuf,temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
//var msgbuf = ..raw.toarray(10,"struct",..usb2canfd.CAN_MS);
|
||||||
|
ret = DllHandle.CAN_GetMsgWithSize(Hwconnected,CANIndex,msgbuf[1],1);
|
||||||
|
if(ret == 1){
|
||||||
|
var data = {};
|
||||||
|
for(i=1;msgbuf[1].DataLen;1){
|
||||||
|
data[i] = msgbuf[1].Data[i];
|
||||||
|
}
|
||||||
|
var msg = {"id"=msgbuf[1].ID;"data"=data;};//
|
||||||
|
..table.push(retdata,msg);
|
||||||
|
}
|
||||||
|
}while(ret > 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -369,6 +453,19 @@ namespace usb2canfd{
|
|||||||
return ret,2,res_data;
|
return ret,2,res_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetPower = function(state){
|
||||||
|
var ret = DllHandle.LIN_EX_CtrlPowerOut(Hwconnected,state);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
GetPower = function(){
|
||||||
|
var buf = ..raw.buffer(10);
|
||||||
|
var ret = DllHandle.LIN_EX_GetVbatValue(Hwconnected,buf);
|
||||||
|
|
||||||
|
return ret,buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user