Jump to content

[LVTN] LVOOP Assistant


Recommended Posts

  • Replies 71
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Name: LVOOP Assistant Submitter: jgcode Submitted: 25 Apr 2010 Category: LabVIEW Tools Network Certified LabVIEW Version: 2012 License Type: BSD (Most common) This tool integrates into the Lab

LVOOP Theme Creator v2.0 is now available Along with the fix for non-saved classes in memory there are some new features which include: Support for Text Layers: <object id="scPlayer" width="918"

Hey Jon... you coming back to Labview or just stopping by for a visit?

Posted Images

Sorry about the formatting in the readme, I seem to be having an issue that I have posted here. I tried to edit it as best I could.

*****This plugin was created for a bit of fun, I has the thought last year after the Norm pointed out the color algorithm for the LVOOP classes (thanks!)

<center><object id="scPlayer" width="677" height="585"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/jingswfplayer.swf"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/jingswfplayer.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/FirstFrame.jpg&containerwidth=677&containerheight=585&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/LVOOP%20Theme%20Creator.swf"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/"></param> <embed src="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="677" height="585" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/FirstFrame.jpg&containerwidth=677&containerheight=585&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/LVOOP%20Theme%20Creator.swf" allowFullScreen="true" base="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/efa3682a-543f-46b5-bde4-040bf5306e22/" scale="showall"></embed> </object></center>

Link to post
Share on other sites

Nice! I hate trying to get the colors to match up.

Edit: There are a couple package dependencies you didn't set.

OpenG's numeric library

JKI's State Machine toolkit

  • Like 1
Link to post
Share on other sites

Nice! I hate trying to get the colors to match up.

Edit: There are a couple package dependencies you didn't set.

OpenG's numeric library

JKI's State Machine toolkit

Cheers!

They are in the .vipc file in the zip file, but I forgot to add them to the .ogpb file!

No problems, I have a VI for that, I will do the fix now.

<edit>

Done!

</edit>

Link to post
Share on other sites

Does your theme editor maintain the inherited icon layer behavior? You might already know this but I figure it is worth mentioning...

Suppose class Parent has a template icon that is 32x12 (aligned top).

If you give the Child a template icon that is 16x12 (aligned top right), then when you add a new VI to the child, the resulting VI icon will use the Parent icon for the left half and the Child icon for the right half. This gives you a way of having a theme in the parent class with each child class adding a glyph to that original theme and then you only have to update the parent class if you want to change the theme across your whole hierarchy.

  • Like 1
Link to post
Share on other sites

You might already know this but I figure it is worth mentioning...

Negative! I did not know this - so kudos.

I normally use the same color banner if I want to maintain a theme through to child classes, but what you are describing sounds much nicer, thanks.

In fact I have never see this effect before because I always use the default banner size.

I just had a play and it is beautiful wub.gif

(sorry, I love icons)

Does your theme editor maintain the inherited icon layer behavior?

I did not have access in the icon API to do this.

However, I requested it on the weekend and Tom has delivered again (he is a very nice, young man).

The API now supports passing in a .lvclass reference and getting all the layers.

Therefore I should be able to preserve existing layers and only update the NI_Library layer

I will have a go at integrating it tonight and see how I go.

I will also have to investigate what you are saying.

But from my initial testing, it seems that if I update a .lvclass and refresh the icons, then the memberVIs automatically update to include the parent banner (or part of) without me doing anything different.

I think it will be ok because the child icon does not "see" the parent icon when using the Icon Editor on a class.

It is only the memberVIs that do and they only have one NI_Library layer.

Cheers

-JG

<edit>

If anyone else hasn't see the effect here it is:

post-10325-127233105283_thumb.png

</edit>

Link to post
Share on other sites

Does your theme editor maintain the inherited icon layer behavior? You might already know this but I figure it is worth mentioning...

Suppose class Parent has a template icon that is 32x12 (aligned top).

If you give the Child a template icon that is 16x12 (aligned top right), then when you add a new VI to the child, the resulting VI icon will use the Parent icon for the left half and the Child icon for the right half. This gives you a way of having a theme in the parent class with each child class adding a glyph to that original theme and then you only have to update the parent class if you want to change the theme across your whole hierarchy.

I did notice this feature and I have to confess that I am not too found of it. For instance if I have a dark banner on my children class and I use a white font for the banner text I end up having the parent banner color "leak" through (which does sometimes makes the text unreadable).

PJM

Link to post
Share on other sites

I did notice this feature and I have to confess that I am not too found of it. For instance if I have a dark banner on my children class and I use a white font for the banner text I end up having the parent banner color "leak" through (which does sometimes makes the text unreadable).

Don't use white --- Thomas hacked white to mean "transparent". Not my favorite hack in the world. The composite icons predates the new icon editor.
Link to post
Share on other sites

