Jump to content

How to include RT specific VIs in package


jarnold

Recommended Posts

I am trying to build a package for code meant for RT systems. The example that I have built calls some RT specific VIs in vi.lib. When I try to build the package, VIPM says the VIs are missing and give me this dialog shown in the attachment. If I remove the example with this dependency, everything builds fine. I'm using VIPM 2012.0.0. Any ideas? Thanks.

Link to comment
Share on other sites

It should be attached this time...

 

Since the VIs require RT specific VIs, they are broken if they are opened outside of the scope of a LV project for an RT target. If they are scoped to an RT target, they are not broken. I have a feeling this is fundamentally the problem and am hoping there's a workaround of some kind. Thanks.post-5835-0-45722300-1341199018_thumb.png

Link to comment
Share on other sites

jarnold,

 

You are seeing this issue because during the build process. VIPM doesn't open the VIs in the LabVIEW RT context. We are aware of this issue and are looking at ways of making it easier to build RT and FPGA targeted packages in the future.

 

In the meantime, there is a possible workaround. You could prevent VIPM from loading the calling VI(s) that call the RT VIs. To do this, you can use one of the following 2 methods:

  • Package these files in a .zip
  • Change the file extension to something unrecognized like *.renamed

In both cases VIPM will ignore they are LabVIEW files and will not try to mass compile them or load them into memory. Then you would create a post-install and uninstall action where you would rename/unzip and/or remove the files.

Link to comment
Share on other sites

  • 7 months later...
  • 7 months later...

Just want to give an update to this issue. We are working on a fix to allow packaging code that calls RT and FPGA VIs for the next release of VIPM (2013).

 

Hi I have VIPM 2013 and am having a problem building a package that uses these exact same Watchdog VIs. Did you guys implement the fix in 2013 and if so how do I take advantage of it?

 

Thank you,

 

Jeff

Link to comment
Share on other sites

Okay so here is the situation. The missing VIs are shown here in this screenshot (see MissingVis.gif):

 

You can see the RT watchdog VIs and the RT Utility VIs are preventing my program from being built. Note that these VIs ARE inside a conditional disable structure (see CondDisable.gif).

 

I am definitely on VIPM 2013 and have tried this on a colleague's machine as well. Any thoughts?

 

Regards,

 

Jeff

 

Edit: I'm not sure if it makes a difference or not but the package destination is the Project Templates directory.

post-22832-0-67465100-1378840556_thumb.gif

post-22832-0-44901100-1378840732_thumb.gif

Link to comment
Share on other sites

Alright I have some more information. I have a test project here that has one RT VI "Test Main.vi" that has two RT specific VIs inside of it "Watchdog Configure.vi" and "Watchdog Whack.vi". This project has been attached see "VIPM Test.zip"

 

When Test Main.vi looks like this the package builds successfully.

 

See Build Pass.gif

 

Now add one VI from another package called "NI Software Watchdog" version 1.0.0.24 (available on the NI LV Tools Network).

 

See Build Fail.gif

 

If you try and build this package, it fails with this very strange error.

 

See Missing Vis.gif

 

And it says the offending VI is Test Main.vi. Which can't be true because the two missing VIs are in conditional disables.

 

See Callers.gif

 

If I didn't know any better it would seem the presence of a simple VI negates the effects of a conditional disable structure. That can't be true so I have no idea what is going on. If the problem actually has to do with the SW Watchdog package then the error messages are misleading. It took me two days to make this connection.

 

Do you have any comments on why this might be happening? The VI I have dropped on the block diagram there does not have any RT specific stuff inside of it.

VIPM Test.zip

post-22832-0-25179500-1378929280_thumb.gif

post-22832-0-87512600-1378929291_thumb.gif

post-22832-0-55883700-1378929338_thumb.gif

post-22832-0-72625600-1378929381_thumb.gif

Link to comment
Share on other sites

Sorry for not noticing this thread earlier. Do you have an lvproj file in your package source folder? VIPM looks for this and parses the project file. If it sees the missing VIs are part fo the RT application instance then it will not popup this error message.

 

You still need to put the RT VIs in a conditional as well.

Link to comment
Share on other sites

  • 3 months later...

Sorry for not noticing this thread earlier. Do you have an lvproj file in your package source folder? VIPM looks for this and parses the project file. If it sees the missing VIs are part fo the RT application instance then it will not popup this error message.

 

You still need to put the RT VIs in a conditional as well.

 

I've checked this to see if it relates to another issue where a .ctl from a target-specific vi.lib folder is present, but it looks like the issue Jeff reported above is the result of:

  • having a lvproj included with the source code
  • enclosing all RT-specific vi.lib function calls in conditional disables
  • also having a .lvclass included in the project under the RT target

 

In the attached source code, I cannot build the package as-is and removing the lvlcass from the RT target (either from the project entirely or by moving it to My Computer) appears to resolve the build error.

del me.zip

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.