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