Version History (Changelist):

1.1-1 2010 05 02

- New(): Added support for preserving layers after Icon Editor API upgraded.

- New(): Select Layer Tag UI added which allows user to specify Layer Tag when it is not found. This Layer can be made the default when searching next time.

- Fix(): Clean error handling for when non LVOOP Member VI is quick drop'd on.

<object id="scPlayer" width="677" height="585"> <param name="movie" value="

http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/jingswfplayer.swf"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/jingswfplayer.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/FirstFrame.jpg&containerwidth=677&containerheight=585&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/LVOOP%20Theme%20Creator%201.1.swf"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/"></param> <embed src="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="677" height="585" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/FirstFrame.jpg&containerwidth=677&containerheight=585&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/LVOOP%20Theme%20Creator%201.1.swf" allowFullScreen="true" base="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/8fff0ce5-df03-444a-be83-d5f08fe094b1/" scale="showall"></embed> </object>

I have added the Icon Editor API so that now layers are supported.

The package contains a repackaged version of the Icon Editor API compiled for user.lib

I also did updated the GET and SET polymorphic VIs icon's and added a MNU file so its neat.

This package is contained in the .vipc file (all other dependencies are listed only)

If you have any feedback please post!

Cheers

-JG

Link to post
Share on other sites

Don't use white --- Thomas hacked white to mean "transparent". Not my favorite hack in the world. The composite icons predates the new icon editor.

It is definitely not the best way to go, but by the time we figured that problem, it was already too late in the game.

<edit>Awesome, I didn't realize that I never posted here before...</edit>

Link to post
Share on other sites
  • 2 weeks later...

Known issue with the 1.1 release

  • Class must be saved to disk
  • The Class icon must have been opened at least once in the Icon Editor.

The latter is a weird bug in the Icon Editor API posted here but I have come up with my own work around.

So I have fixes for both and will release an update soon as well as some new features.

Cheers

-JG

Link to post
Share on other sites

LVOOP Theme Creator v2.0 is now available

Along with the fix for non-saved classes in memory there are some new features which include:

Support for Text Layers:

<object id="scPlayer" width="918" height="745"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/jingswfplayer.swf"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/jingswfplayer.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/FirstFrame.jpg&containerwidth=918&containerheight=745&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/LVOOP%20Theme%20Creator%20-%20Text.swf"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/"></param> <embed src="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="918" height="745" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/FirstFrame.jpg&containerwidth=918&containerheight=745&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/LVOOP%20Theme%20Creator%20-%20Text.swf" allowFullScreen="true" base="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/82032650-7a63-4b9c-94cf-2adec45f5976/" scale="showall"></embed> </object>

Support for Icon Preview:

<object id="scPlayer" width="918" height="745"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/jingswfplayer.swf"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/jingswfplayer.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/FirstFrame.jpg&containerwidth=918&containerheight=745&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/LVOOP%20Theme%20Creator%20-%20Select%20Layer.swf"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/"></param> <embed src="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="918" height="745" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/FirstFrame.jpg&containerwidth=918&containerheight=745&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/LVOOP%20Theme%20Creator%20-%20Select%20Layer.swf" allowFullScreen="true" base="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/9228f211-ac27-43ba-9fff-95219c65a83e/" scale="showall"></embed> </object>

Support for Transparency:

<object id="scPlayer" width="918" height="745"> <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/jingswfplayer.swf"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/jingswfplayer.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/FirstFrame.jpg&containerwidth=918&containerheight=745&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/LVOOP%20Theme%20Creator%20-%20Transparency.swf"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/"></param>'>http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/"></param> <embed src="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="918" height="745" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/FirstFrame.jpg&containerwidth=918&containerheight=745&content=http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/LVOOP%20Theme%20Creator%20-%20Transparency.swf" allowFullScreen="true" base="http://content.screencast.com/users/jgcode/folders/LAVA%20CR/media/42319188-fc32-4594-be68-12b62e7f0267/" scale="showall"></embed> </object>

Please let me know if you have any feedback!

Cheers

-JG

  • Like 2
Link to post
Share on other sites

but there is a type in your UI for the theme creator. The "s" has been left out of the "transparent" checkox caption.

Hi Neil

Do you mean typo? tongue.gif

Thanks for that (I am pedantic too) - good pickup!

I just wanted something fast to be able to set up the basics for a Class icon.

Obviously anything complex I will go to the Icon Editor because that rocks.

I am glad you like the look of it.

My intention was to support Icon Layers, unfortunately these only exist in 2009!

Link to post
Share on other sites
  • 4 weeks later...

Changelist:

2.6-1 2010 06 28

- Fixed (): Classes as Sub-Libraries caused error as Namespace was incorrect

Damn! forgot about Neil's post, have done that now - for next release :(

