Jump to content

shoneill

Members
  • Posts

    867
  • Joined

  • Last visited

  • Days Won

    26

Posts posted by shoneill

  1. Yes, because that isn't necessarily a recursive call at run time.

     

    Well it IS recursive (guaranteed) when the input terminal for the top-level DD call is directly connected to the DD sub-VI (as in the pic above).  Or am I overseeing something?

     

    We already have type propagation checks for other LVOOP aspects (whether output wire has a direct connection to input wire for type retainment).  Should this not be another check?  I agree that the presence of the VI in itself does not automatically mean it's reentrant but having the input terminal wired directly to the VI does.

     

    I think this could be an option to break the run button if the DD Vi is under these circumstances NOT set to be reentrant.

     

    Otherwise I actually like LV leaving us to decide whether something is safe or not!

     

    Shane.

  2. Oh, LVOOP and Real-Time.

     

    I seem to be having problems with this also.  I get lots of warnings when exiting LV that are related to a certain class (with only static inlined VIs).  I've also been seeing completely different code running ont he RT than in the IDE.  That makes debugging kind of hard.  I've had VIs running on the RT but not marked as reserved on the host and vise versa.

     

    Apparently adding the line "RTCloseVIsOnDocMod = True" to the rt.ini in the root directory of your RT system can help this problem.  It certainly helped me.  Clearing my source code cache made no effect fo rmy problem.

  3. I'm not 100% sure it's related to inlining but here goes:

     

    recently (Actually it seems to be happening a lot since we installed the "November 2012" patch for RT (which is supposed to fix glitch issues with FIFOs)) we started seeing what can only be described as "weird sh1t" happening with our code.

     

    When debugging RT code in the IDE and running the top-level VI from the IDE (plus automatic deploy and so on) we would see VIs which are running on the RT not being reserved (or marked as executing) when viewed on the host.  With time I realised this was simply a mismatch between the deployed code and the IDE source code which led to all kinds of performance debugging nightmares.  Debugging nightmares in general in fact.  Setting probes where you KNOW it has been executed but not showing any values (listed as "not executed") is perhaps the most harmless version of what I was seeing.  Hard crashes of the entire LV system was less harmless.

     

    I got some keys from NI which should have fixed the problem but actually led to all deploys failing and the VIs complaining when trying this were nearly all inlined - hence my irritated glance in that direction.  I deleted the keys but am left with a system where I'm never quite sure which version of my software is actually running on the RT.  I've spent days trying to debug something and tearing my hair out only to have the software (unchanged nominally) working fine when I re-connect the next day.  My sanity is intact though, that was actually in doubt for some time.  Another work colleague has started seeing the exact same behaviour.

     

    I got more keys to fix the behaviour but I haven't tried them all out yet.

     

    Shane

  4. I would say that almost all of the time it's POSSIBLE to do what I do without using multiple event structures in a single VI.  But if the workaround (automatic upgrade path) is to simply plop each extra structure in a sub-VI (and perhaps inline it) then what advantage is the change actually going to bring?  It seems like an optimisation which could cause more problems than it brings but IF it brings some magical properties, then I'd be all for discussing it.  I'm the last person who thinks that backward compatibility needs to be maintained at all costs.  I feel there are many big changes which could benefit LV but I don't have the insight into the inner workings to guesstimate whether this would be worth it or not.

  5. Not in LV 2012 they're not.



    The folder  is there, lots of other VIs are there but your "Set Texture" Poly and the "Rotate Z axis.vi" are not included.

     

    I do actually USE the 3D Picture control so I certainly have the functionality installed in LV 2012.  Can't you simply save the full hierarchy?

  6. Ooh this sounds familiar.

     

    I had some WEIRD performance issues a few weeks back with the divide primitive taking different amounts of time depending on which values it was dividing, and I mean MEASURABLE differences.

     

    Closed the project, re-opened and the issue was completely gone (hopefully) never to be seen again.

     

    It seemed at the time like the math libraries had started going a bit wonky.

     

    As with all problems of this ethereal type (you look at them properly and they disappear) you end up questioning your sanity and have no change of filing a bug report because noone will be able to reproduce it.

     

    Shane.

  7. When I launch my factory, the code does the following:

    - Obtains a new one element size queue with a LV Object constant as element data type

    - Loads the child using the factory

    - Enqueues the new child in the queue using the function 'Lossy queue element'.

     

    Obviously, at that moment I had my child in memory, but I discovered that once I released the queue, the child vanished as well from the LV hierarchy, allowing me to load a new child in case I needed, using the factory pattern again. You can find the code attached with the post.

     

    That's really cool, I did not know that removing a loaded class was possible.... Must remember this. :worshippy:

  8. @mje

     

    Virtual machine - VPN - Remote desktop.

     

    That's exactly what I've been doing for a while due to this extremely annoying behavior.  It's all good if Darren can show how fast he  can program with quickdrop and all but out here in the real world (home office days or remote debugging) all that is worth very little.  The lag over this connection (not to mention the less than 100% fidelity of mouse integration over Remote desktop) makes programming really chore.

  9. I have started compositing my classes.  You could include a "Protection" class in your different file formats which offloads the protection functionality into a seperate class.  That was inheritance is no longer an issue.  You then have a file class with a bunch of sub-classes which you can access one by one and query whether they're implemented or not.

    • Like 1
×
×
  • Create New...

Important Information

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