增加usbcan功能

This commit is contained in:
sunbeam 2022-07-06 11:01:56 +08:00
parent a50d01ce7c
commit b55d450a81

View File

@ -192,12 +192,13 @@ namespace usb2canfd{
}
//打开设备,包括初始化通道
OpenDevice = function(index,channel,canfd = true){
OpenDevice = function(index,channel,canfd){
if(index > HwNum)
{ //如果序号大于最大硬件数
return 0;
}
var ret = DllHandle.USB_OpenDevice(AvailableHW[index].hLINHW)
canfd = true;
if(canfd == true){
canconfig = ..usb2canfd.CANFD_INIT_CONFIG();
@ -217,7 +218,7 @@ namespace usb2canfd{
canconfig.DBT_SEG2 = 10;
canconfig.DBT_SJW = 2;
ret = DllHandle.CANFD_Init(AvailableHW[index].hLINHW,channel,canconfig);
ret = DllHandle.CANFD_Init(AvailableHW[index].hLINHW,channel,canconfig);
}
else {
canconfig = ..usb2canfd.CAN_INIT_CONFIG();
@ -233,13 +234,14 @@ namespace usb2canfd{
canconfig.CAN_BS1 = 2;
canconfig.CAN_BS2 = 1;
canconfig.CAN_SJW = 1;
ret = DllHandle.CAN_Init(AvailableHW[index].hLINHW,channel,canconfig);
ret = DllHandle.CAN_Init(AvailableHW[index].hLINHW,channel,canconfig);
}
canfd_connected =
canfd_connected = canfd;
if(ret == 0){//调用成功
Hwconnected = AvailableHW[index].hLINHW;
Chconntected = channel;
}
else {
Hwconnected = null
@ -280,7 +282,8 @@ namespace usb2canfd{
if(#data == 0 || #data>8){//长度不对
return 0;
}
if(canfd_connect == true){
//console.log("发送报文")
if(canfd_connected == true){
var msg = ..usb2canfd.CANFD_MSG();
msg.Flags = 0;
if(id <= 0x7ff){
@ -307,18 +310,25 @@ namespace usb2canfd{
GetMsg = function(){
var ret = 0;
var retdata = {};
do{
var msgbuf = ..usb2canfd.CANFD_MSG();
ret = DllHandle.CANFD_GetMsg(Hwconnected,CANIndex,msgbuf,1);
if(ret == 1){
var data = {};
for(i=1;msgbuf.DLC;1){
data[i] = msgbuf.Data[i];
if(canfd_connected == true){
//CANFD
do{
var msgbuf = ..usb2canfd.CANFD_MSG();
ret = DllHandle.CANFD_GetMsg(Hwconnected,CANIndex,msgbuf,1);
if(ret == 1){
var data = {};
for(i=1;msgbuf.DLC;1){
data[i] = msgbuf.Data[i];
}
var msg = {"id"=msgbuf.ID;"data"=data;};//
..table.push(retdata,msg);
}
var msg = {"id"=msgbuf.ID;"data"=data;};//
..table.push(retdata,msg);
}
}while(ret > 0)
}while(ret > 0)
}
else {
//CAN
}
return retdata;
}