Jump to content

MikaelH

Members
  • Posts

    835
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by MikaelH

  1. Hi

    My version of LabVIEW is behaving odd when it comes to Data Entry limits.

    Have YOU seen the same problem?

    When I open the “Data Entry…” option for a numeric the first time it does show me the right limits for that control.

    When I open the same option for the next numeric control these values don’t show the correct values.

    They still show the first opened control’s Data Entry-limits.

    And if I change the values, that values changes for the other control not the one I open the dialog from.

    This is in LabVIEW 8.6

    post-941-125323212491_thumb.png

    Cheers,

    Mikael

  2. Hi all scripting fans

    I don't like the build in Sorting feature of Event cases in the Event Structure, and though about creating an RCF-module for this.

    But I can't read the Names/Cases from an event structure.

    It's easy to do this if it's a Case Structure since you have the Property Node: CaseSel.FrameNames

    But there is nothing like this what I can find (I might just be blind) for the Event structure.

    Since there are methods (Invoke Nodes), to rearrange cases in the Event structure, there must be ways of reading the names/objects of every case.

    Ideas?

    Cheers,

    Mikael

  3. Interesting question!

    If you put code inside the TimeOut case, you are screwed.

    post-941-125106736037_thumb.png

    There are many different approaches here, but the easiest one I use is by using a state machine like this:

    post-941-12510673597_thumb.png

    If the TimeOutCounter is zero, I wait for 1000ms before going to the TimeOut case,

    else a 0 or 1 ms is wired to the TimeOut on the Event Structure, so it goes directly to the TimeOut case if no other events are in the queue.

    post-941-1251067444_thumb.png

    Event2.vi

    //Mikael

    • Like 1
  4. Hi

    I can’t help you much there.

    The design I’m looking into is to have the class-data (attributes) as a TypeDef belonging to the class and then put it into the Data Value Reference (DVR) wire.

    post-941-125102049233_thumb.png

    That then goes into the lvclass private data.

    post-941-12510205016_thumb.png

    A update method could then look like this.

    post-941-125102050319_thumb.png

    By using this method the dynamic dispatching will work as usually without having to put an In Place Element Structure around all abstract methods.

    Cheers,

    Mikael

    • Like 1
  5. So my fellow LOOPers, how do you handle this situation?

    Hi

    For normal/simple implementations I just tell the "public" class what type of objects it should aggregate/create as an input to the constructor, and have a case structure inside like this:

    post-941-125080688637_thumb.png

    And for this design, I normally store the TestInstrument objects in a class attribute belonging to the TestInstrument class.

    And with a static method "TestInstrument:GetObjectByName", I can retirve the instrument object.

    But when I develop TestSystem Framwork I use the Factory design pattern.

    Cheers,

    Mikael

  6. If this happens to you, give this a try and let me know what your think.

    That's a good feature.

    It would be good though to be able to define a Project Specific VI(s) that always is ran before you start your main VI in a Project.

    Of cause I like to see the option of defining a Main VI in a project so then you press Ctrl-R from the Project Tree, it should automatically start your Projects Main VI.

    post-941-124883241245_thumb.png

    //Mikael

  7. I'm now finding myself in need of a tool to parse the type descriptor of an LVClass. I can't use the flattened string data, since I'm actually parsing a reference (e.g. a Queue or Notifier reference).

    Tomi has made one parser that you can find in the OpenG root class template.

    I've a version of that code in one on my VIs, it looks like this:

    post-941-124881923018_thumb.png

    GetClassName.vi

    //Mikael

  8. Hi

    Regarding the GDS, I've created some videos of how to use it and how to get started with OO.

    These videos haven't been officially released but could been accessed here at the moment.

    www.goop.endevo.net/GDS/videos/GDSFeatures

    www.goop.endevo.net/GDS/videos/GettingStarted

    www.goop.endevo.net/GDS/videos/DesignPatterns

    www.goop.endevo.net/GDS/videos/StateMachine

    www.goop.endevo.net/GDS/videos/Debugger

    Cheers,

    Mikael

  9. Yes you can, but the execution properties has to be "Run when open".

    Just type:

    "c:\program files\national instruments\labview 8.6\labview.exe" "c:\test1.vi"

    You can read about this in the LabVIEW Help, just serach for "Launching a VI from the Command Line"

    //Mikael

  10. QUOTE (rssharpe @ May 24 2009, 03:03 AM)

    Very very new to Labview, I am looking for a compass rose gauge to display heading information. And 3 d display for pitch,roll,heading. Any suggestions would be greatly app.

    Thank you!

    And you could also use the picture control and use the drawing funtions to draw your own control, I would use that for the pitch,roll,heading and then customize a Gauge control to create the compass.

    //MIkael

  11. QUOTE (Michael Aivaliotis @ Mar 28 2009, 07:36 AM)

    I apologize in advance if this has already been mentioned. Sometimes, when I'm creating a Data Member Access VI, I end up with a new broken VI. The problem is the new input or output terminal is not wired to the bundle or unblundle node and it is not wired to the terminals. See image:

    I notice this happens mainly when I'm selecting a subcluster of a larger data cluster.

    If you try the Add Method->Property Method using the GDS toolkit, does it them work?

    Cheers,

    Mikael

  12. Hi

    The content of the Data (dat) file is not correct, the While loop never terminates.

    What result are you after?

    Do you what to see if there is a exact match, or just get a value indicating how good the match is?

    One solution could be to find the peaks in the different waveforms and compare the locations of these peaks.

    You could add a LowPass-Filter and then compare the waveform as you did in your code.

    Cheers,

    Mikael

×
×
  • Create New...

Important Information

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