Jump to content

Aristos Queue

Members
  • Posts

    3,183
  • Joined

  • Last visited

  • Days Won

    202

Posts posted by Aristos Queue

  1. Without getting off-topic too much here, don't you guy's think someone wanting to pass the CLD exam would want to take the fastest route to success?
    And for many people, that fastest route is LVOOP (especially if I'm taking the exam with LV 2012... hehehe).
  2. Oh, man… The number of times I’ve double clicked on a subVI, double clicked on its icon to bring up the editor, made a copy, closed the editor, opened another VI’s editor, pasted. What a waste of time!

    If the Icon Editor persisted the layer information to the clipboard when you copied, then it wouldn't necessarily be a waste of time, but that's never been implemented in any of the icon editor plugins that I've seen.

  3. Please define the term "dynamic VIs" ... are you talking "VIs that you load dynamically using Open VI Reference or the 'Call Setup' pop up menu option on a subVI node" or are you talking about "dynamic dispatch VIs that are members of LabVIEW classes"?

    The answer to your questions will vary greatly depending upon which of these two technologies you're asking about.

  4. The controller can also listen in on those same messages... as I said, there can be a bit of bleed over between the responsibilities of the view and the controller. Keeping them firmly separated is a goal needed by some applications but far fewer than the number of applications that need an absolute wall between the model and everything else.

    I'm probably not describing this in helpful terms. I have an example of exactly this, but it isn't something I can post at the moment... if you join the LV 2012 beta program, the beta of 2012 went live today and there's a shipping example in there for exactly this with the AF.

  5. 4) Also for the record, the RTETT traces do not show which dynamic dispatch VI is running (as of LabVIEW 2010). This hasn't been a big problem for us in practice.
    This was not a known issue. I have filled CAR 337019. Do you know if it affects the Desktop Execution Trace Toolkit as well? (I told them to check both, but if you know off the top of your head, I'll add that to the CAR.)
  6. Daklu wrote:

    > I wouldn't do this. It's giving the business components (motor controller, etc.)

    > responsibility for deciding how the data is displayed.

    Totally agree. This is the basis of the separation of

    • "model" -- the hardware/business logic/process/software simulation/whatever you're actually doing

    from

    • "view" -- the UI layer or data logger system that records what's going on

    from

    • "controller" -- the section of code that decides what new instructions to send to the model

    Model generally knows *nothing* about view or controller. Any view can connect to it. Any controller can send it orders. The model publishes a list of (events for the view to listen to OR messages sent from the model) and a list of (events for the controller to fire OR messages that can be sent to the model). The controller knows little or nothing about the view (binding these two is sometimes more acceptable). It publishes a list of events/methods for the view which tells the view what commands are available right now and lets the view command the controller.

    • Like 1
  7. Victory!

    That output terminal will not be needed as of LV 2012. There was a (bug / unimplemented optimization -- depends upon your view) that made LV add a copy at certain upcast coercion dots. This compiler (fix / upgrade) will have performance benefits for a wide range of LVOOP applications. The change was implemented months ago, so this API doesn't get credit for finding the issue, but the compiler team verified your VIs do benefit from the change.

    I would therefore recommend not putting it into the API as removing the terminal is a possible mutation issue, and not having the output terminal for a read-only operation is a much better API overall.

    • Like 2
  8. I am in Tulsa, OKLAHOMA! (always add the ! after Oklahoma! for dramatic effect).
    That's my hometown. Spent 18 years there before going to university. Good place -- couldn't find a job there when I graduated, and my parents moved away, so I haven't been back in years. I'm glad to hear that someone's able to make a living in software there nowadays.
    I love the idea of the AF and he must be quite a scientist to have created it. However, it seems on the verge of too much "safety" at the cost of usability, especially when introducing it into existing code. I hope the discussions there result in some small modifications to lower the entry barrier before it gets plopped into the <vi.lib> for eternity.
    Thanks for the critique. I mean that -- the AF was designed to go after real world code, so hearing that there are real world scenarios it cannot handle is useful feedback.

    Your point has had some discussion, both on the forums and elsewhere. My position at this point is that there's a difference between "for the newbie" and "for new projects". We've had a couple of newbie LV users pick up the AF just fine -- I'm not worried about its usability in that respect. The existing projects aspect is a different story. Plopping the AF into existing code frameworks was not a goal we had in mind when building it. I'm not adverse to adding features to it to make such adaptations easier, but not if they come at the cost of the provable correctness for apps built with AF from the ground up. Powell had a useful suggestion the other day for a new asynch reply class that might help... I don't think I'll put it in in time for LV 2012 (we're already *way* late in the dev cycle, what with the beta releasing already, and although there's still some window for feature adjustment based on that feedback, I try to reserve that coding window for "it really is unusable" sorts of adjustments), but I like the idea going forward.

    Also, being in vi.lib does not prevent us from making adjustments, it just means those adjustments have more overhead if it requires mutating existing user code.

  9. Hold off on finalizing this until the end of the week, please. I'm asking compiler folks to investigate the performance gain of adding the output terminal to see if there's another way to get that gain OR if it could at least be made unnecessary in LV 2012. Since this affects the conpane of the VIs, and that would be hard to remove in the future, it would be better to publish without it.

    If you don't hear from me by the end of this week, ping me, please.

    • Like 2
  10. My interest in OpenG is mostly as a "what is LV missing" point of view. For example, I have long coveted the OpenG array palette, wished that LV had those functions in vi.lib directly. Most of the OpenG palettes are better as add-on libraries, IMHO, but that one feels like core functionality, and I've certainly cobbled my own version of several of those functions. Some of the other OpenG tools/palettes I've seen over the years have highlighted places where you guys could have done an even better job if we had tweaked things a bit inside LV. If nothing else, they highlight the parts of LV that you guys are using the most, which are the areas we should probably be focusing on.

    In the future, I may be more interested in OpenG as a user of the tools... I'm doing more G programming these days, and even a little bit on the side that isn't for NI projects. Just a smidge, but it's more than has been over the last decade.

    Most VIs I write ship as the source code of NI product features. It's my understanding that including open-source VIs in those features would not be allowed.

    Ah, that rules out the OpenG palettes, Darren, but not the OpenG tools, like some of their scripting accelerators.
  11. There's a request on the Idea Exchange to make the index terminals on array index accessors Required instead of Recommended. It's an easy change for me to make, one I could even drop into LV 2012 (I still have access to the source code for that branch). But I don't know whether it's a good idea or not. There's comments in the page. Since IE only allows Kudos up, if you don't like the idea, post a comment explaining why. If you do, just kudos the idea. I'll make a call at the end of this week whether to make the change or not. It won't be in the first beta for 2012, but I can still hit release, I think (assuming I get permission to make the change... late game changes like this are iffy because they miss a round of user beta testing that might get some user to say "hey, that causes me problems").

    http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Set-index-inputs-on-LVOOP-array-element-accessors-to-Required/idc-p/1857257#M16481

  12. Too bad you weren't involved in the FileIO/driver design from the start, then LV might have been a pure data Flow language.

    But maybe we need to start with a Pure DataFlow operating system to get it working properly.

    Nope. There are other languages -- I have worked with both Haskell and Lisp, but there are others -- that are reference-free on existing operating systems.
  13. You wont get 1403 from a class not in memory problem. 1403 only occurs when you flatten an object of class XYZ to a string, then try to unflatten that string using a completely unrelated XYZ class -- like flattening an XYZ that contains an integer and then unflattening with an XYZ that contains a string, and not a different version of the class, but one where we try to interpret that integer as the length bytes of the string and realize we don't have enough bytes in the flattened string to represent a string of that size.

    I don't know exactly what you're doing, but my first bet would be cross-linking of some sort. In other words, the class that you're using during development is *not* the same class that you're loading in your built application.

  14. All very simple applications could be done in pure Data-Flow, but as soon as you use any advanced features such as: File-IO, DaqMX, Vision, Queues, Semaphores, DVRs, Instrument References you are using references.

    Only because our hardware APIs are so poorly designed as to require references. The world doesn't have to work that way, but by historical precedent it does.

×
×
  • Create New...

Important Information

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