Jump to content

crelf

Members
  • Posts

    5,754
  • Joined

  • Last visited

  • Days Won

    54

Posts posted by crelf

  1. As you mentioned, dq was not the first to use queues for GOOP. And, the author has stated publically that it is a combination of ideas mentioned first elsewhere.

    Sure - there's nothing new in dqGOOP, but it's a particularly eloquent implementation of it - and also a IMHO great place for those unfamiliar with OO to start understanding the concept.

  2. It is possible to update a variable multiple times before a single thread switch or user interface update occurs. This is possible because variables operate solely in the execution thread.

    Come to think of it - that means that you could write to a global and then read from it again before it's updated. I know that globals inherently lead to race conditions, but the statement above means that even if you force dataflow so a global is written on your BD and then later read, there is no gaurantee that the write happened before the read... :unsure:

  3. Do gloabl reads have to execute in the UI thread?

    Yes they do (from "VI Execution Speed" on NI's website):

    How Multithreading Affects User Interface Actions

    When you write to a local or global variable, LabVIEW does not switch to the user interface thread immediately. LabVIEW instead writes the value to the transfer buffer. The user interface updates at the next scheduled update time. It is possible to update a variable multiple times before a single thread switch or user interface update occurs. This is possible because variables operate solely in the execution thread. Functional global variables can be more efficient than ordinary global variables because they do not use transfer buffers. Functional global variables exist only within the execution thread and do not use transfer buffers, unless you display their values on an open front panel.

  4. ...or what about a password protected VI, where you can choose, if the BD is viewable (but not editable) or not? (I think, that would be the easiest way to implement that ...)

    :2cents: Now that's a good idea - and you're right, it shouldn't be too difficult to implement, as all you're really talking about is making the "Change to Edit Mode" functionality password protected at the VI level - the users could still open the VI, run it, see the BD, even open subVIs, but they wouldn't be able to edit the diagram...

  5. Yes, I've seen and used the queue data store technique. Mark Balla has put in some effort refactoring OpenGOOP to use the queue data store. I'm not sure when this will be released, but it will happen.

    Personally, I'm a big fan of GOOP using queues (I'd implemented my own version prior to the dqGOOP release, but the dq version is a lot cleaned than mine) - it's easy, fast and covers a lot of what I need to do (I'm certainly not a GOOP 'power' user). I'd sure welcome an openG version (is there any legal issues here? Can OpenG release an open under LGPL that's very similar to the dq version?)

    Does anyone have any ideas of what's under the LabVIEW OO engine (soon to be realeased)? Is it going to be queue based, or something else entirely?

  6. I've found a 'workaround', however definitely not memory-efficient. You basically need to do something in the inner loop which will cause LV to re-create the array in memory.

    Also, changing anything on the BD between subsequent runs causes the VI to recompile, meaning that the memory space is reallocated. These two methods sort-of demonstrate the different behaviour between runs, but they unfortunately don't fix the bug - that's NI's job :laugh:

  7. I don't know, too, but I guess there is a reason, why you have do download and install megabytes of data to get the .NET framework running on your PC ... and I disbelieve that you will get it running without the registry.

    OK, you could maybe use some .NET controls, but what sould that be good for?

    .NET and ActiveX are far more than just controls - my question is: if we can do Win32 DLL calls, can we do cusom ActiveX DLL calls under RT? I'm thinking that the answer is most probably going to be "no"...

  8. hmmm ... I use LV 7.1 / 8.0 on my laptop allmost every day (I have RT + PDA Module installed). Ok, it's not super fast, but it's ok ...

    My personal laptop is a 3GHz P4 with 1Gb of RAM - unfortunately my wife uses that one for checking her mail, whereas my work-provided one is a 1.3Ghz M with 512Mb of RAM - there's a HUUUUUUUUGGGGGGEEEEEE difference between them :(

×
×
  • Create New...

Important Information

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