Link to post
Share on other sites

Hmm... the theme creator needs the icon editor api package v2.0, but apparently I'm too stupid to find it. Can I have a hint?

Yes

Installation and instructions:

Install package using VIPM.

*Ensure that the x.vi does not already exist as a quick drop plugin, if so you will have to manual manipulate the install.

VIPC file included for dependencies (list only), repackaged Icon Editor API included as package

.

How's that? wink.gif

So its in the .zip version not the package version downloadable.

But you can get it here from my post too

Cheers!

-JG.

If you have any feedback to make this better please let me know too. I would be very interested in what you think.

Link to post
Share on other sites

VIPC file included for dependencies (list only), repackaged Icon Editor API included as package.

How's that? wink.gif

I tried... I really did... For the life of me I can't figure out how to parse that to mean, "download the zip file if you don't have the dependency." wacko.gif But like I said, I'm a little slow.

So its in the .zip version not the package version downloadable.

Are you sure about that?

post-7603-006295900 1277683602_thumb.png

But you can get it here from my post too

Ahhhhh... better. wub.gif

If you have any feedback to make this better please let me know too. I would be very interested in what you think.

Me? I don't ever have opinions...

Link to post
Share on other sites

I tried... I really did... For the life of me I can't figure out how to parse that to mean, "download the zip file if you don't have the dependency." wacko.gif But like I said, I'm a little slow.

LAVA keeps getter cooler, and with the recent upgrade, you can now upload multiple files to the LAVA CR.

Before the rules were to upload a .zip contain XYZ.

The upgrade allows you to post a package (.opg/.vip) version too!

The first time I have done this is with this project the other day so the readme is actually referring to the .zip (and I may need to brush up on my grammer if it now contains artifacts that are now confusing).

VIPC file included for dependencies (list only), repackaged Icon Editor API included as package

Are you sure about that?

Yes, very :)

I think I am assuming you (and others) are familiar with VIPM nomenclature (and my interpretation of it)?

So I will parse this string:

  • Dependencies are what you need to install with the package to make sure its not broken (simple really)
  • The .vipc file contains a list of dependencies
  • By this I mean the dependent packages are listed by name but are not physically inside the .vipc file.
  • However, in this case, the exception is the Icon Editor API package
  • My logic is that some files are easy to get to (through the VI Package Network) and some are harder to get access to (e.g. Icon Editor API you would have to go to the post)
  • So I include the harder ones in the .vipc file as a physical package - as I think this is generally easier for the user.

Now not to confuse issues, in this project I have now included all other reuse VIs internally in the code (by namespacing them etc...) so the .vipc file will only include the single Icon Editor API dependency:

Dependencies:

jgcode_rpk_ni_icon_editor_api>=2.0

Actually I would rather have no dependencies at all, the reason for this, in this case, is that NI's Icon Editor API calls VIs outside of symbolic paths (e.g. vi.lib).

This means that if you move code (i.e namespace and include with your own release/project code) all linkages will break!

The workaround is to get the user to install the package separately.

***

Also here is an example what I am talking about, and what the .vipc file would look like:

post-10325-085706700 1277687626_thumb.pn

When the file is opened in VIPM you can see that there is an package-glyph associated with one item and no-glyph associated with the other item.

So the package-glyph means that physically that package is in the .vipc file, the no-glyph meast you need to BYO :)

All you need to do is Tools>>Apply Package Configuration to install the files.

post-10325-008440600 1277688333_thumb.pn

Hope that makes sense?

Link to post
Share on other sites
  • By this I mean the dependent packages are listed by name but are not physically inside the .vipc file.
  • However, in this case, the exception is the Icon Editor API package
I see it now. I've evaluated VIPM configuration files and like the feature, but since I don't work with them regularly it didn't even occur to me to try applying the configuration. (Had I noticed the vipc file's size I might have figured it out.)

  • My logic is that some files are easy to get to (through the VI Package Network) and some are harder to get access to (e.g. Icon Editor API you would have to go to the post)
  • So I include the harder ones in the .vipc file as a physical package - as I think this is generally easier for the user.

Can't dispute your reasoning. Curious, why didn't you put the Theme Creator package in the vipc file?

I have now included all other reuse VIs internally in the code

