VeriStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Deploy VCD Engine as a Packed Library to Linux_x64

Solved!
Go to solution

Hi all,

 

I would like to configure the deployment of my VCD engine to a Linux_x64 target. The standard way of doing would be through an LLB. However, as I have seen on the LV forum and through the feedback of my colleagues, LLBs seem to suffer from naming collision issues when containing classes or libraries with VIs of the same name. This produces additional folders next to the LLB and thus forces to create lots of other file dependencies in addition to the main Engine LLB itself.

 

So I have tried to build my Engine library (that contains "RT Driver VI.vi") to a packed library (under my Linux_x64 target) and deploy it instead of an LLB.

Unfortunately, when adding the CD to the System Explorer, I get the following error message:

"Dependent File Property 'Driver VI Path_0' does not have a valid path.
C:\Users\Public\Documents\National Instruments\NI VeriStand 2021\Custom Devices\Company_Name\CD_Name\Linux_x64_engine\CD_Name Engine.lvlibp\RT Driver VI.vi"

 

Here is the associated section of my VCD XML:

 

<CustomDeviceVI>
    <SourceDistribution>
      <Source>
        <SupportedTarget>Linux_x64</SupportedTarget>
        <Source>
          <Type>To Common Doc Dir</Type>
          <Path>Custom Devices\Company_Name\CD_Name\Linux_x64_engine\CD_Name Engine.lvlibp\RT Driver VI.vi</Path>
        </Source>
        <RealTimeSystemDestination>c:\ni-rt\VeriStand\Custom Devices\Company_Name\CD_Name\Linux_x64_engine\CD_Name Engine.lvlibp\RT Driver VI.vi</RealTimeSystemDestination>
      </Source>
    </SourceDistribution>
  </CustomDeviceVI>

 

So, is the deployment of a VCD through an lvlibp even possible ?

If not directly, could that be done by having a "normal" VI that wraps a compiled VI from the lvlibp ?

Or are there any alternatives to prevent the naming collision issues ?

 

Thanks,

Raphaël.

0 Kudos
Message 1 of 3
(2,197 Views)
Solution
Accepted by topic author raphschru

Are you following all the instructions in Migrating from LLB to PPL — VeriStand Custom Device Handbook 1.0.0 documentation?

-------------------------------------------------------
Applications Engineer | TME Systems
https://tmesystems.net/
0 Kudos
Message 2 of 3
(2,192 Views)

By following the mentioned guidelines, and after lots of deployment errors and retries, I finally managed to deploy and execute my VCD RT engine as a PPL !

 

Some issues I encountered:

 

1. I discovered a Bug that can break VIs during the PPL compilation process. The compilation works fine, the error only appears when VeriStand tries to execute the driver VI. This is especially hard to detect since the PPL is compiled for Linux, so I was unable to "open" the compiled VIs to check if it is broken…

 

2. Each time I am doing a new PPL build, I have to go to the System Explorer and make a modification to the CD so that it forces to download the new PPL on the next deployment. Otherwise, the PPL is not redeployed and the old PPL is used. On the "SetDependentFileValue" method that is called on the CD node to add the Driver VI Path dependency, I have tried to set "forceDownload" to true without success.

Message 3 of 3
(2,129 Views)