LabView vs .NET Function Discrepancy for USB-to-CAN V2


#1

I have a need to run both the .NET and LabView based code on an XP Embedded system (WES2009) with .NET 4.0 installed.
I have extracted the vcinet4.dll for use in the .NET application. This runs on the XPE system without issue with only the vci_3_5_4_4543.exe installed on the system (the vcinet4.dll is embedded in the .NET application bin folder).
I’d like to use this same vcinet4.dll with labview, but it seems that this is not currently possible as it relies on the C:\Windows\assembly location to include vcinet4 which it does not from this install or even after installing vciv3-net_3_5_53_0.exe. (vciv3-net_3_5_53_0.exe does install vcinet2 to the GAC, but only on my Win7 development machine, not when installed on the XPE system.)

Specifically looking for the .NET function ICanMessageReader.FillCount. The only similar one available in vcilva.dll is inside CanChannelGetStatus.vi and the library call is lv_canChannelGetStatus status.RX Load(%). With this I cannot tell if there are any messages available unless I set the buffer size to 100 messages (but I’m using 1000 to match closely to the examples).

Is there a similar LabView usable version of vcinet4.dll? If not, could a header for the vcinet4.dll be provided so it can be imported into LabView?


#2

Hi Kersten,

I’m going to check with some colleagues in Sweden and see what I can find out for you


#4

Thank you Tim!


#5

Hi Kersten,

Here’s what I heard back from them:

1.1 Is there a similar LabView usable version of vcinet4.dll?

No, unfortunately the LabView API use the vcilva.dll

1.2. > If not, could a header for the vcinet4.dll be provided so it can be imported into LabView?”

a) Unfortunately I need to ask the responsible product manager, but
it will be possible only in Oktober, but
even if we can send to you the header file of the vcinet4.dll
could you please let me know why do you need it?
I am not sure that it will help you, because
the “getFillCount” of the vcinet4.dll need a handle to the Reader Unit,
that do not have the access to the same CAN-Channel Unit used in the vcilva.dll.

b) The VCI V4 installs a programming example for the C++ API (vciapi.dll),
that has the “getFillCount” Function.

2.1. The VCI V3.5.4.4543 installs the C-API (vcinpl.dll) and LabView-32bit-API (vcilva.dll)
The VCI V3.5.4.4543 does not install the VCI3.NET-API (vcinet2.dll and vcinet4.dll).

The VCI3.NET-Addon V3.5.53.0 installs the VCI3.NET API for the VCI V3.5.4.4543
(vcinet2.dll for the .NET-Framework 2.0 and vcinet4.dll for the .NET-Framework 4.x)

2.2. Internally the C-API (vcinpl.dll) and the VCI3.NET API (vcinet2.dll and vcinet4.dll)
access the VCI3 C++ API (vciapi.dll).
The LabView API (vcilva.dll) internally access the C-API (vcinpl.dll).

vcilva.dll—>vcinpl.dll—>vciapi.dll—>vcisrv.sys
vcinet.dll—>vciapi.dll—>vcisrv.sys

See the “Fig.1-1 System componentes” in the “§1 System overview” in the C-API manual.

2.3. The LabView API is the same like the C-API.

2.4. The VCI3.NET-Addon V3.5.53.0 installs the VCI3.NET API vcinet2.dll in the GAC.
Please copy the vcinet4.dll (32bit) from the VCI3 installation directory
in to the directory with the EXE file of your .NET application.
c:\Program Files\IXXAT\VCI 3.5\dotnet\vcinet4.dll

  1. Could you please let me know why do you need the function “FillCount”?
    Usually your LabView application should always cyclically read the CAN messages
    using the function vciChannelReadMessage.
    The function vciControlReadMessage returns immediately with the received message if a CAN message was received.
    The function vciControlReadMessage returns after the “timeout” if no CAN message was received.
    (Please note,
    there are not only CAN-Messages in the Receive-Queue but also Info-messages.
    See the §5.2.5CANMSGINFO of the C-API manual)

#6

Thank you for the detailed response. It seems that the GAC installation isn’t working on our XPE system to be able to use the vcinet2.dll with LabView. Would it be possible to get the headers for vcinpl.dll or vciapi.dll? With the headers we can directly bundle those .dlls in the installation and call the functions directly since these are not installed through the VCI V3.5.4.4543 installation.


#7

Hi Kersten,

It looks like my colleagues that were helping on this ticket are currently moving offices but I’ll try to get back to you as soon as they’re available

Thanks,
-Tim


#8

Hey Kersten,

Here’s what I heard back from them:

" Please find the VCI3 programming example with the header files for the vcinpl.dll and

The VCI4 programming example with the header files for the vciapi.dll

(The C++ API (vciapi.dll) is the same in the VCI V3 and VCI V4)"

Unsupported File Types Alert.txt (175 Bytes)


#9

Looks like the link got rejected, the attachment was changed to a text file with the following content:
Malware was detected in one or more attachments included with this email message.
Action: All attachments have been removed.
VCI4-Cpp-API-VCIAPI-Original-example.zip exe


#10

Whoops sorry about that, I’ll try and get in touch with him again


#11

Hi Kersten,

You should be able to reach the files here

https://fileshare.hms.se?container=k4Lb8BL8JB2Ar8PT2aR4262kq3354gu4e73HG2Uu62F7j


#12

Thank you Tim, I was able to download from this location.


#13

You’re welcome, let me know if you have any questions