I noticed that in the changelist. Thanks!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Ryan Vallieu
      I have seemingly found an issue with the shipping example code for Nested Malleable VIs.  Another user has verified that he saw the same behavior in 2019.
       
      I am working through the examples and the presentation from NIWeek 2019.  In running the Lesson 2b code (C:\Program Files (x86)\National Instruments\LabVIEW 2019\examples\Malleable VIs\Nested Malleable VIs) I found the Equals.vi in the class was not being leveraged and the search failed.  When I went to my LabVIEW 2018 machine and ran the Lesson 2b.vi the code worked to find the element by correctly leveraging the in-class Equals.vi.
      One difference I see is that in the 2018 example the Equal.vi is in the example folder with the code, and in 2019 the Equal.vi has been moved to VI.lib - otherwise the code looks to be the same.  The Equals.vi code looks identical, and the calling VIM look identical.  I posted on the LabVIEW NI.com forum here: 
      https://forums.ni.com/t5/LabVIEW/LabVIEW-2019-Malleable-VIs-Shipping-Examples-Lesson-2b-Nested/m-p/3966044/highlight/false#M1129678
       
      I am trying to determine what may have broken or changed between the implementation in 2018 and 2019, visually the code looks the same.
    • By Voklaif
      Hello all,
      I am programming with LabVIEW for around 2 years and was recently stumbled upon LVOOP.
      I am required to write a communication protocol to work with a micro-controller, which later will be also used for ATP and debug purposes.
      I want to build the program "correctly" from the beginning so it will be maintainable and flexible to additions and changes.
      My natural way of building a program would have been a queued state machine, with several loops, each loop is in charge of a different module (one for GUI obviously), but as I stated in the beginning, I want to use LVOOP.
      Does anyone have a LVOOP project I can use as reference? I've searched online and found some nice examples, but they are small and teach you the basic stuff.
      For me it's important to see the how to use the project tree wisely, where to place the classes, see the managing loop and to learn as much as possible before I create one of my own.
      Thanks in advance,
      Voklaif
    • By GregFreeman
      I have an array of classes, let's call the object TestPass, of size 1 (but it is an array because it can scale out to multiple test passes). In this class, there is one other nested class which is not too complex, then various numeric and string fields to hold some private data. There is also an array of clusters. In this cluster there is a string, two XY pair clusters, and an integer. Not very confusing.
      This array of clusters gets fairly large, however, upwards of 80-100k elements. What I am finding is when I index the array of pass classes it is crazy slow. On the order of 30 ms. Doesn't seem like much, but we are indexing the array in our method to "Get Current Pass" which is used in various places throughout our code. This is adding potentially hours to our test time over the 80k devices we are testing. 
      So, I started digging. When I flatten the class to a string and get the length, it's 3 mb. But, when I run the function with the profiler is is allocating close to 20 mb of memory!
      My gut feel was that the string is causing the issues. So I removed the string from the cluster and the index time went to 0 ms. 
      Luckily we can normalize a bit and pull the strings out of the cluster since a lot of them are duplicates. But it makes our data model a bit uglier. 
      Has anyone seen these kind of performance issues before? I saw them in 2013 and 2017.
    • By ted Francis
      I am new to LVOOP and have jsut started writing my first LVOOP program which I have attached.
      I would appreciate greatly help with the question I have
      Thank you in advance 
      Ted
      This vi will perform two tasks 
      1.Generating Report data sheet for metrology 
      2. updating the scales in a MAX .nce file
      1. Metrology will input calibration information into the tables on the tabs
      Metrology will then click "Update Tables" then "Create Report ( create report section of code is not yet written
      Update Tables will write all information entered in the tabs to class varaibles and will also delete current Max informatiomn
      2. Metrology will click "Load NCE Scale"
      vi will prompt for nce file to load and then once file is selected, display existing scales for two channels (Current Motor 1 and 
      Current Motor 2)
      Metrology will then click "Update Scales"  the program will replace the existing scales with those entered in Step 5.14 and 5.15
      from the tables on the tab
      Question 1.  Steps 5.14 and 5.15 are needed by both classes ( Table Variable and MAX) - what is the best way to share this information
       
      CAT0000032 Class Version.zip
    • By shoneill
      I was browing through the actor framework discussions on the NI site yesterday and I came across a statement by AQ.
      Never inherit a concrete class from another concrete class
      I had to think about that for a second.  The more I think about it, the more I realise that all of the LVOOP software I have been writing more or less adheres to this idea.  But I had never seen it stated so succinctly before.  Now that may just be down to me being a bit slow and all, but in the muddy and murky world of "correct" in OOP-land, this seems to be a pretty good rult to hold on to.
      Are there others which can help wannabe plebs like me grasp the correct notions a bit better?  How about only ever calling concrete methods from within the owning class, never from without?  I'm learning for a long time now, but somehow, my expectations of LVOOP and the reality always seem a little disconnected.  AQs statement above helped crystallise out some things which, up to that point, had been a bit nebulous in my mind.  Well, I say I'm learning..... I'm certainly using my brain to investigate the subject, whether or not I'm actually LEARNING is a matter for discussion... The older I get, the less sure I am that I've actually properly grasped something.  The old grey cells just seem to get more sceptical with time.  Maybe that in itself is learning...



×
×
  • Create New...

Important Information

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