Jump to content

MikaelH

Members
  • Posts

    835
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by MikaelH

  1. I’m sure it’s not just me that missed out the change in LV 2013, when it comes to Sub Panel’s Insert VI method.

    From 2013, you can't insert ctl-file any more.

    For me that is a show stopper right now. So I can’t upgrade to 2013.

    Can anybody at NI let us know, why this support was dropped, and what the work around would be for my exe file that currently opens CTL files and shows then in a sub panel?

    post-941-0-78454500-1379645546_thumb.png

  2. Hi

     

    I can see at the Symbio home page  there is a GOOP Developmente Suite v4.6 version!

    What's the news? 2013 support perhaps?

     

    regards Bjarne

     

    You should be able to download it from symbio.com/goop  (on the lower right side)

    But I'm about to release GDS 4.7, this version should be downloadable in the end on this week.

    I'll keep you posted.

     

    GDS 4.6 don't have to many exciting stuff, other than 2013 compatible.

    GDS 4.7 have a 2013 bug fix and also property node creation (so you can access your object data through property nodes)

    Cheers,

    Mike

  3. Hi Helcio

    You are getting closer and closer ;-)

    Everything looks good, but when you like to update the Number Of Timers that you store in the class attribute.

    Make sure you do that inside the same IPE structure.
    So do it something like this.

    post-941-0-04813600-1377836517.png

     

    And also, you don't need (and shouldn't), wire the Class Ref input to the Create method.

    This input is only used by the framework when you inherit a base class.

    Try to create an extended Timer and inherit it from your Timer class

  4. Hello Mikael,

    I am sending the timer goop.vip file attached. In this example there is a class called timer created with the GDS,

    I do not know why the attribute "Number of Timers in Memory" is not being updated the way I think it should work. I would expect that when the class is created, this attribute is updated and somehow kept in memory, so that another object of the same class type can access and modify it.

     

     

    In the example sent, why the attribute  Number of timers in memory (in the Example 1.vi and Example 2.vi ) are always resulting in 1? I would expect this value to be the total number of timer objects created, and in this case it is certainly more than 1.

     

    thanks

     

    Helcio

    Remember that the Object Attribute is unique to the wire coming out of Create.

    If you want to know the number of Timers created totally of one class, you have to either use Class Attributes (Add that Design Pattern to the class).

    Or you have to name the object and share the same object.

     

    Do you know how Class Attribute works, or should I create an example for you?

     

    BTW there is a bug, if you add the Debugger/Persistent Design pattern to the class (but you are not in this case), for LV 2013.

    This bug is being solved and GDS 4.7 will soon be released.

    Remember that the Object Attribute is unique to the wire coming out of Create.

    If you want to know the number of Timers created totally of one class, you have to either use Class Attributes (Add that Design Pattern to the class).

    Or you have to name the object and share the same object.

     

    Do you know how Class Attribute works, or should I create an example for you?

     

    BTW there is a bug, if you add the Debugger/Persistent Design pattern to the class (but you are not in this case), for LV 2013.

    This bug is being solved and GDS 4.7 will soon be released.

    Oops, I saw another thing; you are mixing by value and by reference in this class.

    You probably would like to go with By Reference in a class like this.

    Be sure you don’t modify the Class Private Data with the attributes you have done, move them into the file: ObjectAttributes.ctl, and use the IPE-Structure to modify them.

  5. This is an old thread, so I understand if nobody answers ;)

     

    I need to be able to have check boxes in multiple columns, in my case 12 columns. I tried the MCL control that PJM found and I was able to get the symbols to show in 8 columns, more than that does not work.  Any ideas how to get this done?

     

    I could always go back to the hack of old days of using the Symbol font and show the check box this way, but I want to see if there is better way.

     

    Thanks,

    Fab

    ..or just use the old nice Picture control, lot of fun work though :-)

  6. Is there some way to force the use of class data accessors to access class data for class members? My use case is I simply don't want the use of unbundle node to be used. I like to massage the data (sometimes) before it's accessed and want to make sure developers and users of the data only access it through the accessors (VIs or Property nodes). Perhaps there's another way to enforce this? Note: This need is for members within a class, you can't do unbundle outside the class already.

     

    This also raises another philosophical discussion on the decision between VIreadwrite vs propertyreadwrite. What are the best practices for this and what are the factors in deciding one over the other?

    It sounds like your class has become to big manage. I've never had this requirement.

  7. Stop using references to data. In a parallel environment it is a bad idea. Sharing data between two processes is like sharing hypodermic needles between two addicts -- dangerous and likely to spread disease.

    Lol, I don’t share needles, but objects from time to time.

    I still use reference objects in my designs, and I do share them in parallel loops when needed, but that is objects, not the data itself.

    See you in 2 weeks AQ :-)

  8. Do you have a four-core machine?  I ask because then four clones will initially be reserved of the various shared-clones at start, and then the fifth instance will require a new clone.  In working with shared clone pools (through an 0x40 reference to "Open VI Ref”) I have sometimes noticed what seems to be a delay in getting that extra clone when it is asked for soon after the reference is opened.   BUT, I have never seen this delay actually stop code from working.

    I did see this problem on the production machine which has 2 cores, but not seen it yet on my 4 core machine (but I haven't tried to run too many DUTs).

    I don't think it's an Actor related issue, I think it could be  a "Reentrant,Fire & Forget(0xC0)", "Preallocated Clone" , "Queue Reference" - Problem.

    If I have time I'll create a test application to see if I can cause it to fail.

    It might be the production computer that has some problems.

  9. Are you overriding “Pre-launch Init.vi” such that it might produce an error (thus preventing the sending of the enqueuer back to the Launch VI)?

     

    I'm not, it's so strange, why can I run a few Actors in parallel but not too many?!?

    I might do a 2012-64bit version to see if that makes the Queue Reference work better.

  10. Hi

    I have a very strange Actor Launch problem. I start an Actor to do some calculations for every attached DUT. And that has been working great, 1,2,3 Actors(DUTs) no problem.

    But now I’m starting to get problem when I have around 5 or more Actors that I start of the same type.

    The screenshot below shows my problem.

    The queue used to get the Actor’s Enqueuer back after the Asynchronous start of the Actor, didn’t receive anything.

    I debugged the code, and could see that the Queue-Reference was the same for the Enqueuer and the Dequeuer. Also no errors were found on the Enqueuer Error in.

    Has anybody seen something similar?

    The code only fails if there are too many started actors at the same time!

    post-941-0-65369400-1371681365_thumb.png

    Cheers,

    Mike

  11. If anybody have time to update it and make it better and more fun/addictive to use, please feel free to share.

    I thought about adding it in the Project Secondary provider start-up VI, so the users have to get X of Y correct QD placements within z seconds, before it lets then continue using LabVIEW.

    Maybe depending on their score, they'll need to do it more often :)

     

    So suddenly when they do a LabVIEW2012-folder update, they get this function installed automatically.

  12. Yes, I do have a repository for every LV version :-)

    Also every time I release/build an exectutable, I tag both the Project Folder (e.g. MyTestSystem-PN:123546-Rev:C12-2012-05-03) and also my LabVIEW repository (LabVIEW2012-2012-05-03-MyTestSystem-PN:123546-Rev:C12), that way I can alwasy get back to the environment I had when I did the build.

     

    In case you don't have an internet connection, I would go with a VIPM package.

     

    For the LabVIEW.ini file, we only update shortcuts to use a company defined shourcut list, but the VI we run to update the LabVIEW.ini file also updates all your prefered settings.

    So the user selects his name in a drop down list and then it will configure all his LabVEIW.ini files to his taste.

    Yes I did mean all, this is how my LV folder looks like.

     

    post-941-0-37545400-1367544109.png

     

     

     

  13. I use SVN :-)

    It's so easy.

    We have a shared LabVIEW 2012 repository, that all the companies LV computer check out into their LV 2012 folder.

    TortortoiseSVN will of course complain that there are files in the folder, but that's fine.

     

    In this repository I've not added all files under the LabVIEW folder, but most stuff under user.lib (where we have the companies common VIs, and of course OpenG) and instr.lib (where we all the shared instrument drivers, more than 100 lvclasses)

    But I've also checked in all RCF files needed, the QD plugins and of course GOOP Development Suite.

     

    To update the LabVIEW.ini file with QD shortcuts, we have a VI in the repository that updates the shortcut so everyone gets the same.

     

    I found this way easier than vipm, to make sure all development system uses the right sets of VIs.

    I suggest you try this, it's so easy, and has been working really good.

    //Mike

×
×
  • Create New...

Important Information

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